我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输...

我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.
我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输任何数据.
使用C#/ .NET在Windows中执行此操作的最佳(最好是最简单)方法是什么?
解决方法:
将good’ol WM_CLOSE发送给所有实例……
Process[] processes = Process.GetProcesses();
string thisProcess = Process.GetCurrentProcess().MainModule.FileName;
string thisProcessName = Process.GetCurrentProcess().ProcessName;
foreach (Process process in processes)
{
// Compare process name, this will weed out most processes
if (thisProcessName.CompareTo(process.ProcessName) != 0) continue;
// Check the file name of the processes main module
if (thisProcess.CompareTo(process.MainModule.FileName) != 0) continue;
if (Process.GetCurrentProcess().Id == process.Id)
{
// We don't want to commit suicide
continue;
}
// Tell the other instance to die
Win32.SendMessage(process.MainWindowHandle, Win32.WM_CLOSE, 0, 0);
}
沃梦达教程
本文标题为:c# – .NET进程间“事件”


基础教程推荐
猜你喜欢
- C#通过GET/POST方式发送Http请求 2023-04-28
- C# – NetUseAdd来自Windows Server 2008和IIS7上的NetApi32.dll 2023-09-20
- C#集合查询Linq在项目中使用详解 2023-06-09
- C# Winform实现石头剪刀布游戏 2023-01-11
- Unity shader实现多光源漫反射以及阴影 2023-03-04
- c#中利用Tu Share获取股票交易信息 2023-03-03
- 使用c#从分隔文本文件中插入SQL Server表中的批量数据 2023-11-24
- C#中类与接口的区别讲解 2023-06-04
- c#读取XML多级子节点 2022-11-05
- 京东联盟C#接口测试示例分享 2022-12-02