如何关闭(而不是杀死)另一个不';没有可见的窗口吗?(C#)

如何关闭(而不是杀死)另一个不';没有可见的窗口吗?(C#),c#,messaging,sendmessage,C#,Messaging,Sendmessage,我有一个安装程序,我想确保我的应用程序当前没有运行。如果是,我想关闭它(而不是杀死它,因为应用程序必须在退出时保存一些数据)。另外一个问题是,我的应用程序的窗口是隐藏的(而是显示托盘图标),因此Process.MainWindowHandle始终为0 我可以做什么来发出关闭申请的信号?我可以直接向应用程序(而不是窗口)发送消息吗 非常感谢你的帮助。 Gregor当您希望应用程序正常关闭时,您可以让APP1监听特定端口并向该端口发送消息。因此,APP2必须知道APP1端口以及它期望的消息参数 您还

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

我可以做什么来发出关闭申请的信号?我可以直接向应用程序(而不是窗口)发送消息吗

非常感谢你的帮助。
Gregor

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

您还可以使用某种消息队列(Windows有,或者您可能想使用类似SQL Service Broker的东西)实现,让一个应用程序向队列发送消息,另一个应用程序从队列读取消息


您还可以检查一下:

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

只是为了在混合中加入其他东西:。

您可能可以使用WinAPI通过类或窗口文本查找窗口句柄(即使它是隐藏的)。然后向应用程序发送windows消息以关闭它