如何獲得修改登錄檔的許可權

2021-06-06 01:00:39 字數 1217 閱讀 5630

在編寫查詢計算機上曾經接入usb裝置的軟體的時候發現我的程式無法修改某些登錄檔中的項,有些項只有使用唯讀模式才能讀取資料,如果使用讀寫許可權將會被拒絕。經過一翻查詢,找到了辦法:

uses

jclwin32,

accctrl;

function   allowregkeyforeveryone(key:   hkey;   path:   string):   boolean;

var  

widepath:   pwidechar;  

len:   integer;

begin  

case   key   of  

hkey_local_machine:  

path   :=   'machine\'   +   path;  

hkey_current_user:  

path   :=   'current_user\'   +   path;  

hkey_classes_root:  

path   :=   'classes_root\'   +   path;  

hkey_users:  

path   :=   'users\'   +   path;  

end;  

len   :=   (length(path)+1)*sizeof(widechar);  

getmem(widepath,len);  

multibytetowidechar(cp_acp,   mb_precomposed,   pchar(path),   -1,   widepath,   len);  

result   :=   setnamedsecurityinfow(widepath,   se_registry_key,

dacl_security_information,   nil,   nil,   nil,   nil)   =   error_success;  

freemem(widepath);  

end;

這裡引用的兩個unit來自於jcl1.94。以後有空再將裡面沒用的部分剔除掉,然後單獨做乙個單元。

2023年2月寫。

直到現在也沒單獨做:)

登錄檔修改

大中小 開關機加速系列 開始 加快關機速度 hkey current user control panel desktop 關機時自動關閉停止響應的程式 hkey current user control panel desktop autoendtasks 1 關機結束程式等待時間 hkey cu...

修改登錄檔

在 用visual c 讀取註冊資訊 的文中,已經介紹了用 visual c 來讀取登錄檔中的註冊資訊。本文就來介紹用visual c 對登錄檔的另外乙個操作,這也是乙個具有破壞性的操作過程 刪除註冊資訊。在上文中已經知道,由於visual c 本身沒有帶類庫,他對登錄檔的處理過程是通過呼叫.net...

修改Windows登錄檔

始終使在 windows 登錄檔的備份之前修改任何設定。通過複製 system.dat 和 user.dat 或匯出單個使用 regedit 登錄檔的一部分,您可以備份整個登錄檔。單擊開始按鈕,單擊執行,然後鍵入 regedit。單擊確定。在登錄檔編輯器中選擇所要備份的金鑰。從登錄檔選單中選擇匯出登...