Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben (https://www.delphipraxis.net/85831-neue-hardware-erkennen-und-laufwerkbuchstabe-ausgeben.html)

hedie 5. Feb 2007 15:56


Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben
 
Hallo

Ich habe mal eine etwas Exotische frage ;-)

Ich möchte, das mein Programm erkennt wenn ein USB Stick oder in meine Fall ein MP3 Player (welche ja eigentlich identisch sind)

angeschlossen wird.


Wichtig ist dabei das es erkennt ob es sich um einen MP3 Player... USB Stick handelt weil mit einer WebCam kann ich nix anfangen :D




Die Serien Nummer ist dabei nicht so das Problem für das habe ich schonmal Code gefunden

aber was noch wichtig wäre ist, ich muss auch den Laufwerk Buchstaben herausfinden.




Vielen dank für eure Hilfe

hedie 5. Feb 2007 16:15

Re: Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben
 
Die Volumenseriennumer dürfte wohl doch ein kleines Problem Darstellen

Der Code den ich verwenden wollte gibt nur "müll" zurück (ein viereckchen)

Delphi-Quellcode:
function VolumeID(DriveChar: Char): string;
var
  OldErrorMode     : Integer;
  NotUsed, VolFlags : DWORD;
  Buf              : array [0..MAX_PATH] of Char;
begin
  OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    GetVolumeInformation(PChar(DriveChar + ':\'), Buf,
                         sizeof(Buf), nil, NotUsed, VolFlags,
                         nil, 0);
    Result := Format('[%s]',[Buf]);
  finally
    SetErrorMode(OldErrorMode);
  end;
end;

Robert Marquardt 5. Feb 2007 16:32

Re: Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben
 
http://jedi-apilib.sf.net und die Zips scapi und win32api runterladen. In scapi ist das Beispiel SafeRemoval das den Laufwerksbuchstaben rausbekommt.
Es gibt allerdings keine Moeglichkeit ein Mass Storage einer Kamera vom Mass Storage eines USB Stick mit MP3-Funktion zu unterscheiden. Beides sind einfach Laufwerke.

hedie 5. Feb 2007 17:02

Re: Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben
 
Ok Laufwerk ist Perfekt aber was ich brauche ist auch noch die Erkennung wenn ein neues Laufwerk in diesem fall Stick angeschlossen wird

Robert Marquardt 5. Feb 2007 17:06

Re: Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben
 
WM_DEVICECHANGE ist dazu der Ansatz und JwaDBT.pas enthaelt alles was man dazu braucht.
Das SafeRemoval-Beispiel enthaelt das doch auch.

hedie 5. Feb 2007 17:26

Re: Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben
 
bei mir braucht er ne JWADbt.dcu datei woher krieg ich die?

Robert Marquardt 5. Feb 2007 17:33

Re: Neue Hardware Erkennen und Laufwerkbuchstabe ausgeben
 
JwaDBT.pas ist im win32 Zip enthalten. Da musst du die entsprechende Directory in den Librarypath von Delphi eintragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz