我用delphi7做了一个有图形界面的windows服务程序
允许服务与桌面交互(Interactive设置为True)
在XP上运行没有任何问题 也能看到界面
在WIN2003上看不到界面 但在进程可以看到程序在运行
这是什么原因以下是部分代码procedure TSvrTest.ServiceStart(Sender: TService; var Started: Boolean);
begin
  Started:= True;
  SvcMgr.Application.CreateForm(TfrmTest, frmTest);
  frmTest.Show;
end;procedure TSvrTest.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  Stopped:= True;
  if frmMain<>nil then
    FreeAndNil(frmMain);
end;frmTest就是一个空的窗体,除了加了个托盘的控件,还没有其他任何逻辑实现。

解决方案 »

  1.   

    下面的问题那位高手帮看看吧
    高手们也请多多赐教
    http://topic.csdn.net/u/20110913/13/59f92d11-1fb0-4b7e-9c4a-e93d8f19c689.html
    http://topic.csdn.net/u/20110611/12/3258c959-4f28-46b7-b5d6-46135d73036b.html
    http://topic.csdn.net/u/20110722/14/89f7440b-c4d7-4c9a-a4bb-a503f5135db2.html
    http://topic.csdn.net/u/20110729/10/a7bfaf06-0cf9-4580-8e91-d4e0b92066c6.html
    http://topic.csdn.net/u/20110811/16/e56e7cc1-d8c9-40af-92e3-c24ca103d17d.html
    http://topic.csdn.net/u/20110830/13/dfae4ca5-d2b9-4889-8a3c-6f7fb61936c9.html
    http://topic.csdn.net/u/20110905/12/a1161adb-8e5d-491a-b302-c9722edf2dab.html
    http://topic.csdn.net/u/20110913/16/2dbcc9db-8f71-40c5-901f-afae9026f7c2.html
    http://topic.csdn.net/u/20110913/13/59f92d11-1fb0-4b7e-9c4a-e93d8f19c689.html
      

  2.   

    如果是随机启动的服务,你进入你的界面之前,就已经CreateForm了
    所以你登陆之后,还需要在控制一次formshow
      

  3.   

    啊,对了,我是用一个trayicon,在他的事件中控制界面显示的。
      

  4.   

    frmTest就是一个空的窗体,除了加了个托盘的控件,还没有其他任何逻辑实现。
    用timer控制显示好了
      

  5.   

    其实做这种有图形界面的Service,完全可以参考delphi自带的一个例子
    C:\Program Files\Borland\Delphi7\Source\Vcl\ScktSrvr.dpr
      

  6.   

    我试了一下,结果还是一样的,服务启动后,在XP系统上可以看到界面,WIN2003上就看不到。
    不过仍然很感谢你!