BIOS
Code: |
unit BiosDate;
interface
function GetBiosDate: String;
implementation
function SegOfsToLinear(Segment, Offset: Word): Integer; begin result := (Segment SHL 4) OR Offset; end;
function GetBiosDate: String; begin result := String(PChar(Ptr(SegOfsToLinear($F000, $FFF5)))); end;
end. |
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
В windows не получится прочитать значения прямо из BIOS, однако, ничего не мешает нам считать нужные значения из реестра.
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
Вот пример как можно даты БИОС материнской платы и видеокарты выдрать. То же самое можно с названием производителя и версией.
В WinNT приходится читать не из ПЗУ а из реестра но это достаточно надежно - соотв ключи WinNT закрывает на запись и обновляет при каждом старте (?).
Для Win9x можешь хоть весь БИОС напрямую читать.
Получить заводской номер винчестера (не тот что getvolumeinfo дает) ИМХО невозможно - порты IDE даже Win9x блокирует.
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
Code: |
with Memo1.Lines do begin Add('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061)))); Add('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091)))); Add('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5)))); Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71)))); end; |
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
Code: |
{$APPTYPE CONSOLE}
uses SysUtils, Classes, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;
function HexStringToBinString(const HexStr: string): string; var i, l: integer; begin Result := ''; l := length(HexStr); l := l div 2; SetLength(Result, l); for i := 1 to l do if HexToBin(PChar(Copy(HexStr, (i - 1) * 2 + 1, 2)), PChar(@Result[i]), 1) = 0 then raise Exception.Create('Invalid hex value'); end;
procedure SendMagicPacket(MACAddress: string); var s, packet: string; i: integer; begin if Length(MACAddress) <> 12 then raise Exception.CreateFmt('Invalid MAC Address: %s', [MACAddress]); packet := HexStringToBinString('FFFFFFFFFFFF'); s := HexStringToBinString(MACAddress); for i := 1 to 16 do packet := packet + s; with TIdUDPClient.Create(nil) do try Active := true; BroadcastEnabled := true; Broadcast(packet, 9); finally Free; end; end;
begin if ParamCount <> 1 then WriteLn('usage: WakeOnLan MACAddress' + #10 + #13 + 'exmple: WakeOnLan 000102030405') else SendMagicPacket(ParamStr(1)); end. |
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
An Example of this unit is availabe as Demo Download.
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
AWARD BIOS v2.50
AWARD_SW
j262
TTPTHA
01322222
KDD
ZBAAACA
aPAf
lkwpeter
t0ch88
t0ch20x
h6BB
j09F
TzqF
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
Windows 9X
Code: |
{©Drkb v.3} with Memo1.Lines do begin Add('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061)))); Add('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091)))); Add('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5)))); Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71)))); end; |
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS