某次需要使用c#對登錄檔進行操作,不過卻發現沒有許可權,研究了以下發現是當前系統使用者的問題。除非當前系統使用者是administrator,否則就會給你丟擲乙個異常。後來在網上發現了乙個方法,原來c#也可以獲取使用者的系統管理員許可權的,雖然需要使用者進行確認。
這裡我對oracle軟體的乙個鍵進行了操作,想要將值改為乙個指定的字元。在進入登錄檔後,進行提公升許可權操作,獲取許可權後執行bat檔案和reg檔案。當然,如果不想用bat和reg檔案也可以,不過那就需要在操作登錄檔之前進行提公升許可權操作了。
try;
foreach (string p in
path)
//判斷鍵值對是否為空
if (registryroot != null
)
else
oracle_char.bat
"
//設定啟動動作,確保以管理員身份執行
startinfo.verb = "
runas";
system.diagnostics.process.start(startinfo);}}
}}
catch
bat檔案:
@echooffcd /d "%~dp0"@
for %%a in (oracle_char.reg) do (regedit /s %%a)
reg檔案:
windows registry editor version 5.00[hkey_local_machine\software\oracle\key_oradb10g_home1]"nls_lang"="simplified chinese_china.zhs16gbk"
在執行提公升許可權操作時,程式會彈出乙個視窗,要求使用者提公升許可權。adminsitrator使用者有密碼的話輸入密碼,沒有密碼點選一下確認按鈕就可以了。
不過這個時候可能會出現乙個問題,就是在彈出要求使用者提公升系統許可權的時候,主程序的**會繼續向下執行,這個時候,就需要呼叫下面的乙個方法。
system.diagnostics.process process =system.diagnostics.process.start(startinfo);process.waitforexit();
方法waitforexit是表示等待相關聯程序的。如果不加入引數,則會表示軟體主程序會無限期等待關聯程序,也就是要求使用者提公升系統許可權的彈出框。只有使用者進行操作之後才會繼續向下執行。
不過值得注意的是,如果這個時候使用者點選按鈕「否」的話,會丟擲乙個異常,叫做「使用者取消操作」。
登錄檔修改
大中小 開關機加速系列 開始 加快關機速度 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。單擊確定。在登錄檔編輯器中選擇所要備份的金鑰。從登錄檔選單中選擇匯出登...