我现在有一个主程序,他的界面上有多个可以打开的单独的可执行程序,这些程序的名称和路径都是从数据库中查出来的。我随便单击其中一个,就可以打开相应的程序,这个我实现了。
现在的要求是:
1,当有一个程序打开以后,如果再单击另外一个程序,那么在新程序打开之前,要先关闭当前打开的那个程序,如果当前的程序不允许关闭,则新程序不能打开;
2,所有的子程序,如果没有主程序开启的时候,是不允许单独运行的!也就是说,子程序需要由主程序来启动。我的问题如下:
2的解决方法,我想到了,就是给每个子程序加个启动参数,如果子程序启动的时候,没有参数或格式不正确,就自动关闭。
1问题没有想到好的方法:我的想法是:
(1)打开新的程序前,给打开的进程发送关闭程序的消息,然后等待子程序返回是否关闭的消息,如果可以关闭,子程序就自己关闭程序,然后我打开新的子程序,否则就不打开新的程序。现在问题是,不知道给哪个窗口发消息!我只知道打开的进程的exe名称。还有,我如何知道先前打开的那个exe已经关闭了?如果有更好的方法,请高手们赐教啊
现在的要求是:
1,当有一个程序打开以后,如果再单击另外一个程序,那么在新程序打开之前,要先关闭当前打开的那个程序,如果当前的程序不允许关闭,则新程序不能打开;
2,所有的子程序,如果没有主程序开启的时候,是不允许单独运行的!也就是说,子程序需要由主程序来启动。我的问题如下:
2的解决方法,我想到了,就是给每个子程序加个启动参数,如果子程序启动的时候,没有参数或格式不正确,就自动关闭。
1问题没有想到好的方法:我的想法是:
(1)打开新的程序前,给打开的进程发送关闭程序的消息,然后等待子程序返回是否关闭的消息,如果可以关闭,子程序就自己关闭程序,然后我打开新的子程序,否则就不打开新的程序。现在问题是,不知道给哪个窗口发消息!我只知道打开的进程的exe名称。还有,我如何知道先前打开的那个exe已经关闭了?如果有更好的方法,请高手们赐教啊
可以使用TCP/IP或UDP进行各个程序间的通讯。
那就发送一个WM_QUIT到主线程(CreateProcess当中可以得到),这个消息怎么发送,用Sendmessage方法吗?接受的窗口写谁呢?给个例子吧
如何给一个指定的进程发送关闭消息?因为我不知道哪个是它的主窗口的句柄啊,snedmessage怎么写?
我在主程序与子程序之间使用内存共享没问题,当我在Service和exe之间使用时,内存创建可以,但是在exe中却访问被拒绝
但是,我不能设置为当前的用户启动Service啊,这样的话,钥匙切换用户怎么办啊?
我还要等待exe给我把消息传回来,告诉我它是关闭还是不关闭
学习一下
OpenMutex, ReleaseMutex, CreateMutex