我有一个安装程序,我想确保我的应用程序当前没有运行。如果是,我想关闭它(不要杀死它,因为应用程序必须在退出时保存一些数据)。另一个问题是我的应用程序的窗口是隐藏的(而是显示托盘图标),所以 Process.MainWindowHandle 始终为 0。
我可以做些什么来通知我的应用程序关闭?我可以直接向应用程序(而不是窗口)发送消息吗?
对你的帮助表示感谢。格雷戈尔
我有一个安装程序,我想确保我的应用程序当前没有运行。如果是,我想关闭它(不要杀死它,因为应用程序必须在退出时保存一些数据)。另一个问题是我的应用程序的窗口是隐藏的(而是显示托盘图标),所以 Process.MainWindowHandle 始终为 0。
我可以做些什么来通知我的应用程序关闭?我可以直接向应用程序(而不是窗口)发送消息吗?
对你的帮助表示感谢。格雷戈尔
只是将其他东西加入其中:命名管道。
当您希望应用程序正常关闭时,您可能可以让 APP1 侦听特定端口并向该端口发送消息。所以 APP2 必须知道 APP1 端口和它所期望的消息参数。
您还可以拥有某种消息队列(Windows 有它,或者您可能想要使用 SQL Service Broker 之类的东西)实现,并让一个 APP 将消息发送到队列,另一个从队列中读取
你也可以看看这个:http: //msdn.microsoft.com/en-us/library/ms644950 (VS.85).aspx
您可以使用 WINAPI 按类或窗口文本查找窗口句柄(即使它是隐藏的)。然后向应用程序发送一条 Windows 消息以关闭它。
您可以使用PostThreadMessage WinAPI 函数(通过 PInvoke)。