我写的一个服务端程序,监视进程、工作进程。服务启动后监视进程工作,启动工作进程。监视进程与工作进程之间可以通过PostThreadMessage传递数据。 另有一个UI监视程序,是在桌面手动运行的。运行后无法连接工作进程的互斥体和共享内存对象。后经过分析,是权限不足导致。服务进程运行于SYSTEM用户下,拥有最高的权限,桌面程序运行在Administrators用户下,无法打开SYSTEM用户下的对象。
于是我对互斥体和共享内存的创建方式加入了SECURITY_ATTRIBUTES。UI监视程序运行后成功打开工作进程对象。下面问题来了: 我通过共享内存将工作进程的主线程ID传递给UI监视程序,UI监视程序向线程发送消息时提示非法的线程ID。
于是我觉得工作进程创建时也应该加入相同的权限,同样,我在创建工作进程时修改了SECURITY_ATTRIBUTES。运行后错误依旧。 于是我将UI监视线程的主线程通过共享内存传递给工作进程,由工作进程向UI发送消息。PostThreadMessage函数调用成功,但UI监视进程就是收不到消息。 总结两个问题:
1.UI监视进程无法给工作进程主线程发消息,提示非法的线程ID;
2.工作进程成功给UI监视进程发送消息,但UI监视进程始终收不到消息。望高手指教,不甚感激!!!
于是我对互斥体和共享内存的创建方式加入了SECURITY_ATTRIBUTES。UI监视程序运行后成功打开工作进程对象。下面问题来了: 我通过共享内存将工作进程的主线程ID传递给UI监视程序,UI监视程序向线程发送消息时提示非法的线程ID。
于是我觉得工作进程创建时也应该加入相同的权限,同样,我在创建工作进程时修改了SECURITY_ATTRIBUTES。运行后错误依旧。 于是我将UI监视线程的主线程通过共享内存传递给工作进程,由工作进程向UI发送消息。PostThreadMessage函数调用成功,但UI监视进程就是收不到消息。 总结两个问题:
1.UI监视进程无法给工作进程主线程发消息,提示非法的线程ID;
2.工作进程成功给UI监视进程发送消息,但UI监视进程始终收不到消息。望高手指教,不甚感激!!!
解决方案 »
- 通过按钮事件响应来达到改变某控件上的字体,颜色,如何实现。
- 急求mpeg2支持可分级的编码器源码!
- 一个简单的按钮问题
- 在后台服务程序中使用ADO::_ConnectionPtr 出现无效字针错误?
- 请问如何在VC。NET里加上DIRECT X那几个连接库?在哪里加?
- 有没有可以在窗口上输出文字的API?
- 如何在视图窗口中实现一个带有一个按钮的小窗口,使它始终在视图上?
- 在线等待的简单问题——在类中不能使用函数指针吗?
- 实现 在对话框中点击一个按钮 弹出一个窗口 绘制图像
- 我的Visual C++6.0链接后怎么只有一个DEBUG目录,而没有RELEASE目录?
- 请问如何查看有几个CPU
- MFC单文档视图下,新创建Popup窗口时,MainFrame窗口禁止操作 为何?
普通Message方式无法IPC的.参考
http://msdn.microsoft.com/en-us/windows/hardware/gg463353.aspx推荐Namepie或者用Shared Memory+1锁1个事件进行单向传输控制.
http://issf.blog.163.com/blog/static/1941290822009102594518661/