Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#创建其他应用程序可以看到的系统事件_C#_Events_Public_Systemevent - Fatal编程技术网

C#创建其他应用程序可以看到的系统事件

C#创建其他应用程序可以看到的系统事件,c#,events,public,systemevent,C#,Events,Public,Systemevent,我正试图想出一种方法来发起一个可以被多个应用程序看到的公共活动。首先想到的是系统事件 是否有一种方法可以“定义”一个新的SystemEvent,甚至是一个多个应用程序可以看到和侦听的公共事件。我认为没有一种简单的.Net内置方法可以做到这一点。我知道的唯一方法是使用PostMessage或SendMessage到Windows事件队列。您可以阅读详细信息。在google上调用这些本机命令有很多资源,但最好的开始是。您真的需要使用SystemEvent吗?其他的治疗方法怎么样 是一种似乎适合您的要

我正试图想出一种方法来发起一个可以被多个应用程序看到的公共活动。首先想到的是系统事件


是否有一种方法可以“定义”一个新的SystemEvent,甚至是一个多个应用程序可以看到和侦听的公共事件。

我认为没有一种简单的.Net内置方法可以做到这一点。我知道的唯一方法是使用
PostMessage
SendMessage
到Windows事件队列。您可以阅读详细信息。在google上调用这些本机命令有很多资源,但最好的开始是。

您真的需要使用SystemEvent吗?其他的治疗方法怎么样


是一种似乎适合您的要求的替代技术。

SystemEvents的底层管道是向所有顶级窗口广播的Windows消息。WM_设置等消息已更改。您也可以通过HWND_广播来广播消息、pinvoke SendMessageTimeout。这有点危险,您将向以前从未见过消息编号的程序发送消息。至少,您需要使用RegisterWindowMessage()来确保获得一个唯一的消息编号,该编号是您和您希望知道通知的进程所知道的,并且不会混淆其他进程


有更可靠、风险更小的机制,例如命名管道服务器。

系统事件是您真正想要的,还是可能的想法?进程间通信(IPC)有很多方法。@Davehiller:应用程序必须处理事件对它们是否有用。但是你真的需要使用SystemEvent吗?那IPCC频道呢,我想它支持广播。