我想在服务里面处理一个系统消息应该怎么做,新生成的服务程序在下面代码:
MSG msg;
while (GetMessage(&msg, 0, 0, 0))
DispatchMessage(&msg);
时就挂在while里面不执行了,我尝试了一下是GateMessage好像挂起了一样
MSG msg;
while (GetMessage(&msg, 0, 0, 0))
DispatchMessage(&msg);
时就挂在while里面不执行了,我尝试了一下是GateMessage好像挂起了一样
解决方案 »
- "focus”: 不是“ATL::_NoAddRefReleaseOnCComPtr<T>”的成员的原因?
- 求助~~~~关于MFC的web控件
- 在VC里面如何进行字符串分割处理
- 关于sendmessage
- 请教几个对话框的句柄和消息响应问题
- 求vc1.5,哪个大侠有呀?
- 高分请问怎么样编程发送一个消息给QQ,只发送就行,不用接收!!!
- 怎样用ado连接oracle数据库?
- ado向sybase插入数据时遇到带中文的SQL就出错
- 如何监视一个网页(比如新浪首页)是否发生变化?我想应该是通过分析http请求返回的结果中取得“Date”字段,取出后面的日期,可是问题多多,哪位有经验,帮帮我吧!
- 又一个SOCKET问题~~简单 送分
- 问一个关于TryEnterCriticalSection的问题?
::PostMessage(HWND_BROADCAST, msgExit, NULL, NULL);
应该是个全局的消息,别的进程都能收到,为什么服务里面还是挂着的呢
0, 0, 1, 1, NULL, NULL, NULL, NULL);
while (GetMessage(&msg, 0, 0, 0))
DispatchMessage(&msg);
就可以了.
(人家要窗口嘛,给个窗口人家咯.)
(我试过OK的)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
单看这句确实没问题,但楼主是用::PostMessage(HWND_BROADCAST, msgExit, NULL, NULL);这句发全局消息给服务程序的,对于HWND_BROADCAST的情况,我上面已经列出SDK的说明,显然没有窗口是不行的。
当然,如果不加窗口,不能用HWND_BROADCAST这种方式发消息给服务程序,但可以用PostThreadMessage(有的放矢是可以的),那个线程ID可以有好多方法传给客户端,这里我建议使用file_mapping。