AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

USB Stick erkennen

Ein Thema von Jelly · begonnen am 28. Feb 2004 · letzter Beitrag vom 10. Apr 2012
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

USB Stick erkennen

  Alt 28. Feb 2004, 16:25
Hallo zusammen,

wie kann ich erkennen wenn ein USB Stick an einen USB Port angeschlossen rsp. entfernt wird. Sinn der Sache ist, daß ich daraufhin ein Laufwerk sharen will. Diese Freigaben gehen nämlich bei jedem Entfernen verloren und sind beim nächsten Anschließen nicht mehr verfügbar.

Ach ja: OS ist w2k

Gruß,
Tom
  Mit Zitat antworten Zitat
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: USB Stick erkennen

  Alt 1. Mär 2004, 21:12
hier ein sourcecode für laufwerkserkennung beim entfernen/anschliessen

Delphi-Quellcode:
procedure TFenster.WMDeviceChange(var Msg: TMessage);
type PDevBroadcastHdr = ^TDevBroadcastHdr;
 TDevBroadcastHdr = packed record
 dbcd_size, dbcd_devicetype, dbcd_reserved: DWORD; end;
type PDevBroadcastVolume = ^TDevBroadcastVolume;
 TDevBroadcastVolume = packed record
 dbcv_size, dbcv_devicetype, dbcv_reserved, dbcv_unitmask: DWORD;
 dbcv_flags: Word; end;
function GetDrive(pDBVol: PDevBroadcastVolume): string;
var i: Byte; Maske: DWORD;
begin
if (pDBVol^.dbcv_flags and $0001) = $0001 then
begin
 Maske := pDBVol^.dbcv_unitmask;
 for i := 0 to 25 do
 begin
  if (Maske and 1) = 1 then
  Result := Char(i + Ord('A')) + ': ';
  Maske := Maske shr 1;
 end;
end;
end;
var Drive: String;
begin
case Msg.wParam of
 $8000:
  if PDevBroadcastHdr(Msg.lParam)^.dbcd_devicetype = $0002 then
   Pan('Datenträger in Laufwerk '+GetDrive(PDevBroadcastVolume(Msg.lParam))+'eingelegt');
 $8004:
  if PDevBroadcastHdr(Msg.lParam)^.dbcd_devicetype = $0002 then
  begin
   Drive := GetDrive(PDevBroadcastVolume(Msg.lParam));
   Pan('Datenträger aus Laufwerk '+Drive+'entfernt');
   if not(Drive = '') and (Drive[1] = ExtractFilePath(ParamStr(0))[1]) then Close;
  end;
 end;
end;
MFG

[edit=Luckie]Delphi-Tags gesetzt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: USB Stick erkennen

  Alt 1. Mär 2004, 22:35
Hey danke, das klappt fast einwandfrei. Krieg nur noch nicht den Unterschied zwischen Netzlaufwerken und physischen Laufwerken hin, ist aber nicht so schlimm.

Gruß,
Tom
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 31. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#4

Re: USB Stick erkennen

  Alt 4. Mär 2004, 16:59
Zitat von Jelly:
Hey danke, das klappt fast einwandfrei. Krieg nur noch nicht den Unterschied zwischen Netzlaufwerken und physischen Laufwerken hin, ist aber nicht so schlimm.

Gruß,
Tom
Dazu sag ich nur GetDriveType
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#5

Re: USB Stick erkennen

  Alt 8. Mai 2004, 15:36
Mit welchem Ereignis muss man die procedure verknüpfen?
Christian Reber
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: USB Stick erkennen

  Alt 8. Mai 2004, 15:43
Also der Name WmDeviceChange sollte ein Hinweis sein: WM_DEVICECHANGE.
  Mit Zitat antworten Zitat
J Kadison

Registriert seit: 8. Sep 2007
Ort: Ebertsheim
96 Beiträge
 
Delphi 7 Personal
 
#7

Re: USB Stick erkennen

  Alt 12. Nov 2008, 16:05
Hey!

Das ganze hört sich echt super an, hab da blos ein problem, und zwar bin absoluter noob
naja okay so schlimm auch net, aber ich hab bei dem QT noch ein zwei broblemchen ^^ und zwar:

1. Wie binde ich denn denn in mein Programm ein?
bzw. wie aktiviere ich den (ist das ü-haupt ein Hook) ?"

2. Was ist denn die Funktion/Procedur "Pan()"
bzw. in welcher API ist die denn enthalten?
die wird nämlich bei mir nicht gefunden
[Fehler] Unit1.pas(204): Undefinierter Bezeichner: 'Pan'
Wäre echt super wenn das noch jemand erklären könnte!

Schonmal vielen dank im voraus!
MFG
Joshi
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: USB Stick erkennen

  Alt 12. Nov 2008, 16:15
[ot]in Pan.Tau 8) [/ot]

Quatsch, ersetzt es durch ShowMessage und gut ist.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.620 Beiträge
 
Delphi 12 Athens
 
#9

Re: USB Stick erkennen

  Alt 12. Nov 2008, 16:27
Das scheint eine selbstgeschriebene Methode zu sein (zumindest kenn ich auch kein Pan). Das gibt aber nur eine Meldung aus, Du kannst es also auch durch z.B. ShowMessage ersetzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
J Kadison

Registriert seit: 8. Sep 2007
Ort: Ebertsheim
96 Beiträge
 
Delphi 7 Personal
 
#10

Re: USB Stick erkennen

  Alt 12. Nov 2008, 16:54
Jaja, wer so ne dumme frage stellt, den kann ich auch nur als DAU bezeichnen

Joa ne, erst lesen, dann fragen stellen

Dankeschön für die 1. Antwort, aber die andere Frage bleibt ^^

Wie registrier/deregistrier ich denn nun diese Prozedur?
Wäre echt supi, wenn mir das noch jemand ausführlich erklären könnte
MFG
Joshi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz