在WinXP和Win2003环境中,安装服务后,右键单击服务“属性”-“登录”选项卡-选择“本地系统帐户”并勾选“允许服务与桌面交互”即可.
在Win7环境中,由于微软加强了权限管理,将此功能禁用,需要引用第三方dll
Cjwdev.WindowsApi.dll
Cjwdev.WindowsApi.xml
dll下载链接:http://pan.baidu.com/share/link?shareid=159544&uk=3288736938
private void StartApp(string strAppPath) { try { IntPtr userTokenHandle = IntPtr.Zero; ApiDefinitions.WTSQueryUserToken(ApiDefinitions.WTSGetActiveConsoleSessionId(), ref userTokenHandle); ApiDefinitions.PROCESS_INFORMATION procInfo = new ApiDefinitions.PROCESS_INFORMATION(); ApiDefinitions.STARTUPINFO startInfo = new ApiDefinitions.STARTUPINFO(); startInfo.cb = (uint)Marshal.SizeOf(startInfo); ApiDefinitions.CreateProcessAsUser( userTokenHandle, strAppPath, “”, IntPtr.Zero, IntPtr.Zero, false, 0, IntPtr.Zero, null, ref startInfo, out procInfo); if (userTokenHandle != IntPtr.Zero) ApiDefinitions.CloseHandle(userTokenHandle); _currentAquariusProcessId = (int)procInfo.dwProcessId; } catch (Exception ex) { MessageBox.Show(ex.Message); } }