【发布时间】:2015-07-30 21:59:01
【问题描述】:
我想要一个小的可执行文件来安装我的服务,就像往常一样
path\servicename /install
我尝试在具有提升权限的程序中运行一个简单的 shellexecute,
ShellExecute(0, nil, 'cmd.exe','/C servicepath\servicename.exe /install', nil, SW_HIDE);
但服务没有安装。我不是 ShellEx 的专家,所以我怀疑我弄错了;请告诉我我的方式的错误,并可能提供正确的 shellexecute 行
【问题讨论】:
-
为什么要通过cmd传递?直接执行你的服务...
-
ShellExecute(0, nil, 'servicepath\servicename.exe','/install', nil, SW_HIDE); -
@J... 这对我有用,谢谢 :)
-
ShellExecute 是一个在 shell 中运行命令的函数——它可以执行您在控制台中手动执行的操作。如果您在控制台中,则不会通过以
C:>cmd.exe ...开头并启动另一个控制台并将命令作为参数传递来安装服务。参数 3 是您要运行的应用程序,参数 4 是参数。对于它的价值,虽然迂回,但如果您在命令'/C "servicepath\servicename.exe /install"'周围添加双引号,您在问题中的命令将起作用 -
ShellExecute 是错误的函数。使用创建过程。除非你需要 runas 动词。