我做了一個NT服務程序,要讀取注冊表中的一些信息,我將信息寫入HKey_Current_User下的SoftWare鍵下的一個自建的子目錄下。形如:
HKEY_CURRENT_USERSoftwarexxxxx
有一個單獨的參數設置程序。可是我發現自已在設置程序中設置的參數,在Windows系統服務中讀不出來。後來發現其原因如下。
系統服務運行在不同的用戶帳戶下,
HKey_Current_User是HKey_Users結構中某些鍵的一個別名。系統服務的注冊鍵是在HKey_Users.Default下。注冊表中其它的主鍵是共亨的,只的HKey_Current_User是根據不同的用戶映射到不同的地方。
如果在想要給的系統服務一個真正的用戶帳號,需要在服務面板上設置。
RootKey := HKEY_CURRENT_USER;
後來,我改在HKEY_LOCAL_MacHINESoftwarexxxxx 進行操作了。