Código para Pegar Serial Fisico em Pascal

Delphi

06/07/2004

Consegui esse código em pascal. Só que nao compila no delphi porque é de baixo nível.

program GetIDEHDDInfo;

uses
  CRT, DOS;

type
  ArraySTR = array[0..255] of Byte;

const
  WhichDrv: array[1..2] of Word = ($A0, $B0);

var
  NumDrv: Word absolute $0040: $0075; { BIOS info on how many HDD you have }
  Regs: Registers;
  Data: ArraySTR;
  DataOff: Byte;
  Loop: Integer;

function GetString(InData: ArraySTR; OffStart, OffEnd: Byte): string;
var
  TempSTR: string;
  I: Byte;
begin
  TempSTR := ´´;
  for I := OffStart to OffEnd do
    TempSTR := TempSTR + Char(InData[I]);
  GetString := TempSTR;
end;

begin
  ClrScr;
  WriteLn(´You have ´, NumDrv, ´ Hard Disk(s).´);
  for Loop := 1 to NumDrv do
  begin
    WriteLn(´  Info on Hard Disk ´, NumDrv, ´ is:´);
    while Port[$01F7] <> $50 do ; { Wait For controller not busy }
    Port[$01F6] := WhichDrv[Loop]; { Get first/second drive }
    Port[$01F7] := $EC; { Get drive info data }
    while Port[$01F7] <> $58 do ; { Wait for data ready }
    for DataOff := 0 to 255 do { Read "sector" }
      Data[DataOff] := Port[$01F0];
    WriteLn(´    Model Number: ´, GetString(Data, 27, 46));
    WriteLn(´    Serial Number: ´, GetString(Data, 10, 19));
  end;
end.


Alguem ousa colocar isso para funcionar no delphi?

Caso consiga mande um email ou MP.


Crash

Crash

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

06/07/2004

Olá

Tem uma opção no Delphi pra ele rodar como o Pascal...ele exibe uma telinha de DOS e tudo...
Pra fazer isso vc define na hora que vai criar a aplicação

se eh que eh isso que vc quer né

Espero que ajude
Até+


GOSTEI 0
Crash

Crash

06/07/2004

blza garoto....


...mas...


e o meu problema?


GOSTEI 0
Crash

Crash

06/07/2004

repare que é um código de baixo nível.... o delphi (mesmo as aplicacoes de console) nao compila esse tipo de codigo.

t+


GOSTEI 0
Crash

Crash

06/07/2004

repare que é um código de baixo nível.... o delphi (mesmo as aplicacoes de console) nao compila esse tipo de codigo.

a minha intenção é criar uma dll que extrai o serial fisico do hd.

eu tenho uma rotina que faz isso, porem ela usa um arquivo .vxd, que fica restrita ao Ruindows.

E eu preciso do código tambem para linux.

t+


GOSTEI 0
Dopi

Dopi

06/07/2004

Se voce for usar dll tb não funcionará no Linux...

Assembler no Kylix também é diferente do Delphi...

Existe um cj de componentes da TurboPower (TPOnGuard) que faz proteção de software e é multiplataforma (CLX), umas dos possibilidas dos componente é usar o Serial do HD, o projeto é OpenSorce e está no SorceForge

http://sourceforge.net/projects/tponguard/

vale a pena dar uma olhada como eles fizeram....


GOSTEI 0
Crash

Crash

06/07/2004

eu sei que dll nao funciona no linux... mas o código pra criar um .so funciona.

Eu preciso para fazer uma UDF no interbase.


GOSTEI 0
Crash

Crash

06/07/2004

Não sei se vc leu o título do topico, mas estamos falando de serial fisico e nao lógico (ou das particoes).


Os componentes que vc citou usam serial lógico. Entao se alguem clonar o hd o programa continua funcionando.

mas agradeco a dica e t+


GOSTEI 0
POSTAR