进程间同步问题

MikeChen2003 2009-02-02 06:29:51
我有两个进程,一个是以用户administrator服务模式启动的,一个是正常启动的。
我用事件通讯的时候,如果两个进程都是正常启动的没有问题,但是如果一个是服务模式启动,另外一个进程就收不到同步消息。
不知道怎么样才能让他们能够收到同步消息。??还有就是不同的用户登陆创建的进程如何同步?

我的代码是这样的:
等待:
pTray->SetIcon( pTray->m_icon1 );
HANDLE hEvent=CreateEvent(NULL, TRUE, FALSE, UWS_ERROR_LOG_EVENT);
if( hEvent==NULL )
{
hEvent=CreateEvent(NULL, TRUE, FALSE, UWS_ERROR_LOG_EVENT);
}
else
{
if( WAIT_OBJECT_0==WaitForSingleObject(hEvent, INFINITE) )
{
pTray->EnableAlert();
ResetEvent(hEvent);
}
CloseHandle(hEvent);
}
通知:
HANDLE hEvent=CreateEvent(NULL, TRUE, FALSE, UWS_ERROR_LOG_EVENT);
if( hEvent!=NULL )
{
SetEvent(hEvent);
CloseHandle(hEvent);
return TRUE;
}
return FALSE;
...全文
488 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
viewerviewer 2009-03-17
  • 打赏
  • 举报
回复
我试了,不论是CreateEvent还是OpenEvent,加还是没加Global\\,都不行,错误码是5:拒绝访问.
不只楼主怎么解决的?
ljhhl2006 2009-02-04
  • 打赏
  • 举报
回复
好像不能这么做吧!
通过全局内核对象事件来实现
路人乙2019 2009-02-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 paerxiushi 的回复:]
等待某个事件时,使用OpenEvent函数,不要用CreateEvent,因为CreateEvent创建的事件有权限限制的。OpenEvent用于打开服务进程创建的事件。
[/Quote]赞同,事件得命名,有个名称。
MikeChen2003 2009-02-04
  • 打赏
  • 举报
回复
顶阿
MikeChen2003 2009-02-03
  • 打赏
  • 举报
回复
还问一个问题,就是一个系统托盘程序怎么样才能让它只运行一次而不同的用户登陆后都可以看到????
MikeChen2003 2009-02-03
  • 打赏
  • 举报
回复
算是一个状态的通讯了,问题解决了
就是在事件的名字前加Global\\,看来还是msdn管用
unsway123 2009-02-03
  • 打赏
  • 举报
回复
两个进程间的通信。。。。。能够这样做吗?
MikeChen2003 2009-02-03
  • 打赏
  • 举报
回复
我用了OpenEvent返回的错误码是2,但是这个事件肯定创建了,因为我在非服务状态下启动就好用
wjb_yd 2009-02-02
  • 打赏
  • 举报
回复
此hEvet非彼hEvent,用命名的事件对象
paerxiushi 2009-02-02
  • 打赏
  • 举报
回复
等待某个事件时,使用OpenEvent函数,不要用CreateEvent,因为CreateEvent创建的事件有权限限制的。OpenEvent用于打开服务进程创建的事件。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧