我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输...
我有相同应用程序的多个实例正在运行.用户询问可以在每个实例上单击“退出”以将其关闭.
我想将选择添加到“退出所有实例”,这将引发一些“事件”的孩子,该事件通知应用程序应该关闭的所有实例.我不需要随此事件传输任何数据.
使用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#类和结构详解 2023-05-30
- ZooKeeper的安装及部署教程 2023-01-22
- C# List实现行转列的通用方案 2022-11-02
- winform把Office转成PDF文件 2023-06-14
- C# 调用WebService的方法 2023-03-09
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- 一个读写csv文件的C#类 2022-11-06
- C#控制台实现飞行棋小游戏 2023-04-22
- C# windows语音识别与朗读实例 2023-04-27
- unity实现动态排行榜 2023-04-27