möchte wissen, wann ein Stick entfernt wird.
Dazu habe ich schon gefunden:
protected override void WndProc(ref Message m)
{
if (m.Msg == Native.WM_DEVICECHANGE)
{
if(aktiv)
switch (m.WParam.ToInt32())
{
//
// New device has just arrived
//
case Native.DBT_DEVICEARRIVAL:
label1.Text = "USB entdeckt";
progressBar1.Value = 0;
Application.DoEvents();
LoadItems();
break;
//
// Device is about to be removed
// Any application can cancel the removal
//
case Native.DBT_DEVICEQUERYREMOVE:
break;
//
// Device has been removed
//
case Native.DBT_DEVICEREMOVECOMPLETE:
label1.Text = "Stick kann entnommen werden.";
Application.DoEvents();
LoadItems();
break;
case 7: // kommt öfter hat scheinbar keine genaue Bedeutung
default:
break;
}
}
base.WndProc(ref m);
}
Damit habe ich dann ein Programm geschrieben, dass sobald ein Stick eingesteckt wird, einige Dateien kopiert und dann die Hardware abmeldet.
Dann kommt DBT_DEVICEREMOVECOMPLETE
Nun möchte ich aber noch wissen, wann der Stick tatsächlich ausgezogen wird.
Außerdem finde ich nicht, wo man das Fenster für die Automatische Wiedergabe ausschaltet, das ja jedesmal beim einstecken eines Sticks erscheint.
Das soll aber nur ausgeschaltet sein, solange mein Programm läuft.
Gruß Robert