3

我有一个安装程序,我想确保我的应用程序当前没有运行。如果是,我想关闭它(不要杀死它,因为应用程序必须在退出时保存一些数据)。另一个问题是我的应用程序的窗口是隐藏的(而是显示托盘图标),所以 Process.MainWindowHandle 始终为 0。

我可以做些什么来通知我的应用程序关闭?我可以直接向应用程序(而不是窗口)发送消息吗?

对你的帮助表示感谢。格雷戈尔

4

4 回答 4

2

只是将其他东西加入其中:命名管道

于 2010-09-24T08:09:29.410 回答
1

当您希望应用程序正常关闭时,您可能可以让 APP1 侦听特定端口并向该端口发送消息。所以 APP2 必须知道 APP1 端口和它所期望的消息参数。

您还可以拥有某种消息队列(Windows 有它,或者您可能想要使用 SQL Service Broker 之类的东西)实现,并让一个 APP 将消息发送到队列,另一个从队列中读取

你也可以看看这个:http: //msdn.microsoft.com/en-us/library/ms644950 (VS.85).aspx

于 2010-09-24T06:37:01.820 回答
1

您可以使用 WINAPI 按类或窗口文本查找窗口句柄(即使它是隐藏的)。然后向应用程序发送一条 Windows 消息以关闭它。

http://support.microsoft.com/kb/178893

于 2010-09-24T16:26:26.940 回答
0

您可以使用PostThreadMessage WinAPI 函数(通过 PInvoke)。

于 2010-09-24T06:39:28.117 回答