在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); } }