日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows服务启动进程----Cjwdev.WindowsApi.dll

發(fā)布時間:2025/3/20 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows服务启动进程----Cjwdev.WindowsApi.dll 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

windows服務(wù)無法啟動外部程

做一個windows服務(wù)監(jiān)聽服務(wù),涉及到windows服務(wù)啟動外部程序的一個過程,但是調(diào)試測試發(fā)現(xiàn),無法簡單的用process.start()這種方法,

原因是在vista和win7這樣的系統(tǒng)下,服務(wù)是運(yùn)行在session 0,而基本上應(yīng)用是運(yùn)行在session 1,所以windows服務(wù)下無法啟動process.start()。

網(wǎng)上看到windows服務(wù)下無法啟動外部程序的原因,解決方案

1、在WinXP和Win2003環(huán)境中,安裝服務(wù)后,右鍵單擊服務(wù)“屬性”-“登錄”選項卡-選擇“本地系統(tǒng)帳戶”并勾選“允許服務(wù)與桌面交互”即可.

2、在Win7環(huán)境中,由于微軟加強(qiáng)了權(quán)限管理,將此功能禁用,需要引用第三方dll,即Cjwdev.WindowsApi.dll

Cjwdev.WindowsApi.xml,dll下載鏈接:http://pan.baidu.com/share/link?shareid=159544&uk=3288736938

解決方法:使用這樣一個第三方庫,Cjwdev.WindowsApi.dll,能夠從服務(wù)啟動外部程序;

?

public static void Openlocalexe(string path)
{

int _currentAquariusProcessID;
/*appStartpath設(shè)置為全路徑地址*/
string appStartpath = path;
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);
try
{
ApiDefinitions.CreateProcessAsUser(userTokenHandle, appStartpath, "", 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 exc)
{
Program.Log.Error(exc.Message);
//System.Runtime.InteropServices.Interop.ShowMessageBox(exc.Message, "Comfirm");
}
}

注意:要在windows服務(wù)里面去調(diào)用啟動外部程序,并且外部程序不能使控制臺程序,建議是winform.exe這樣方便測試。

總結(jié)

以上是生活随笔為你收集整理的Windows服务启动进程----Cjwdev.WindowsApi.dll的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。