Einzelnen Beitrag anzeigen

Hennes_RldPf

Registriert seit: 23. Mär 2009
Ort: Grafschaft
4 Beiträge
 
Delphi 7 Professional
 
#6

Re: Windows-Ereignis "Diskette eingelegt"

  Alt 25. Mär 2009, 11:36
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]
  Mit Zitat antworten Zitat