Festplatten-ID mit GetVolumeInformation

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

Festplatten-ID mit GetVolumeInformation

Beitrag von Rolf »

Hallo

Hab in der API schon GetVolumeInformation() gefunden.
Frag mich nur wie ich der Aufruf sein soll um die FestplattenID zurück zu bekommen?

Code: Alles auswählen

        
LOCAL  cRoot    := "C:\"        //-- LPCTSTR lpRootPathName,
LOCAL  cName    := SPACE(200)   //-- LPTSTR  lpVolumeNameBuffer,
LOCAL  iSize    := 0            //-- DWORD   nVolumeNameSize,
LOCAL  cID      := SPACE(200)   //-- LPDWORD lpVolumeSerialNumber,    
LOCAL  cMax     := SPACE(200)   //-- LPDWORD lpMaximumComponentLength,
LOCAL  cFlag    := SPACE(200)   //-- LPDWORD lpFileSystemFlags,       
LOCAL  cBuffer  := SPACE(200)   //-- LPTSTR  lpFileSystemNameBuffer,
LOCAL  iFAT     := 0            //-- DWORD   nFileSystemNameSize

iReturn := DllCall("KERNEL32.DLL", DLL_STDCALL,"GetVolumeInformationA",;
                   "C:\", @cName, @iSize, @cID, @cMax, @cFlag, @cBuffer, @iFAT)
Grüße Rolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von brandelh »

Rolf hat geschrieben:Hallo

Hab in der API schon GetVolumeInformation() gefunden.
Frag mich nur wie ich der Aufruf sein soll um die FestplattenID zurück zu bekommen?

Code: Alles auswählen

 
LOCAL  iSize    := 0            //-- DWORD   nVolumeNameSize,
LOCAL  cID      := SPACE(200)   //-- LPDWORD lpVolumeSerialNumber,    
LOCAL  cMax     := SPACE(200)   //-- LPDWORD lpMaximumComponentLength,
LOCAL  cFlag    := SPACE(200)   //-- LPDWORD lpFileSystemFlags,       
diese 3 Parameter müssten nach der Beschreibung auch auf 0 gesetzt werden DWORD, nicht STR.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von AUGE_OHR »

hi,
Rolf hat geschrieben: Hab in der API schon GetVolumeInformation() gefunden.
Frag mich nur wie ich der Aufruf sein soll um die FestplattenID zurück zu bekommen?
sie dir doch mal :

Code: Alles auswählen

C:\ALASKA\XPPW32\SOURCE\samples\basics\ExtDll\DLLCALL.prg
an.

gruss by OHR
Jimmy
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

Beitrag von Rolf »

Vielen Dank
euch Beiden

Die Beispiele von Alaska sind immer wieder hilfreich und verbergen Überraschungen

Grüße Rolf
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von Manfred »

Ist das die ID, die Windows beim Formatieren vergibt? Wie könnte ich denn an die Seriennummer der Harddisk kommen? Die steht nicht immer in der Registry, wie ich gerade feststellen mußte.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von AUGE_OHR »

Manfred hat geschrieben:Ist das die ID, die Windows beim Formatieren vergibt?
JA
Manfred hat geschrieben:Wie könnte ich denn an die Seriennummer der Harddisk kommen?
Die steht nicht immer in der Registry, wie ich gerade feststellen mußte.
hm ... die SN einer HDD ...

im Prinzip müsste man es mit WMI finden ...
es ist nicht unter Win32_LogicalDisk, bei Win32_DiskDrive finde ich eine PNP Eintrag ...
PNPDeviceID : IDE\DISKxxx
und unter Win32_OperatingSystem finde ich nur die Windows OS() Seriennummer.
Win32_OperatingSystem.zip
(1.63 KiB) 324-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von Manfred »

Es ist doch so, dass Windows bei Veränderung mehrerer Komponenten wieder aktiviert werden muß. Darunter fällt m.W. auch die HD. Kann aber auch nicht wirklich sein, weil auf meinem NB die HD nicht in der Registry steht. Auf meinem PC allerdings ja.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von AUGE_OHR »

Manfred hat geschrieben:Es ist doch so, dass Windows bei Veränderung mehrerer Komponenten wieder aktiviert werden muß.
Ja ... aber wohl nicht HD
Manfred hat geschrieben:Darunter fällt m.W. auch die HD.
Kann aber auch nicht wirklich sein, weil auf meinem NB die HD nicht in der Registry steht. Auf meinem PC allerdings ja.
auch beim Wechsel (migrieren) von HDD nach SSD ist keine Aktivierung notwendig.

die Windows OS() Seriennummer ist doch nicht schlecht ... es sein denn deine Kunden haben DELL, HP oder sonstige (Volumen) Lizenzen ...

wie wäre es mit der ProcessorID ? die CPU wird ja nicht so oft gewechselt ;)
Win32_Processor.zip
(1.41 KiB) 346-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von Koverhage »

Manfred,

mit xbtools

VolSerial("C:")
Gruß
Klaus
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Festplatten-ID mit GetVolumeInformation

Beitrag von Manfred »

Hi Klaus,

das kannte ich schon. Ich wollte nur wissen, wie/ob man die wirkliche Hardware ID auslesen kann. Aber vielleicht komme ich ja mit der 2. Routine von Jimmy weiter.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten