AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows Message abfangen - AutoRun verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Message abfangen - AutoRun verhindern

Ein Thema von Mr_G · begonnen am 6. Mai 2005 · letzter Beitrag vom 9. Mai 2005
Antwort Antwort
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#1

Windows Message abfangen - AutoRun verhindern

  Alt 6. Mai 2005, 11:31
Im Moment schreibe ich an einem Proggi bei dessen Ausführung auf keinen Fall ein Autorun laufen darf. Ich habe mich zu diesem Zweck etwas umgesehen und habe da etwas in der MSDN gefunden. Um den Autorun zu unterbinden gibt es 2 möglichkeiten: Einen Registry-Eintrag schreiben oder eine Windows Message abfangen.
Ich würde gerne letzteres nutzen, da ich leider nicht sicher sein kann das mein Proggi immer Adminrechte hat.
Meine frage nun: Wie setze ich den Beispielcode aus der MSDN in Delphi um?

Danke im Vorraus
Mr_G
Jan
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#2

Re: Windows Message abfangen - AutoRun verhindern

  Alt 6. Mai 2005, 12:33
Schau mal hier
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Windows Message abfangen - AutoRun verhindern

  Alt 6. Mai 2005, 12:57
Vielen Dank! Genau das was ich suchte!
Jan
  Mit Zitat antworten Zitat
Benutzerbild von gothic_mike
gothic_mike

Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
 
Delphi 7 Personal
 
#4

Re: Windows Message abfangen - AutoRun verhindern

  Alt 7. Mai 2005, 12:58
Moin,

Zitat von chrisw:
hab ich mir auch gerade mal angesehen, funktioniert irgendwie nicht, wenn das fenster nicht das aktive fenster ist, weis vielleicht jemand, wie man das machen könnte, das es auch bei inaktivem fenster funktioniert?
bye4now, gothic_mike
. ..: carpe noctem :: coding in the darkness :.. .
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Windows Message abfangen - AutoRun verhindern

  Alt 7. Mai 2005, 13:40
Moin Mike,

ich habe mir das mal angeschaut, und komme zu dem Schluss, dass das genannte Problem eigentlich nicht auftreten kann.
Wie hast Du es denn implementiert?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von gothic_mike
gothic_mike

Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
 
Delphi 7 Personal
 
#6

Re: Windows Message abfangen - AutoRun verhindern

  Alt 8. Mai 2005, 10:54
Moin,

Zitat von Christian Seehase:
Moin Mike,

ich habe mir das mal angeschaut, und komme zu dem Schluss, dass das genannte Problem eigentlich nicht auftreten kann.
Wie hast Du es denn implementiert?

also, ich hab das eigentlich so gemacht, wie es beschrieben war:

Delphi-Quellcode:
...
  public
    { Public-Deklarationen }
    MsgID_QueryCancelAutoPlay: Word;
    procedure WndProc(var Msg: TMessage); override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WndProc(var Msg: TMessage);
begin
  if (MsgID_QueryCancelAutoPlay = Msg.Msg) then
  begin
    if RadioButton_Off.Checked then
      Msg.Result := 0 // stop AutoPlay
    else
      Msg.Result := 1; // continue with AutoPlay
  end else
    inherited WndProc(Msg);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MsgID_QueryCancelAutoPlay := RegisterWindowMessage('QueryCancelAutoPlay');
end;
...
wenn meine Form aktiv ist, funktioniert es auch wunderbar, ist meine Form aber inaktiv oder gar minimiert funktionierts nicht...
bye4now, gothic_mike
. ..: carpe noctem :: coding in the darkness :.. .
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Windows Message abfangen - AutoRun verhindern

  Alt 8. Mai 2005, 18:21
Zitat von gothic_mike:
wenn meine Form aktiv ist, funktioniert es auch wunderbar, ist meine Form aber inaktiv oder gar minimiert funktionierts nicht...
Das liegt daran das Windows diese Message nur dem Fenster sendet das gerade im Vordergrund läuft.

Zitat von MSDN:
... Your application must be running in the foreground window...
Ich habe 3 Möglichkeiten gefunden das Autoplay trozdem zu verhindern:
1. Explorer abschießen (Taskbar und Destop verschwinden auch...)
2. mit einem Timer abfraen ob das Form im Vordergrund ist (hab da mal irgendwas im Forum gesehen...)
3. wie in der MSDN einen Registry-Eintrag schreiben und den Explorer neustarten
Jan
  Mit Zitat antworten Zitat
Benutzerbild von gothic_mike
gothic_mike

Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
 
Delphi 7 Personal
 
#8

Re: Windows Message abfangen - AutoRun verhindern

  Alt 9. Mai 2005, 13:43
Zitat von Mr_G:
Das liegt daran das Windows diese Message nur dem Fenster sendet das gerade im Vordergrund läuft.

Zitat von MSDN:
... Your application must be running in the foreground window...
das ist bissel bumm, weil, wollte mir ein kleines Programm basteln, was im Tray sitzt, wo ich das an/ab-stellen kann...

Zitat von Mr_G:
Ich habe 3 Möglichkeiten gefunden das Autoplay trozdem zu verhindern:
1. Explorer abschießen (Taskbar und Destop verschwinden auch...)
2. mit einem Timer abfraen ob das Form im Vordergrund ist (hab da mal irgendwas im Forum gesehen...)
3. wie in der MSDN einen Registry-Eintrag schreiben und den Explorer neustarten
ist nicht so praktisch, wenn man keine schreibrechte auf die Reg-Keys hat und den explorer abschiessen ist auch nicht so die gute methode...

es muss doch eine methode geben, wie man trotzdem an die message rankommt und das autoplay unterbinden kann...
bye4now, gothic_mike
. ..: carpe noctem :: coding in the darkness :.. .
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#9

Re: Windows Message abfangen - AutoRun verhindern

  Alt 9. Mai 2005, 13:52
Zitat von gothic_mike:
es muss doch eine methode geben, wie man trotzdem an die message rankommt und das autoplay unterbinden kann...
Es muss gar nichts
Eine Möglichkeit wäre ein systemweiter Hook - aber ist eigentlich zuviel Arbeit. BTW, Registry-Rechte dürften kein Problem sein, da viele Schlüssel/Werte auch unter HKCU stehen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz