大佬教程收集整理的这篇文章主要介绍了winapi – 在服务中接收Windows消息,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在“广播信息”部分的最后几段中:
但几乎不可能找到任何如何做的例子.
>如何将WndProc与我的服务相关联以便它接收消息?
>或者,如何使我的服务控制处理函数接收Windows消息?我的服务控制处理程序只有一个DWORD参数,而不是WndProc的UINT,WPARAM,LPARAM等.
我读过1)使用隐藏窗口和2)仅消息窗口等,但我认为我不能在服务中使用它们;不想.如果我能用MSDN提到的两种方式中的任何一种方式完成它,我会很高兴.
服务描述:
该服务将检测USB设备插入并将一些文件复制到其中.它还必须跟踪某些目录和文件的更改,以便它知道要复制哪些目录和文件.
该基本功能可以扩展到包括将来的其他内容.所以,我可能必须能够收到许多其他我现在都不知道的Windows消息.
在开发常规Windows应用程序时,上面提到的示例消息简单地取自我习惯的内容.在编写服务时,我了解它们是否适合或不安全.
while(Getmessage(...)) ...
您可以使用Peekmessage或GetMessage
(请参阅链接的文档).但后者更常规,并将其从消息队列中删除.
即你甚至不需要窗户.每个线程都可以有一个消息循环.所以它会阻塞,但只有当前的线程.你必须弄清楚如何将信息传递给需要它的其他线程.
但是很大
但是,不要努力妥协MS为你提供的东西不要射击你自己的下半身,你应该read about Shatter Attacks over on Wikipedia并使用适当的IPC技术进行服务(有很多可用的,从MMF到管道到信号量组合,互斥量和事件).
如果您打算在用户桌面上接收窗口消息但具有特权上下文(无论如何都应该阻止会话分离),此部分是相关的.
以上是大佬教程为你收集整理的winapi – 在服务中接收Windows消息全部内容,希望文章能够帮你解决winapi – 在服务中接收Windows消息所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。