Discussion:
Anwendung/Fenster ohne Fokus
(zu alt für eine Antwort)
Michael Schuricht
2014-02-18 17:28:22 UTC
Permalink
Hallo NG,

ich habe eine Anwendung mit nur einem Fenster.
Das Fenster hat keinen Rahmen, die Eigenschaft FormStyle ist fsStayonTop.
Im erstern Activate der Form wird
SetWindowPos(hWindow,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
gesetzt.

Auf dem Formular liegen 3 Labels. Diese dienen von Systemstatusanzeigen.

Per Rechtsklick auf das Formular oder eines der Label wird ein Screenshot
gemacht und als Datei gespeichert.

Ich möchte, dass diese Anwendung nie den Fokus bekommt.

Geht das überhaupt, und wie ist das zu bewerkstelligen.

Zielsystem Window7, Delphie XE4

Viele Grüße
- Michael
Peter
2014-02-18 18:19:09 UTC
Permalink
Post by Michael Schuricht
Hallo NG,
ich habe eine Anwendung mit nur einem Fenster.
Das Fenster hat keinen Rahmen, die Eigenschaft FormStyle ist
fsStayonTop. Im erstern Activate der Form wird
SetWindowPos(hWindow,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
gesetzt.
Auf dem Formular liegen 3 Labels. Diese dienen von
Systemstatusanzeigen.
Per Rechtsklick auf das Formular oder eines der Label wird ein
Screenshot gemacht und als Datei gespeichert.
Ich möchte, dass diese Anwendung nie den Fokus bekommt.
Geht das überhaupt, und wie ist das zu bewerkstelligen.
Du könntest mal folgendes probieren.

procedure TFormX.CreateParams(var params: TCreateParams); // override;
begin
inherited;
params.exstyle := params.exstyle OR WS_EX_NOACTIVATE;
end;
--
Peter Below
Michael Schuricht
2014-04-24 08:31:11 UTC
Permalink
Hallo Peter,
Danke für Deine Antwort.

Es funktioniert.

- Michael
Post by Peter
Post by Michael Schuricht
Hallo NG,
ich habe eine Anwendung mit nur einem Fenster.
Das Fenster hat keinen Rahmen, die Eigenschaft FormStyle ist
fsStayonTop. Im erstern Activate der Form wird
SetWindowPos(hWindow,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
gesetzt.
Auf dem Formular liegen 3 Labels. Diese dienen von
Systemstatusanzeigen.
Per Rechtsklick auf das Formular oder eines der Label wird ein
Screenshot gemacht und als Datei gespeichert.
Ich möchte, dass diese Anwendung nie den Fokus bekommt.
Geht das überhaupt, und wie ist das zu bewerkstelligen.
Du könntest mal folgendes probieren.
procedure TFormX.CreateParams(var params: TCreateParams); // override;
begin
inherited;
params.exstyle := params.exstyle OR WS_EX_NOACTIVATE;
end;
Lesen Sie weiter auf narkive:
Loading...