如题。这么做的目的是当桌面(console级别的,即在本机电脑启动登录的界面,非远程桌面登录的用户)启动的时候,创建该服务的控制界面。

解决方案 »

  1.   

    楼主搜索一下 WM_WTSSESSION_CHANGE 消息相关的资料,应该会有收获!
      

  2.   

    微软主页上有参考示例!http://support.microsoft.com/kb/310153/zh-cn
      

  3.   

    贴一下代码:case WM_WTSSESSION_CHANGE:
       switch( wParam )
       {
          case WTS_CONSOLE_CONNECT:
             MessageBox(hWnd, TEXT("WTS_CONSOLE_CONNECT"), 
                        TEXT("WM_WTSSESSION_CHANGE"), MB_OK );
    break;
          case WTS_CONSOLE_DISCONNECT:
             MessageBox(hWnd, TEXT("WTS_CONSOLE_DISCONNECT"), 
                        TEXT("WM_WTSSESSION_CHANGE"), MB_OK );
    break;
          case WTS_SESSION_LOCK:
             MessageBox(hWnd, TEXT("WTS_SESSION_LOCK"), 
                        TEXT("WM_WTSSESSION_CHANGE"), MB_OK );
    break;
          case WTS_SESSION_UNLOCK:
             MessageBox(hWnd, TEXT("WTS_SESSION_UNLOCK"), 
                        TEXT("WM_WTSSESSION_CHANGE"), MB_OK );
    break;
    default:
    break;
       }
    break;
      

  4.   

    服务起来的时候,创建一线程,循环判断explorer.exe 进程是否存在了,然后执行下一步
      

  5.   

    lz想要做自己的登錄界面,也就是實現自己的GINA?
      

  6.   

    這樣哦,我想以下鏈接,就是你要的答案 ^_^ Good luckAns 1
    Ans 2
      

  7.   

    你的意思是用winsta0,用8L的办法可以实现
      

  8.   

    Server 2008似乎已经放弃了这种方式!
      

  9.   

    处理这个消息会比较好一点:WM_WTSSESSION_CHANGE
      

  10.   

    自己getmessage or peekMessage
      

  11.   

    补充一下,如果是用DELPHI的服务框架,DELPHI会创建默认的消息分配机制,原因是服务是从TApplication这个对象继承下去的。
      

  12.   


    哪里的资料说是继承自TApplication?????
    TService = class(TDataModule)
    TDataModule = class(TComponent)