Wie erkenne ich anstecken eines USB-Sticks?
-
Welche Zahl hinter Status? hinter "Status: " kommt der String status, welcher "Port belegt" enthält.
-
Aber lesen und Smaples abschreiben kannst Du?
http://msdn.microsoft.com/en-us/library/aa363215(VS.85).aspx
-
Deine Hilfe ist immer die Beste ^^
Also den Link habe ich mir schon durchgelesen, den hat kpeter ja schon geschrieben
Leider haut das ja nicht so hin mit dem FirstDriveFromMask ...
Ich bekomme dann diesen schicken Fehler :
[ILINK32 Fehler] Error: Nicht auflösbares externes 'TCheckInOutForm::FirstDriveFromMask(unsigned long)' referenziert von C:\USERS\MICHEL\DOCUMENTS\RAD STUDIO\PROJEKTE\DEBUG\CHECKINOUTFRM.OBJ
Hier mal mein Code :
// in der .h-Datei : #include <dbt.h> class TCheckInOutForm : public TForm { __published: // IDE-verwaltete Komponenten TLabel *Label1; TADOQuery *qry_neues_training; TDataSource *src_neues_training; private: // Benutzer-Deklarationen public: // Benutzer-Deklarationen __fastcall TCheckInOutForm(TComponent* Owner); char FirstDriveFromMask (ULONG unitmask); //prototype protected: void __fastcall WndProc(Messages::TMessage &Message); }; //--------------------------------------------------------------------------- extern PACKAGE TCheckInOutForm *CheckInOutForm; //--------------------------------------------------------------------------- #endif /*------------------------------------------------------------------ FirstDriveFromMask (unitmask) Description Finds the first valid drive letter from a mask of drive letters. The mask must be in the format bit 0 = A, bit 1 = B, bit 2 = C, etc. A valid drive letter is defined when the corresponding bit is set to 1. Returns the first drive letter that was found. --------------------------------------------------------------------*/ char FirstDriveFromMask (ULONG unitmask) { char i; for (i = 0; i < 26; ++i) { if (unitmask & 0x1) break; unitmask = unitmask >> 1; } return (i + 'A'); } // in der .cpp-Datei : void __fastcall TCheckInOutForm::WndProc(Messages::TMessage &Message) { // Erkennen des USB-Sticks switch (Message.Msg) { case WM_DEVICECHANGE: { unsigned int Event = Message.WParam ; DWORD dwData = Message.LParam ; PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)Message.LParam; switch (Event) { case DBT_DEVICEARRIVAL : { ShowMessage("Ihr USB-Stick wurde erkannt!") ; CheckInOutForm->Label1->Visible = false ; PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb; FirstDriveFromMask(lpdbv->dbcv_unitmask); } } break ; } default: ; } TForm::WndProc(Message) ; }
-
MichelM schrieb:
Ich bekomme dann diesen schicken Fehler :
Schicker Fehler für schicken Code
den Code für die Funktion FirstDriveFromMask nimmmal in die *.cpp rein und setze dann
TCheckInOutForm::FirstDriveFromMask