代码如下:
procedure TService1.Timer1Timer(Sender: TObject);  var
 handle,myhwnd:hwnd;
begin
 myhwnd:=FindWindow(nil,'test-client');
 if myhwnd=0 then
  winexec(PChar('D:\cstest\cstest\Client\Client.exe'), SW_SHOWNORMAL);
end;就是client,不会显示其界面。

解决方案 »

  1.   

    是不是你的Timer 的 enabled 没置为True啊
      

  2.   

    不是的,client已经在任务管理器中的进程中看到了,已启动了。
      

  3.   

    你好,请问这个桌面交互的问题怎样解决的?
    我也碰到这样的问题!
    就是服务A启动起来了,这个服务也启动某个(B)程序【任务管理器也能看见B.exe】,但是界面没有显示,请问你是怎样解决的呢?
      

  4.   

    呵呵,俺知道了!
    1:服务程序默认是工作于Winlogon桌面的,可以打开控制面板,查看我们刚才那个服务的属性-->登陆,其中"允许服务与桌面交互"打钩就可
    2:用程序;创建服务时:
    schService=CreateService(schSCManager,
    szServiceName,  //服务名字
    szDisplayName,  //服务名字
    SERVICE_ALL_ACCESS,
    SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS,
    SERVICE_AUTO_START,
    SERVICE_ERROR_NORMAL,
    szPath,  //服务(.exe)路径
    NULL,
    NULL,
    NULL,
    NULL,
    NULL
    );SERVICE_WIN32_OWN_PROCESS 修改为:SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS现在在服务属性时就可以看见"允许服务与桌面交互"自动√了。