我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输...
                
我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.
我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输任何数据.
使用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进程间“事件”
				
        
 
            
        
             猜你喜欢
        
	     - .NET CORE DI 依赖注入 2023-09-27
 - user32.dll 函数说明小结 2022-12-26
 - c# 模拟线性回归的示例 2023-03-14
 - WPF使用DrawingContext实现绘制刻度条 2023-07-04
 - C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
 - 在C# 8中如何使用默认接口方法详解 2023-03-29
 - Unity3D实现渐变颜色效果 2023-01-16
 - 如何使用C# 捕获进程输出 2023-03-10
 - Oracle中for循环的使用方法 2023-07-04
 - Unity Shader实现模糊效果 2023-04-27
 
						
						
						
						
						
				
				
				
				