呼叫ShellExecuteEX可打開regedit.exe程式但如同時打開指定之機碼? |
答題得分者是:timhuang
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
1. regedit.exe 應該是只能接受 *.reg 的參數, 以新增或修改 registry. 沒有辦法直接展開到指定的機碼. 2.
2-1. windows 本身有提供存取 registry 的 api 如下列:
Registry Functions
Following are the functions used with the registry:
RegCloseKey
RegConnectRegistry
RegCreateKey
RegCreateKeyEx
RegDeleteKey
RegDeleteValue
RegEnumKey
RegEnumKeyEx
RegEnumValue
RegFlushKey
RegGetKeySecurity
RegLoadKey
RegNotifyChangeKeyValue
RegOpenKey
RegOpenKeyEx
RegQueryInfoKey
RegQueryMultipleValues
RegQueryValue
RegQueryValueEx
RegReplaceKey
RegRestoreKey
RegSaveKey
RegSetKeySecurity
RegSetValue
RegSetValueEx
RegUnLoadKey 2-2. Delphi 中已有內建存取 Registry 的單元, 名稱就叫 Registry, 請自行查閱. 引用 delphi on-line help 的一部分使用範例:
var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\RunOnce', True) then begin Reg.WriteString('MyApp','"' + ParamStr(0) + '"'); Reg.CloseKey; end; finally Reg.Free; inherited; end; end; |
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
1. 如 timhuang 兄說的
class="code">
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell") ' write in the HKey_Current_User
WSHShell.RegWrite "HKCU\RealHome\", "Welcome"
WSHShell.RegWrite "HKCU\RealHome\How-to", "Java"
WSHShell.RegWrite "HKCU\RealHome\How-to", "Javascript"
WSHShell.RegWrite "HKCU\RealHome\How-to", "PB"
WSHShell.RegWrite "HKCU\RealHome\How-to", "VBScript"
WSCript.Echo "Value of HKCU\Realhome is " & _
WSHShell.RegRead("HKCU\RealHome\")
Set WSHShell = Nothing
WScript.Quit(0)
VBS 的範例, 自己轉
|
bugmans
高階會員 發表:95 回覆:322 積分:188 註冊:2003-04-12 發送簡訊給我 |
可以參考這個軟體RegJump v1.01
http://www.microsoft.com/technet/sysinternals/Miscellaneous/Regjump.mspx 只要下指令regjump.exe 機碼 regedit.exe就會跳到指定的機碼位置 背後的原理可參考regmon,這個軟體只要雙擊ListView任何一項,一樣會跳到regedit.exe指定位置 http://delphi.ktop.com.tw/board.php?cid=31&fid=77&tid=47632 |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
如果你硬要使用 命令列的方式
你可以兩種方式: 1. 先將機碼準備好,使用程式將之輸出到暫存檔 [-HXXXXXXXXXXXXX] 加上檢號,表示刪除 aaa=- 加上檢號,表示刪除 aaa="124" bbb=0x12 然後下 regedit.exe temp.reg 2. 改用 reg.exe 如 ShellExecuteEX ( REG.EXE ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead ....) 新增一個值 (名稱: Data, 類型: REG_BINARY, 資料: fe340ead) 不過既然都寫程式了,為何要脫褲放屁?我就不得而知了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |