![]() |
1
2
亚伦给出了所有的理由,为什么你不能没有托盘应用程序,但为什么要增加一个服务的复杂性与应用程序通过IPC通信? 当需要运行代码时,即使没有用户登录,服务也很有用。这里不是这样的,对吧? 除非您必须同时操作多个登录用户的输入,否则我只使用托盘应用程序来执行监视网络事件和操作用户输入这两项任务,这对我来说要简单得多。 |
![]() |
2
8
如果你打算在Vista和Windows 7上运行你的代码,一个Windows服务是不够的,因为它们不能再与用户桌面交互了。如果要处理用户输入,则需要在用户会话中运行程序。 另一种方法是编写用于监视网络事件的服务,在用户登录时启动客户端,并使用IPC在两者之间进行通信。 编辑:NetworkService应足以提供服务特权。 |
![]() |
3
3
正如亚伦建议的那样,让Windows服务监视网络。 至于IPC到用户会话中的进程,您可以使用WCF,而命名管道可能是最好的传输方式,但是您需要正确地设计它,以便跨越会话边界。使用双工协定使服务进程成为WCF服务:用户会话进程调用服务进行注册,然后在回调协定中将事件传递回用户会话进程。 See this question for an explanation of the issues. |
![]() |
scvyao · 如何从字符串中钩住obj-c选择器(通过调整)? 7 年前 |
![]() |
Soulduck · tensorflow中使用的钩子是什么意思 7 年前 |
![]() |
Ragini · 在开始时两次调用前钩子和后钩子 7 年前 |
![]() |
VGs · 无法从服务挂钩获取事件的几乎所有信息 7 年前 |
![]() |
Michael · 在另一个Add\u操作内添加\u操作 7 年前 |
![]() |
MikeO · 挂接函数时,为什么覆盖前5个字节并不重要? 8 年前 |