USB-Stick Erkennung mit C++ und Delphi-IDE PDF Drucken E-Mail

Mit folgender Routine können Sie mit C++ die Erkennung eines USB-Sticks programmieren. Es handelt sich dabei um eine Umsetzung in der Delphi-IDE.

In die *.h:

public:

char FirstDriveFromMask (ULONG unitmask);  //prototype

protected:

void __fastcall WndProc(Messages::TMessage &Message);

In die *.cpp:

#include

// ---------------------------------------------------------------------------

void __fastcall TDatenForm::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: {

PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;

USB = FirstDriveFromMask(lpdbv->dbcv_unitmask);  // Laufwerksbuchstabe

break ;

}

case DBT_DEVICEREMOVECOMPLETE : {

USB = "" ;

break ;

}

}

Break ;

}

default: ;

}

TForm::WndProc(Message);

}

/* ------------------------------------------------------------------

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 TDatenForm::FirstDriveFromMask(ULONG unitmask) {

char i;

for (i = 0; i < 26; ++i) {

if (unitmask & 0x1)

break;

unitmask = unitmask >> 1;

}
return(i + 'A');
}

Probleme oder Fragen? Wir helfen gerne über unsere 24h Hotline: 0171 22 77 77 3.

Zuletzt aktualisiert am Samstag, 20. Februar 2010 um 19:37 Uhr
 
MisterwongOneviewAlltagzLinkarenaYiggDeliciousTechnoratiFurlYahoo_myweb
Google_bmarksBlinklistMagnoliaWindows_liveDiggNetscapeStumbleuponNewsvineReddit
TailrankSpurlWas ist Social Bookmarking