积极答复者
主程序打开另外EXE,传新的参数进去,并且重新执行另外EXE

问题
-
问题描述:当我打开另外一个EXE时,同时传了lpstrCmdLine参数="//SD//IQbook"过去,调用CreateProcess( "//SD//player.exe","//SD//IQbook",NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL);现在我想传另外一个新lpstrCmdLine参数="//Store//Mybook"进去,同时重新执行player.exe认为解决方法:1.是关了上面player.exe,重新执行CreateProcess( "//SD//player.exe","//Store//Mybook",NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL);2.只传新的lpstrCmdLine参数="//Store//Mybook"进去,同时让上面player.exe重新执行一次我认为第2种方法比较好,但是如果实现的啊,还是有其它好的方法呢
答案
-
你可以在该程序的main函数中,写一个mutex锁,来判断该程序是否已经启动,如果启动则尝试找到该进程的窗口,然后通过给窗口postmessage的方式传递参数,或者使用共享内存。
麻烦把正确答案设为解答。- 已标记为答案 lucy-liuModerator 2011年3月17日 8:02
-
你只能再启动一个进程和你原来的一起用,你不能给一个已经启动的进程传递参数,除非你在该进程里面提供了对外的进程通信接口。
你还是用TerminateProcess把原来启动的进程干掉,然后再建立一个新的进程吧
0xBAADF00D- 已标记为答案 lucy-liuModerator 2011年3月17日 8:02
全部回复
-
你可以在该程序的main函数中,写一个mutex锁,来判断该程序是否已经启动,如果启动则尝试找到该进程的窗口,然后通过给窗口postmessage的方式传递参数,或者使用共享内存。
麻烦把正确答案设为解答。- 已标记为答案 lucy-liuModerator 2011年3月17日 8:02
-
你只能再启动一个进程和你原来的一起用,你不能给一个已经启动的进程传递参数,除非你在该进程里面提供了对外的进程通信接口。
你还是用TerminateProcess把原来启动的进程干掉,然后再建立一个新的进程吧
0xBAADF00D- 已标记为答案 lucy-liuModerator 2011年3月17日 8:02