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

關於delphi4撰寫win32 api 機碼問題

答題得分者是:cmf
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-18 10:34:22 IP:61.219.xxx.xxx 未訂閱
如提 procedure TRegFm.Button1Click(Sender: TObject); var Reg : TRegistry; begin Reg := TRegistry.Create( KEY_ALL_ACCESS); try Reg.RootKey := HKEY_CURRENT_USER; if reg.SaveKey('\Software\Microsoft\Windows\','c:\a.reg') then begin showmessage('SAVE OK'); end else begin showmessage('SAVE ERROR'); end; finally Reg.Free; end; end; 上述是小弟按照cmf大大所提供的方法撰寫ㄉ程式 可是當執行到 Reg := TRegistry.Create( KEY_ALL_ACCESS); 這一行時都會有如下的訊息 ★too many actual parameters★的錯誤訊息 可否請教列為大大 KEY_ALL_ACCESS 於delphi4中的paramter名稱 另外在delphi4中如果我想取得cpuid是否有可利用的函數ㄋ 發表人 - soni 於 2003/02/18 11:16:04
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-18 12:12:49 IP:61.218.xxx.xxx 未訂閱
soni: D4 已經很少人用了,建議 更新版本 USES WINDOWS; procedure TRegFm.Button1Click(Sender: TObject); var res:boolean; SaveKey: HKEY; begin Res := False; RegOpenKeyEx(HKEY_CURRENT_USER, PChar('Software\Microsoft\Windows\'), 0,KEY_ALL_ACCESS,SaveKey); if SaveKey <> 0 then try Res := RegSaveKey(SaveKey, PChar('c:\a.reg'), nil) = ERROR_SUCCESS; finally RegCloseKey(SaveKey); end; end;
------
︿︿
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-18 13:14:56 IP:61.219.xxx.xxx 未訂閱
引言: soni: D4 已經很少人用了,建議 更新版本 USES WINDOWS; procedure TRegFm.Button1Click(Sender: TObject); var res:boolean; SaveKey: HKEY; begin Res := False; RegOpenKeyEx(HKEY_CURRENT_USER, PChar('Software\Microsoft\Windows\'), 0,KEY_ALL_ACCESS,SaveKey); if SaveKey <> 0 then try Res := RegSaveKey(SaveKey, PChar('c:\a.reg'), nil) = ERROR_SUCCESS; finally RegCloseKey(SaveKey); end; end;
cmf大大 用D4也不是我願意ㄉ 而是公司之前開發ㄉ程式只能在D4上面MAINTAIN 現在換我接手ㄌ我也只有在用D4 TRY囉 另外剛剛我問ㄉ程式碼問題 只要把這行Reg := TRegistry.Create( KEY_ALL_ACCESS); 改成===> Reg := TRegistry.Create;就可以ㄌ 可是不知道為什麼她每次秀出來的MSG都是SAVE ERROR 上面的程式我在ㄑTRY 謝謝CMF大大ㄉ幫忙ㄋ
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-18 14:07:41 IP:61.219.xxx.xxx 未訂閱
引言: soni: D4 已經很少人用了,建議 更新版本 USES WINDOWS; procedure TRegFm.Button1Click(Sender: TObject); var res:boolean; SaveKey: HKEY; begin Res := False; RegOpenKeyEx(HKEY_CURRENT_USER, PChar('Software\Microsoft\Windows\'), 0,KEY_ALL_ACCESS,SaveKey); if SaveKey <> 0 then try Res := RegSaveKey(SaveKey, PChar('c:\a.reg'), nil) = ERROR_SUCCESS; finally RegCloseKey(SaveKey); end; end;
to cmf 大大大: 小弟用你的程式tryㄌ之後已經沒有error出現ㄌ 可是小弟要如何知道key直是否真ㄉ存到系統機碼 另外下面的方法是小弟後來測出來ㄉ,也是可行ㄉ procedure TForm1.Button1Click(Sender: TObject); var Reg : TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; if not Reg.OpenKey( '\Software\Microsoft\Windows\', False) then Reg.CreateKey( '\Software\Microsoft\Windows\'); Reg.WriteString( 'TestRegKey', '0921662797'); if Reg.ValueExists( 'TestRegKey') then begin showmessage('SAVE OK'); end else begin showmessage('SAVE ERROR'); end; finally Reg.Free; end; end; 備註: TestRegKey====>KEY的名稱 0921662797====>KEY的內容 再問 我想把我剛存進ㄉKEY值取出來又要如何做ㄋ 小弟知道利用ReadString這ㄍFunction可以做到 可小弟試ㄌ好久都沒反應ㄋ CMF 大大大 又要麻煩你ㄋ ^_^"
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-18 14:16:43 IP:61.218.xxx.xxx 未訂閱
S SIR:    原來你不是要存檔阿 一開始沒有講清楚 現在還是不了解你的意四 可以在蔣詳細一點好嗎.........3Q        
------
︿︿
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-18 14:29:50 IP:61.219.xxx.xxx 未訂閱
引言: S SIR: 原來你不是要存檔阿 一開始沒有講清楚 現在還是不了解你的意四 可以在蔣詳細一點好嗎.........3Q
CMF 大大拍謝拍謝 小弟在從頭說一次好ㄌ 小弟想要ㄉ功能是 小弟把用戶輸入的產品註冊序號寫到系統機碼里 而用戶再用我們所開發ㄉ軟體時 程式一執行就可以 ㄑ抓取存在系統機碼的註冊序號從而判斷是否為測試版 或是正式版 以上是小弟想要ㄉ功能 現在小弟已經做到 可以存ㄌ 可是小弟還是抓不出來我所存放的這ㄍkey值 小弟用的方法是 ReadString的方法 cmf大大大 不知這樣是否清楚ㄋ 浪費你那麼多時間 小弟實在過意不ㄑ
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-18 14:51:58 IP:61.218.xxx.xxx 未訂閱
// 寫入 Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER;    if not Reg.OpenKey('S SIR 專用軟件', False) then     Reg.CreateKey('S SIR 專用軟件');    Reg.WriteString( '授權碼', '0921662797');    reg.CloseKey;    //....................................    // 讀出 Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER;    if not Reg.OpenKey('S SIR 專用軟件', False) then     Reg.CreateKey('S SIR 專用軟件');    s:=' '; try  s:=reg.ReadString('授權碼'); except  showmessahe('ERROR 無授權碼'); end;    if s='0921662797' then showmessahe('歡迎光臨') else                   showmessahe('還剩 1 天 到期');        reg.CloseKey;        
------
︿︿
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-18 15:36:16 IP:61.219.xxx.xxx 未訂閱
引言: // 寫入 Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; if not Reg.OpenKey('S SIR 專用軟件', False) then Reg.CreateKey('S SIR 專用軟件'); Reg.WriteString( '授權碼', '0921662797'); reg.CloseKey; //.................................... // 讀出 Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; if not Reg.OpenKey('S SIR 專用軟件', False) then Reg.CreateKey('S SIR 專用軟件'); s:=' '; try s:=reg.ReadString('授權碼'); except showmessahe('ERROR 無授權碼'); end; if s='0921662797' then showmessahe('歡迎光臨') else showmessahe('還剩 1 天 到期'); reg.CloseKey;
to cmf 大大大 謝謝大大ㄉ幫忙ㄋ 小弟感激不盡喔 小弟最後有一點關於產品包裝ㄉ問題想請教大大 那小弟想要ㄉ功能就是 1:在產品安裝過程可以幫客戶偵測是否已經安裝sql server 已安裝:只要建立所有資料表以及資料庫別名即可 未安裝:1=替客戶安裝120天測試版之sql server 2=建立所有資料表以及資料庫別名 備註:資料庫別名以及sql server安裝主機可以由客戶自訂 2:在產品安裝過程中將所有資料庫store procedure建立完成 小弟用的包裝軟體是delphi4所附ㄉinstallshell,想請問大大 installshell是否可做到上述功能ㄋ 謝謝大大的幫忙
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-02-18 15:48:30 IP:61.218.xxx.xxx 未訂閱
s sir:    關於 delphi4所附ㄉinstallshell sorry,俺沒用過 所以無法提供意見給你    
------
︿︿
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-02-18 16:14:56 IP:61.219.xxx.xxx 未訂閱
引言: s sir: 關於 delphi4所附ㄉinstallshell sorry,俺沒用過 所以無法提供意見給你
QQ 謝謝大大幫ㄌ我這麼多忙 小弟在ㄑ查找相關資料 最後再次感謝大大的幫忙
系統時間:2024-04-29 0:06:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!