当前位置:主页>delphi7/进销存和数据库> 文章内容

急急急!

发布时间:2010-01-21 | QQ免费站
1楼: 请问如何读主板的信息,例如序列号什么的

2楼: 注册表内,HKEY_LOCAL_MACHINE\Hardware\description\system内有一些地址,再去读就可以了,但我没有试过,我看到别人是这样写的。
字串9

3楼: http://www.delphibbs.com/delphibbs/dispq.asp?lid=1956506 如何像美萍一样取得主板序列号?这问题讨论几年了,大富翁里愣是没一个人会!为什么!!!

字串5

4楼: <<< 关于读 CPU ID 和主板 BIOS 等信息加密软件 >>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Do{ 读主板信息(Delphi代码,不知用C代码怎么写?): 主板名称: String(PChar(Ptr($FE061))); 版权: String(PChar(Ptr($FE091))); 日期: String(PChar(Ptr($FFFF5))); 序列号: String(PChar(Ptr($FEC71))); * 不过,这些语句在同一批主板上读出的信息是相同的! * 并且,在 Win2000 以上版本下运行(编译)无法通过! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * 读 CPU ID:不是所有的 CPU 都有序列号,而且同一型号的 CPU ID 相同! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *读硬盘序列号:有些硬盘没有序列号,或无法正确读取(人为或系统等因素造成)。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 读网卡序列号:局限性太大,且序列号可以用一种很简单的办法修改(改注册表)。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 读用户名或计算机名:局限性太大,在大型网吧等场合不适用(改名后注册码不可用)! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 读其它能在注册表能找到的数据:太不保险,极不安全! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 使用注册名+用户名:注册太灵活,只要注册一套即可通用。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 再就是注册后的信息保存在何处??????很不简单,问题多多!!!!! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ }Loop 字串8

5楼: 读硬盘 GetVolumeInformation 字串3

6楼: 我看了别人的试了试,不知对你有没有帮助。 {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin with Memo1.Lines do begin biosinfo; end; end; procedure TForm1.BiosInfo; const Subkey: string = ‘Hardware\description\system‘; var hkSB: HKEY; rType: LongInt; ValueSize, OrigSize: Longint; ValueBuf: array[0..1000] of char; procedure ParseValueBuf(const VersionType: string); var I, Line: Cardinal; S: string; begin i := 0; Line := 0; while ValueBuf[i] <> #0 do begin S := StrPas(@ValueBuf[i]); // move the Pchar into a string Inc(Line); Memo1.Lines.Append(Format(‘%s Line %d = %s‘, [VersionType, Line, S])); // add it to a Memo inc(i, Length(S) + 1); // to point to next sz, or to #0 if at end end; begin if RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar(Subkey), 0, KEY_READ, hkSB) = ERROR_SUCCESS then try OrigSize := sizeof(ValueBuf); ValueSize := OrigSize; rType := REG_MULTI_SZ; if RegQueryValueEx(hkSB, ‘SystemBiosVersion‘, nil, @rType, @ValueBuf, @ValueSize) = ERROR_SUCCESS then ParseValueBuf(‘System BIOS Version‘); ValueSize := OrigSize; rType := REG_SZ; if RegQueryValueEx(hkSB, ‘SystemBIOSDate‘, nil, @rType, @ValueBuf, @ValueSize) = ERROR_SUCCESS then Memo1.Lines.Append(‘System BIOS Date ‘ + ValueBuf); ValueSize := OrigSize; rType := REG_MULTI_SZ; if RegQueryValueEx(hkSB, ‘VideoBiosVersion‘, nil, @rType, @ValueBuf, @ValueSize) = ERROR_SUCCESS then ParseValueBuf(‘Video BIOS Version‘); ValueSize := OrigSize; rType := REG_SZ; if RegQueryValueEx(hkSB, ‘VideoBIOSDate‘, nil, @rType, @ValueBuf, @ValueSize) = ERROR_SUCCESS then Memo1.Lines.Append(‘Video BIOS Date ‘ + ValueBuf); finally RegCloseKey(hkSB); end; end; end.
字串8



上一篇:这样的报表用FastReport如何设计?   下一篇: