線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3586
推到 Plurk!
推到 Facebook!

呼叫ShellExecuteEX可打開regedit.exe程式但如同時打開指定之機碼?

答題得分者是:timhuang
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-30 23:01:44 IP:211.74.xxx.xxx 未訂閱
1. 主程式表格用程式碼呼叫ShellExecuteEX可打開regedit.exe程式,但不知如何同時打開程式碼指定之機碼?(regmon.exe可以做到這功能),但呼叫shellExecute可同時打開notepad.exe及程式碼指定之.txt檔. 2. win2000或delphi可有封裝regedit.exe程式之com或activex物件,若有那是否可透過其界面呼叫其內含之屬性與方法?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-01 15:57:58 IP:61.221.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-03 13:44:47 IP:210.243.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-13 19:15:26 IP:125.225.xxx.xxx 未訂閱
可以參考這個軟體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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-02-14 17:15:44 IP:61.64.xxx.xxx 訂閱
如果你硬要使用  命令列的方式

你可以兩種方式:

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)

不過既然都寫程式了,為何要脫褲放屁?我就不得而知了
系統時間:2024-04-27 6:31:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!