我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输...
我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.
我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输任何数据.
使用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#使用NPOI将excel导入到list的方法 2023-05-22
- C#执行EXE文件与输出消息的提取操作 2023-04-14
- C# TreeView从数据库绑定数据的示例 2023-04-09
- 浅谈C# 构造方法(函数) 2023-03-03
- C#使用SQL DataAdapter数据适配代码实例 2023-01-06
- 如何用C#创建用户自定义异常浅析 2023-04-21
- Unity虚拟摇杆的实现方法 2023-02-16
- C#中参数的传递方式详解 2023-06-27
- C#使用Chart绘制曲线 2023-05-22
- C#实现归并排序 2023-05-31
