Hey!!! how 'bout some feedback??? did it work for you??? HEY!!! Is any body home???
Main Topics
Browse All TopicsHOW TO READ REAL SERIAL NUMBER OF HARD DRIVE... IN DOS OR WINDOWS ?
NOT VIRTUAL SERILA NUMBER... REAL SERILA NUMBER OF HARD DRIVE
...
WHAT IS VIRTUAL SERILA NUMBER = ANY SERIAL NUMBER THAT IS ASSING TO HARD DRIVE WHEN USER FORMAT THEM .... EVERYTIME WHEN YOU USE FORMAT SERIAL NUMBER IS DIFFERENT....
HOW TO READ REAL SERIAL NUMBER NOT VIRTUAL SERIAL NUMBER?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
>>EVERYTIME WHEN YOU USE FORMAT SERIAL NUMBER IS DIFFERENT....
FORMAT program uses current time to calculate disk number; that's why each time you use FORMAT, srial number differs. BUT both you and your friend, if format a disk simultaneously could (in theory) get the same serial number.
Even you can try this: create a .BAT file and put these commands on it:
TIME <any time you want>
FORMAT <drive>
Execute the BAT file several times, and time will be the same each time you run it.
But I don't know why I think I'm tallking to a wall... :~(
i made any program in turbo pascal 6.0 that read all information from bios including hard disk serial number (real not from boot sector ) and hard disc... but i need to make the same application that will do the same thing in windows because this pascal program can only work in msdos ... and i am writeing any windows application
i made any program in turbo pascal 6.0 that read all information from bios including hard disk serial number (real not from boot sector ) and hard disc type... but i need to make the same application that will do the same thing in windows because this pascal program can only work in msdos ... and i am writing any windows application
>>that read all information from bios including hard disk serial number
Disk serial number does NOT come from BIOS.
>>this pascal program can only work in msdos
If it runs in DOS, it can run perfectly under a DOS window from Windoze (in fact, I have Pascal and Basic (both compilers from Borland) programs which perform the same job. And work.
>>i am still looking for code that do the same thing under windows system (via API)
If you're looking for a protection system, I'm afraid you're going in the wrong direction; disk "serial" number is not such a thing. In fact, that stupid number can be written as easily as it can be read. ¿Do you know what are one of mi disks' number?: BEBE-CACA (you must know Spanish :)
Thus, if your protection scheme is based on a disk number, anyone can duplicate thge same number on another disk and ¡¡voilà!! your protection system was defeated.
Sorry...
Business Accounts
Answer for Membership
by: whatboyPosted on 2000-05-17 at 01:27:13ID: 2816314
Program GetIDEHDDInfo;
ta[I]);
]; { Get first/second drive } ;
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(InDa
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
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.