Probier es doch einfach aus. Sind ja nur ein paar Zeilen Code. Es funktioniert jedenfalls, wenn ein Laufwerk vorhanden ist (in diesem Fall ein Cardreader) und in den Reader eine Karte eingesteckt wird. Unabhängig davon, ob vor dem Einlegen der Karte das Laufwerk vorhanden war oder nicht.
Ich benutze die Funktion um zu verhindern, dass während mein Installationsprogramm läuft weitere Autorun-Funktionen (z.B. der Installationsdatenträger wird entfernt und nochmals eingelegt) ausgeführt werden
Delphi-Quellcode:
procedure TFoo.FormCreate(Sender: TObject);
begin
MsgID_AutoPlayMessage := RegisterWindowMessage('QueryCancelAutoPlay' );
end;
procedure TFoo.WndProc(var Msg: TMessage);
begin
if(MsgID_AutoPlayMessage = Msg.Msg)
then Msg.Result := 1 // kein Autoplay
else inherited WndProc( Msg );
end;