首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-02-22 
想实现如下功能,调用外部程序执行,调用成功后自身即退出,但是需要该外部程序运行状态能像手工点击运行的效

想实现如下功能,调用外部程序执行,调用成功后自身即退出,但是需要该外部程序运行状态能像手工点击运行的效果一样。
现在的问题是,如果我手工运行这个外部程序,那么程序工作是很正常的,可是当我用
ShellExecute(Handle, 'open ',pchar( 'd:\Project1.exe '),pchar( ' '),sw_show)运行它就不太正常,当我退出该外部程序时,这个程序就会报错。我想可能是运行时没有给它分配什么环境变量吧,那么我该如何设置它呢?

调用它的程序在调用完成后即退出,所以只剩下了这个外部程序在工作,希望它能像手工启动的一样能正常工作以及正常结束。




[解决办法]
GetDesktopWindow 替换Handle

ShellExecute(GetDesktopWindow , 'open ',pchar( 'd:\Project1.exe '),pchar( ' '),sw_show)
[解决办法]
//你的程序是否用到了当前路径?
ShellExecute(Handle, nil, 'd:\Project1.exe ', nil, 'd:\ ', SW_SHOW);

//or
WinExec( 'd:\Project1.exe ', SW_SHOW);

热点排行