比如cpu的型号,网卡的mc地址等。
解决方案 »
- 如何在paintbox上显示gif图片,并让它动起来,急急..
- 咨询业务高手,物资系统在先进先出的成本核算方式下红冲处理流程。
- 做一个类似报表的东西 不知如何下手 谁给我个源码让我参考下 类似excel的
- 我C++写了一个类,没有用到任何的MFC类,类都是封装微软的API,我用VC编译成DLL。这个DLL,要如何让DELPHI程序可以调用该类里的公共函数
- 如何实现DBGRID自动让选中的蓝条跳到符合条件的记录上
- 各位前辈,帮忙推荐一些市和初学delphi的网站。
- 在Dehi中如何实现 DateAdd,即当前日期+n天数,得到结果的日期?
- 请问各位大侠!~~~~~~~~怎样使用JSP,我有安装了可是用不了呀 这是为什么呢!
- [高手注意]控件问题,高手们看您的了....
- Delphi中组件的注册问题?
- 会者不难(关于sql)
- dev Express中的dev Grid如何自动生成列?
可以搜寻 delphi宝典
function GetMacAddresses(const Machine: string; const Addresses: TStrings): Integer;
varNCB: TNCB;Enum: TLanaEnum;I, L, NameLen: Integer;Adapter: ASTAT;MachineName: string;beginResult := -1;Addresses.Clear;MachineName := UpperCase(Machine);if MachineName = '' thenMachineName := '*';NameLen := Length(MachineName);L := NCBNAMSZ - NameLen;if L > 0 thenbeginSetLength(MachineName, NCBNAMSZ);FillChar(MachineName[NameLen + 1], L, ' ');end;FillChar(NCB, SizeOf(NCB), #0);NCB.ncb_command := NCBENUM;NCB.ncb_buffer := Pointer(@Enum);NCB.ncb_length := SizeOf(Enum);if NetBios(@NCB) = NRC_GOODRET thenbeginResult := Enum.Length;for I := 0 to Ord(Enum.Length) - 1 dobeginFillChar(NCB, SizeOf(NCB), #0);NCB.ncb_command := NCBRESET;NCB.ncb_lana_num := Enum.lana[I];if NetBios(@NCB) = NRC_GOODRET thenbeginFillChar(NCB, SizeOf(NCB), #0);NCB.ncb_command := NCBASTAT;NCB.ncb_lana_num := Enum.lana[I];Move(MachineName[1], NCB.ncb_callname, SizeOf(NCB.ncb_callname));NCB.ncb_buffer := PChar(@Adapter);NCB.ncb_length := SizeOf(Adapter);if NetBios(@NCB) = NRC_GOODRET thenAddresses.Add(AdapterToString(Adapter.adapt));end;end;end;end;************************//获取网卡地址,使用netbios 3.0调用 uses nb30.pas shipped with delphi 4.0function _NetCardAddress : String ;varNCB : TNCB ; // Netbios control blockADAPTER : TADAPTERSTATUS ; // Netbios adapter statusLANAENUM : TLANAENUM ; // Netbios lanaintIdx : Integer ; // Temporary work valueCRC : Char ; // Netbios return codestrTemp : String ; // Temporary stringbeginResult := '' ;tryZeroMemory(@NCB,SizeOf(NCB)) ; // Zero control bloclNCB.ncb_command := Chr(NCBENUM) ; // Issue enum commandcRC := NetBios(@NCB) ;if Ord(cRC)>0 then beginresult:=_NBReturnMSG(crc);exit ;end; NCB.ncb_buffer := @LANAENUM ; // Reissue enum commandNCB.ncb_length := SizeOf(LANAENUM);cRC := NetBios(@NCB) ;if Ord(cRC)>0 then beginresult:=_NBReturnMSG(crc);exit ;end;ZeroMemory(@NCB,SizeOf(NCB)) ; // Reset adapterNCB.ncb_command := Chr(NCBRESET) ;NCB.ncb_lana_num := LANAENUM.lana[0] ;cRC := NetBios(@NCB) ;if Ord(cRC)>0 then beginresult:=_NBReturnMSG(crc);exit ;end;ZeroMemory(@NCB,SizeOf(NCB)) ; // Get adapter addressNCB.ncb_command := Chr(NCBASTAT) ;NCB.ncb_lana_num := LANAENUM.lana[0] ;StrPCopy(NCB.ncb_callname,'*') ;NCB.ncb_buffer := @ADAPTER ;NCB.ncb_length := SizeOf(ADAPTER) ;cRC := NetBios(@NCB) ;if Ord(cRC)>0 then beginresult:=_NBReturnMSG(crc);exit ;end; // Convert Netcard address it to stringstrTemp := '' ;for intIdx := 0 to 5 do strTemp := strTemp + _Char2Hex(ADAPTER.adapter_address[intIdx]) ;Result := strTemp ;finallyend ;end ;