在編寫查詢計算機上曾經接入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。單擊確定。在登錄檔編輯器中選擇所要備份的金鑰。從登錄檔選單中選擇匯出登...