超难问题-服务进程启动exe程序(100分)

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

wsy539

Unregistered / Unconfirmed
GUEST, unregistred user!
我写一个服务进程,然后在服务进程中启动另一可执行程序,
ShellExecute(0,'open',pchar(可执行程序),nil,nil,SW_show);
然而很奇怪的问题产生了,可执行程序使用GetForegroundWindow函数时,一直是返回0,
如果是双击可执行程序则 GetForegroundWindow可以正常返回窗口句柄。
这个问题要解决?急呀,
 
参考下
 第一个参数为父窗口句柄;

  第二个参数为打开方式(OPEN,PRINT两种);

  第三个参数为执行文件全路径;

  第四个参数为执行文件参数;

  第五个参数为执行文件开始运行时的初始目录;

  第六个参数为为执行文件运行方式(SW_HIDE,SW_MAXIMIZE,SW_MINIMIZE,
 
问题是在服务进程中打开不行,正常双击打开是可以的。
 
ShellExecute(0,'open',pchar(可执行程序),nil,nil,SW_show);
在服务进程中是没有Handle的
返回0是正常的
 
用createprocess应该可以
 
你去看一下‘windows安全性编程'就会明白了,服务程序启动的程序的桌面,是和IE的桌面不一样的,你永远也别想用服务程序来启动程序还想看到它的界面
 
允许服务和桌面交互打对钩即可。
 
interactive属性设成true就行了
 
太久了,结贴
 
多人接受答案了。
 
后退
顶部