Chinaunix首页 | 论坛 | 博客
  • 博客访问: 367659
  • 博文数量: 715
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:46
文章分类

全部博文(715)

文章存档

2011年(1)

2008年(714)

我的朋友

分类:

2008-10-13 16:40:42

BOOL CServiceModule::ShowMsgDlg(void)
{
       HDESK   hdeskCurrent;
    HDESK   hdesk;
    HWINSTA hwinstaCurrent;
    HWINSTA hwinsta;

    hwinstaCurrent = GetProcessWindowStation();
    if (hwinstaCurrent == NULL){
              LogEvent(_T("get window station err"));
       return FALSE;
       }

    hdeskCurrent = GetThreadDesktop(GetCurrentThreadId());
    if (hdeskCurrent == NULL){
              LogEvent(_T("get window desktop err"));
       return FALSE;
       }

//打开winsta0
    hwinsta = OpenWindowStation("winsta0", FALSE,                          
                                  WINSTA_ACCESSCLIPBOARD   |
                                  WINSTA_ACCESSGLOBALATOMS |
                                  WINSTA_CREATEDESKTOP     |
                                  WINSTA_ENUMDESKTOPS      |
                                  WINSTA_ENUMERATE         |
                                  WINSTA_EXITWINDOWS       |
                                  WINSTA_READATTRIBUTES    |
                                  WINSTA_READSCREEN        |
                                  WINSTA_WRITEATTRIBUTES);
    if (hwinsta == NULL){
              LogEvent(_T("open window station err"));

       return FALSE;
       }

    if (!SetProcessWindowStation(hwinsta)){
              LogEvent(_T("Set window station err"));

       return FALSE;
       }

//打开desktop
    hdesk = OpenDesktop("default", 0, FALSE,                
                            DESKTOP_CREATEMENU |
                            DESKTOP_CREATEWINDOW |
                            DESKTOP_ENUMERATE    |
                            DESKTOP_HOOKCONTROL  |
                            DESKTOP_JOURNALPLAYBACK |
                            DESKTOP_JOURNALRECORD |
                            DESKTOP_READOBJECTS |
                            DESKTOP_SWITCHDESKTOP |
                            DESKTOP_WRITEOBJECTS);
       if (hdesk == NULL){
              LogEvent(_T("Open desktop err"));

           return FALSE;
       }

       SetThreadDesktop(hdesk);

//到这一步,我们获取了和用户交互(如显示窗口)的权利
       CMsgDlg dlgMsg;
//显示一个dialog
       dlgMsg.DoModal();              

       if (!SetProcessWindowStation(hwinstaCurrent))
           return FALSE;

       if (!SetThreadDesktop(hdeskCurrent))
      return FALSE;

       if (!CloseWindowStation(hwinsta))
              return FALSE;

       if (!CloseDesktop(hdesk))
           return FALSE;

              return TRUE;
}
 

--------------------next---------------------

执行了 guiser /service 后,如果你是先打开 控制面板的服务的话,应该先刷新一下,就能看到了 ( PhoniexHao 发表于 2006-6-20 17:59:00)
 
在“运行……”里运行该可执行程序(或是console模式)
guiser /service,然后在控制面板的服务里可以看到该服务:GUISer,右键,启动后,会看到窗口。 ( iris 发表于 2004-3-25 11:27:00)
 
我运行了guiser /service,(在任务管理器中该服务进程有在运行!)而后在控制面板服务中却无法看到该服务,这是怎么回事呢?我该如何启动该服务呢?

前面的问题已经解决:在"winsta0"前加L,还有“default”前

( 托尼 发表于 2003-6-26 13:17:00)
 
我装了sp5,platform sdk,vc6,还是不行啊
( 托尼 发表于 2003-6-26 13:00:00)
 
大家帮帮我啊
( 托尼 发表于 2003-6-26 12:59:00)
 
我为什么编译不通过
两个错误:
相关的源码是:
hwinsta = OpenWindowStation("winsta0", FALSE,
                            .........                            WINSTA_WRITEATTRIBUTES);
错误:
error C2664: 'OpenWindowStationW' : cannot convert parameter 1 from 'char [8]' to 'unsigned short *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, 


hdesk = OpenDesktop("default", 0, FALSE,
                               .........                              DESKTOP_WRITEOBJECTS);
错误:
error C2664: 'OpenDesktopW' : cannot convert parameter 1 from 'char [8]' to 'unsigned short *'
( 托尼 发表于 2003-6-26 12:59:00)
 
我运行了guiser /service,(在任务管理器中该服务进程有在运行!)而后在控制面板服务中却无法看到该服务,这是怎么回事呢?我该如何启动该服务呢?
( diyzhao 发表于 2003-5-14 13:40:00)
 
看仔细了,CMsgDlg是他自己写的类,没有继承任何父类,所以不是MFC的代码! ( templer 发表于 2003-4-3 14:14:00)
 
CMsgDlg dlgMsg;
       dlgMsg.DoModal();              
是MFC的代码,在服务程序中能用吗?
( hakkaren 发表于 2002-10-24 20:14:00)
 
.......................................................

--------------------next---------------------

阅读(193) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~