c windows服務如何獲取自己的安裝路徑

2022-08-25 10:12:16 字數 1228 閱讀 9886

由於windows服務安裝時,系統會自動將windows服務的程式檔案複製到系統目錄下,通常是system32目錄下,windows服務的執行目錄就是系統目錄,有時候,windows服務在執行時需要知道自己的安裝目錄,比如,windows服務執行時所需要的一些資源檔案,通常可能是一些聲音或影象檔案,這些資源檔案是位於安裝目錄下的,只有windows服務知道了安裝目錄,才能對這些資源檔案進行訪問,那麼windows服務如何知道自己的安裝目錄的資訊呢,一種比較簡單的做法是通過訪問登錄檔。

如下圖,是乙個名字叫mazeserver的服務,通過服務管理器察看屬性,注意,其中的「可執行檔案的路徑」一欄所記錄的就是服務的映象路徑

開啟該鍵可以看到其下面的項,如圖:

其中那個imagepath的項的值就是我們需要得到的資訊。

由此,我們可以知道,只要我們能夠從系統登錄檔中找到對應的鍵讀取imagepath的項就可以得到安裝路徑資訊。提供如下類供參考。

windows服務的安裝路徑

在windows服務中需要獲得當前服務所在的路徑時,不能簡單的使用environment.currentdirectory來獲得當前路徑,因為windows服務所啟動的目錄都是在c:/windows/system32。如果在你的服務中需要檢測某個配置檔案時,你無法獲得這個配置檔案的路徑。這時有2種解決方案:

一、就是將你的配置檔案安裝在system32目錄下

二、在你的服務中通過登錄檔來獲得這個服務的安裝路徑

/*windows服務在系統安裝後會在登錄檔的 "hkey_local_machine\system\currentcontrolset\services\[servicename]"下以服務的servicename建1個目錄,目錄中會有"imagepath"節,這裡儲存的就是該服務的安裝路徑。

*////

/// 獲取服務安裝路徑

///

///

///

public static string getwindowsserviceinstallpath(string servicename)

c windows服務如何獲取自己的安裝路徑

由於windows服務安裝時,系統會自動將windows服務的程式檔案複製到系統目錄下,通常是system32目錄下,windows服務的執行目錄就是系統目錄,有時候,windows服務在執行時需要知道自己的安裝目錄,比如,windows服務執行時所需要的一些資源檔案,通常可能是一些聲音或影象檔案,...

C windows服務安裝

第二步 以超級管理的身份開啟cmd命令視窗 程式為framework 4.0,輸入cd c windows microsoft.net framework v4.0.30319 程式為framework 2.0,輸入cd c windows microsoft.net framework v2.0....

C windows服務知識集錦

最近公司專案,本人也是剛接觸windows服務,現在把這兩天上網學習的一些資料拿出來與大家分享。1 關於windows服務安裝包的製作和自動啟動服務 2 關於windows服務如是進行除錯。實際上,我們可以直接在onstart 方法中通過eventlog.writeentry hi,i m wise...