Das Teil funzt auch, wenn autorun abgeschaltet ist...hab autorun aus Sicherheitsgründen in der gesamten Domäne abgeschaltet
Also bisher bin ich zufrieden damit...
___________________________________
Delphi-Quellcode:
function TForm1.ApplicationWndProcHook(var Message: TMessage): Boolean;
var zw_LW_liste : Array[0..25] of laufwerksliste;
i,x : integer;
Ergebnis : integer;
LW_gefunden : boolean;
begin
if Message.wParam = DBT_DEVICEARRIVAL then
Begin
LW_gefunden :=false;
// Neues Laufwerk ermitteln
neues_lw := '0';
Laufwerksliste_bauen(zw_lw_liste);
// folgende Codezeile rausschmeißen, wenn final
For i := 0 to 25 do ListBox2.Items.Add(zw_lw_Liste[i].lw + Drivetype(i));
For i := 0 to 25 do
Begin
If lw_liste[i].lw <> zw_lw_liste[i].lw then
Begin
Neues_lw:= zw_lw_liste[i].lw;
messagedlg('Neues Laufwerk ' + Neues_lw + ':\ erkannt!',mtinformation,[mbok],0);
Laufwerksliste_bauen(lw_liste);
LW_Gefunden := true;
End;
//Wenn beide Listen gleich sind, ist eines der CD-Rom`s betroffen
// und jede Menge weiteres blabla...
End;
End;
if Message.wParam = DBT_DEVICEREMOVECOMPLETE then
Begin
//Laufwerksliste nach Änderung neu aufbauen
Laufwerksliste_bauen(LW_Liste);
neues_lw := '0';
Messagedlg('Ding wech...',mtConfirmation, [mbok],0);
End;
Result := False;
end; // of function
procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
groesse : integer;
buffer : PChar;
begin
Application.HookMainWindow(ApplicationWndProcHook);
Laufwerksliste_bauen(LW_Liste);
// Windowsdirectory ermitteln
WindowsDir := SysUtils.GetEnvironmentVariable('windir');
// do something more...
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Application.UnhookMainWindow(ApplicationWndProcHook);
end;
end.
[edit=MrSpock]Delphi Code Tags gesetzt. Mfg, MrSpock[/edit]