想实现如下功能,调用外部程序执行,调用成功后自身即退出,但是需要该外部程序运行状态能像手工点击运行的效果一样。 ( 积分: 45 )

  • 主题发起人 wyxriver
  • 开始时间
W

wyxriver

Unregistered / Unconfirmed
GUEST, unregistred user!
现在的问题是,如果我手工运行这个外部程序,那么程序工作是很正常的,可是当我用<br>ShellExecute(Handle,'open',pchar('d:/Project1.exe'),pchar(''),sw_show)运行它就不太正常,当我退出该外部程序时,这个程序就会报错。我想可能是运行时没有给它分配什么环境变量吧,那么我该如何设置它呢?<br><br>调用它的程序在调用完成后即退出,所以只剩下了这个外部程序在工作,希望它能像手工启动的一样能正常工作以及正常结束。
 
可以使用这条命令试试看<br>WinExec('d:/Project1.exe'),SW_SHOWNORMAL);
 
同意二楼建议,没必要用shell,直接winexec就可以了.
 
ShellExecute(0,&nbsp;'OPEN',&nbsp;PChar(''),&nbsp;nil,&nbsp;nil,&nbsp;SW_SHOW);
 
用WINEXEC,Shellexecute有时候会出问题。
 
ShellExecute(Handle,'open',pchar('d:/Project1.exe'),pchar('d:/'),sw_show)<br>ShellExecute的倒数第2个参数是工作目录,有些程序必须要有工作目录
 
WinExec('d:/Project1.exe'),SW_SHOWNORMAL);&nbsp;ShellExecute(Handle,'open',pchar('d:/Project1.exe'),pchar('d:/'),sw_show)
 
接受答案了.
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
742
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部