首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#创建其他应用程序可以看到的SystemEvents

C#创建其他应用程序可以看到的SystemEvents
EN

Stack Overflow用户
提问于 2011-10-07 06:32:40
回答 3查看 145关注 0票数 2

我正在尝试想出一种方法来引发一个可以被多个应用程序看到的公共事件。首先想到的是SystemEvents。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-07 07:09:25

你真的需要使用SystemEvent吗?IPC的其他方法呢?

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

票数 2
EN

Stack Overflow用户

发布于 2011-10-07 06:50:50

我不认为有一个简单的.Net内置的方式来做到这一点。据我所知,唯一的方法就是对Windows事件队列使用PostMessageSendMessage。您可以阅读详细信息About Messages and Message Queues。在谷歌上有大量的资源可以调用这些原生命令,但最好的入门级资源是pinvoke.net

票数 1
EN

Stack Overflow用户

发布于 2011-10-07 07:09:51

SystemEvents的底层管道是广播到所有顶级窗口的windows消息。像WM_SETTINGCHANGED这样的消息。您也可以广播消息,使用HWND_BROADCAST调用SendMessageTimeout。这有一定的风险,您将向以前从未见过消息编号的程序发送消息。至少,您需要使用RegisterWindowMessage()来确保获得一个惟一的消息编号,该编号对于您和您希望知道通知的进程来说是已知的,并且不会混淆其他进程。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7681236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档