全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2303
推到 Plurk!
推到 Facebook!

請問如何獲取電腦主機版號碼?

答題得分者是:pcboy
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-27 01:35:38 IP:219.130.xxx.xxx 未訂閱
請問如何獲取電腦主機版號碼?    如果有前輩做過的話請給出程式碼,謝謝!    順便再請教一個問題,請問StrToInt(Edit2.Text)如何反饋讓用戶知道一定要輸入數字?    如果有前輩做過的話請給出程式碼,謝謝!    寫程序——新問題會接踵而來!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-27 08:08:32 IP:210.69.xxx.xxx 未訂閱
    procedure TForm1.Edit1Change(Sender: TObject);
var
  i:integer;
begin
  for i := 1 to Length(Edit1.Text) do
  begin
      if (Edit1.Text[i]>'9') or (Edit1.Text[i]<'0') then
      Label1.Caption:='Input Error !';
  end;    end;
********************* 如果您滿意答案,請結案 *********************
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
scotthsiao
高階會員


發表:13
回覆:324
積分:147
註冊:2005-02-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-27 08:54:21 IP:210.66.xxx.xxx 未訂閱
主機板有號碼嗎 ? 我是沒聽過啦 可以用網路卡的號碼,那是唯一的序號。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-27 09:54:18 IP:61.222.xxx.xxx 未訂閱
取得 CPUID    Function  Get_CPUID:String;
type
  TCPUIDARRAY = array[1..4] of Longint;
  Function GetCPUID : TCPUIDARRAY; assembler;register;
  asm
    PUSH    EBX                 {Save affected register}
    PUSH    EDI
    MOV     EDI,EAX             {@Resukt}
    MOV     EAX,1
    DW      $A20F               {CPUID Command}
    STOSD                        {CPUID[1]}
    MOV     EAX,EBX
    STOSD                       {CPUID[2]}
    MOV     EAX,ECX
    STOSD                       {CPUID[3]}
    MOV     EAX,EDX
    STOSD                       {CPUID[4]}
    POP     EDI                        {Restore registers}
    POP     EBX
  end;
var
  CPUIDARRAY :TCPUIDARRAY;
  I:integer;
begin
  Result     :='';
  CPUIDARRAY :=GetCPUID;
  For I:=1 to 4 do Result:=Result   inttostr(CPUIDARRAY[I]);
end;
在各大Tips 中應該可以找到。
不過如果您是用來做註冊序號,建議不要。
應為同一批出場的 CPU 可能ID 是相同的。    
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-27 10:02:46 IP:61.222.xxx.xxx 未訂閱
取得 CPUID    Function  Get_CPUID:String;
type
  TCPUIDARRAY = array[1..4] of Longint;
  Function GetCPUID : TCPUIDARRAY; assembler;register;
  asm
    PUSH    EBX                 {Save affected register}
    PUSH    EDI
    MOV     EDI,EAX             {@Resukt}
    MOV     EAX,1
    DW      $A20F               {CPUID Command}
    STOSD                        {CPUID[1]}
    MOV     EAX,EBX
    STOSD                       {CPUID[2]}
    MOV     EAX,ECX
    STOSD                       {CPUID[3]}
    MOV     EAX,EDX
    STOSD                       {CPUID[4]}
    POP     EDI                        {Restore registers}
    POP     EBX
  end;
var
  CPUIDARRAY :TCPUIDARRAY;
  I:integer;
begin
  Result     :='';
  CPUIDARRAY :=GetCPUID;
  For I:=1 to 4 do Result:=Result   inttostr(CPUIDARRAY[I]);
end;
在各大Tips 中應該可以找到。
不過如果您是用來做註冊序號,建議不要。
應為同一批出場的 CPU 可能ID 是相同的。    
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-27 10:07:19 IP:202.62.xxx.xxx 未訂閱
您好﹗    要如何得到所有硬體的資訊呢?  http://delphi.ktop.com.tw/topic.php?topic_id=371    System Info [領航天使] http://delphi.ktop.com.tw/topic.php?TOPIC_ID=14605    嘗試將字串形態轉為整數形態﹐若錯誤時﹐攔截錯誤﹕
Var
  I: Integer;
begin
  Try
    I := StrToInt(Edit2.Text);
  Except
    On MyError: Exception do
      ShowMessage('輸入格式不正确'+#10#13+MyError.Message);
  end;
end;
還有另外一種方法﹐在Edit中直接限制使用者的輸入只能為數字﹕
在Edit2的OnKeyPress事件中
begin
  if Not (Key in ['0'..'9', #8]) then//#8代表后退鍵
    Key := #0;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
scotthsiao
高階會員


發表:13
回覆:324
積分:147
註冊:2005-02-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-27 13:21:03 IP:210.66.xxx.xxx 未訂閱
引言: System Info [領航天使] http://delphi.ktop.com.tw/topic.php?TOPIC_ID=14605
硬碟也有唯一序號
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-27 17:11:07 IP:59.36.xxx.xxx 未訂閱
引言: 您好,请看下面代码: --------------------------------- procedure TXTZC.Edit2KeyPress(Sender: TObject; var Key: Char); begin if (Key < '0') or (Key > '9') then Key := Chr(0); // 如果不是數字則忽略 end; -------------------------------------- 但可惜在按鈕觸發事件未能做到允許空字符的輸入, 問題: 1.能否允許空內容?(希望可以實現空內容狀態) 2.如果不能為空內容的能否做信息對話框告訴客戶?
    procedure TForm1.Edit1Change(Sender: TObject);
var
  i:integer;
begin
  for i := 1 to Length(Edit1.Text) do
  begin
      if (Edit1.Text[i]>'9') or (Edit1.Text[i]<'0') then
      Label1.Caption:='Input Error !';
  end;    end;
********************* 如果您滿意答案,請結案 *********************
寫程序——新問題會接踵而來!
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-04-27 17:12:36 IP:59.36.xxx.xxx 未訂閱
引言: 您好,请看下面代码: --------------------------------- procedure TXTZC.Edit2KeyPress(Sender: TObject; var Key: Char); begin if (Key < '0') or (Key > '9') then Key := Chr(0); // 如果不是數字則忽略 end; -------------------------------------- 但可惜在按鈕觸發事件未能做到允許空字符的輸入, 問題: 1.能否允許空內容?(希望可以實現空內容狀態) 2.如果不能為空內容的能否做信息對話框告訴客戶?
    procedure TForm1.Edit1Change(Sender: TObject);
var
  i:integer;
begin
  for i := 1 to Length(Edit1.Text) do
  begin
      if (Edit1.Text[i]>'9') or (Edit1.Text[i]<'0') then
      Label1.Caption:='Input Error !';
  end;    end;
********************* 如果您滿意答案,請結案 *********************
寫程序——新問題會接踵而來!
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-04-27 17:26:42 IP:59.36.xxx.xxx 未訂閱
引言:
取得 CPUID    Function  Get_CPUID:String;
type
  TCPUIDARRAY = array[1..4] of Longint;
  Function GetCPUID : TCPUIDARRAY; assembler;register;
  asm
    PUSH    EBX                 {Save affected register}
    PUSH    EDI
    MOV     EDI,EAX             {@Resukt}
    MOV     EAX,1
    DW      $A20F               {CPUID Command}
    STOSD                        {CPUID[1]}
    MOV     EAX,EBX
    STOSD                       {CPUID[2]}
    MOV     EAX,ECX
    STOSD                       {CPUID[3]}
    MOV     EAX,EDX
    STOSD                       {CPUID[4]}
    POP     EDI                        {Restore registers}
    POP     EBX
  end;
var
  CPUIDARRAY :TCPUIDARRAY;
  I:integer;
begin
  Result     :='';
  CPUIDARRAY :=GetCPUID;
  For I:=1 to 4 do Result:=Result + inttostr(CPUIDARRAY[I]);
end;
在各大Tips 中應該可以找到。
不過如果您是用來做註冊序號,建議不要。
應為同一批出場的 CPU 可能ID 是相同的。    
寫程序——新問題會接踵而來!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-04-28 12:16:44 IP:210.69.xxx.xxx 未訂閱
1.能否允許空內容?(希望可以實現空內容狀態)    這樣 Edit2 中可以是空的或數字
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if Not (Key in ['0'..'9', #8]) then//#8代表后退鍵
  begin
    Key := #0;
  end;
end;
2.如果不能為空內容的能否做信息對話框告訴客戶? 這樣只能輸入數字, 空的時候會警告
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if Not (Key in ['0'..'9', #8]) then//#8代表后退鍵
  begin
    Key := #0;
    ShowMessage('只能接受輸入 0-9');
  end;
end;    procedure TForm1.Edit2Change(Sender: TObject);
begin
  if (Edit2.Text='') then
    ShowMessage('內容不可為空');
end;
********************* 如果您滿意答案,請結案 *********************
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-04-28 18:39:51 IP:59.36.xxx.xxx 未訂閱
相應程式碼已經轉移到http://delphi.ktop.com.tw/topic.php?TOPIC_ID=69878    寫程序——新問題會接踵而來!
系統時間:2024-07-06 15:48:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!