在服务中无法启动应用程序界面解决办法
在服务中无法启动应用程序界面
环境:Windows Server 2003
在系统服务中,采用CreateProcess启动应用程序,在进程管理中,看到相关进程启动,但是无法看到界面。
我在XP下测试的,是可以启动界面,就是在2003 Server上不行。
------解决方案--------------------
这个问题经常出现
OpenProcessToken
DuplicateToken
WTSGetActiveConsoleSessionId
SetTokenInformation
CreateProcessAsUser
------解决方案--------------------
环境:Windows Server 2003
在系统服务中,采用CreateProcess启动应用程序,在进程管理中,看到相关进程启动,但是无法看到界面。
- C/C++ code
hScm=OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE); hService=CreateService( hScm, _T("ServiceTest"), _T("ServiceTest"), SERVICE_ALL_ACCESS, SERVICE_INTERACTIVE_PROCESS | SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, "c:\\ServiceTest.exe", 0,0,0,0,0 ); PROCESS_INFORMATION pi; STARTUPINFO sti; ZeroMemory(&sti,sizeof(sti)); sti.cb=sizeof(sti); sti.lpDesktop= "WinSta0\\Default"; CreateProcess(strCmd,NULL,NULL,NULL,FALSE,0,NULL,NULL,&sti,&pi);
我在XP下测试的,是可以启动界面,就是在2003 Server上不行。
------解决方案--------------------
这个问题经常出现
OpenProcessToken
DuplicateToken
WTSGetActiveConsoleSessionId
SetTokenInformation
CreateProcessAsUser
------解决方案--------------------