In order to get the Hard Disk serial number and other manufacturer information (NOT volume serial, only the unique one, the one that will not change after a format, physical one) using HDDPhysic library and FoxPro you need to do the following 3 easy steps:
(1) Load HDDPhysic library and declare the imported library functions:
Object: Form1 ; Procedure: Load ;
DECLARE INTEGER GetPhysicInfo IN "HDDPhysic.dll" AS HDD_Info INTEGER diskIndex, INTEGER InfoType, STRING pHddInfo
(2) Call the Init function to initialize the user computer hard drives and get the total available devices:
Object: Form1 ; Procedure: Show ;
sBuffer = Space(500) && Make some room in the buffer
IF tDiscs > 0 THEN
FOR i=0 TO tDiscs-1 STEP 1
This.Combo1.AddItem (ALLTRIM(STR(i)))
NEXT
This.Text7.Value=ALLTRIM(STR(HDD_Info(0, 6, sBuffer))) && Get hdd index where Windows Is Installed
ENDIF
(3) Now that you have the total hard drives count you can query for the manufacturer information passing the disk index to the GetPhysicInfo function:
Objec: Command1 ; Procedure: Show ;
iDiskNo = Form1.Combo1.ListIndex-1
iReturn = HDD_Info(iDiskNo, 0, @sBuffer) && 0 = serial number
Form1.Text2.Value=sBuffer
iReturn = HDD_Info(iDiskNo, 1, @sBuffer) && 1 = hdd model
Form1.Text3.Value=sBuffer
iReturn = HDD_Info(iDiskNo, 2, @sBuffer) && 2 = hdd revision
Form1.Text4.Value=sBuffer
iReturn = HDD_Info(iDiskNo, 3, @sBuffer) && 3 = hdd type
Form1.Text1.Value=sBuffer
iReturn = HDD_Info(iDiskNo, 5, @sBuffer) && 5 = hdd buffer size
Form1.Text5.Value=sBuffer
iReturn = HDD_Info(iDiskNo, 4, @sBuffer) && 4 = hdd size
Form1.Text6.Value=sBuffer
A complete Visual FoxPro 9.0 project is available for download in the resource area of the project here
Well Done
Foxpro is one of the most popular legacy languages in the world today.
please send me the registration code for that library