2011-09-29 53 views
0

我有一個傳統的USB設備驅動程序,它將數據從Windows註冊表中讀取並寫入到HKEY_LOCAL_MACHINE/SOFTWARE/COMPANY/PRODUCT。 我不能改變這個,所以我需要一個解決方法,因爲我注意到在啓用了UAC的Windows Vista和Windows 7上,執行寫入的函數返回一個錯誤。我的猜測是,根本沒有訪問權限。授予應用程序訪問UAC受保護的註冊表部分

我目前的解決方法是使用管理權限啓動我的應用程序,但您可能猜到這不是一個很好的解決方案。由於當USB設備在應用程序啓動時被初始化時訪問註冊表,我也不能簡單地請求重新啓動。

我知道我可以通過我的安裝程序(使用管理權限運行)爲系統上的某些文件夾授予訪問權限,但是有什麼類似的辦法可以將此授予此特定註冊表項? (我希望授予和撤銷命令)

回答

0

應該避免給非管理員用戶寫入HKLM權限。但是,如果您仍然需要這樣做,則可以使用SetACL來設置/刪除權限。 SetACL可作爲獨立的命令行可執行文件和COM對象提供。

相關問題