關於delphi4撰寫win32 api 機碼問題 |
答題得分者是:cmf
|
soni
一般會員 發表:17 回覆:29 積分:9 註冊:2003-02-06 發送簡訊給我 |
如提 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 發送簡訊給我 |
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 發送簡訊給我 |
引言: 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 發送簡訊給我 |
引言: 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 發送簡訊給我 |
|
soni
一般會員 發表:17 回覆:29 積分:9 註冊:2003-02-06 發送簡訊給我 |
引言: S SIR: 原來你不是要存檔阿 一開始沒有講清楚 現在還是不了解你的意四 可以在蔣詳細一點好嗎.........3QCMF 大大拍謝拍謝 小弟在從頭說一次好ㄌ 小弟想要ㄉ功能是 小弟把用戶輸入的產品註冊序號寫到系統機碼里 而用戶再用我們所開發ㄉ軟體時 程式一執行就可以 ㄑ抓取存在系統機碼的註冊序號從而判斷是否為測試版 或是正式版 以上是小弟想要ㄉ功能 現在小弟已經做到 可以存ㄌ 可是小弟還是抓不出來我所存放的這ㄍkey值 小弟用的方法是 ReadString的方法 cmf大大大 不知這樣是否清楚ㄋ 浪費你那麼多時間 小弟實在過意不ㄑ |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
// 寫入
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 發送簡訊給我 |
引言: // 寫入 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 發送簡訊給我 |
|
soni
一般會員 發表:17 回覆:29 積分:9 註冊:2003-02-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |