Tastendruck als nicht aktives Programm erkennen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Tastendruck als nicht aktives Programm erkennen

Beitrag von Have a nice Day »

Hallo Community,
Ich möchte ein Programm schreiben, dass auf ein Tastendruck reagiert, obwohl es nicht das aktuell aktive Programm ist.
Ich möchte also z.B. ein Programm schreiben das automatisch eine procedure ausführ wenn ich zum beispiel im Browser bin und auf F1 Drück.
Ist das möglich?

Und ich hab noch 2 kleine Fragen.
1. Kann ich Komponenten in den Vordergrund oder Hintergrund schieben?
2. Kann ich festlegen das mein Programm immer im Vordergrund ist, egal ob ich ein anderes Programm starte (auch im Vollbild-Modus)?

Have a nice day

RugiaArt
Beiträge: 41
Registriert: Do 11. Okt 2012, 18:50
OS, Lazarus, FPC: Win7 (L 1.0.0.2 FPC 2.6.0)
CPU-Target: 32Bit
Wohnort: Rügen
Kontaktdaten:

Re: Tastendruck als nicht aktives Programm erkennen

Beitrag von RugiaArt »

Hi!
Have a nice Day hat geschrieben: 1. Kann ich Komponenten in den Vordergrund oder Hintergrund schieben?
-> Ja, im Designer-Modus kannst du die Komponenten hin und her schieben in dem du sie mit der rechten Maustaste anklickst und dann die Z-Reihenfolge änderst.
-> In der Laufzeit kannst du die Methode zB. Button2.BringToFront nutzen, ... vll gibts da aber auch andere Lösungen.
Have a nice Day hat geschrieben: 2. Kann ich festlegen das mein Programm immer im Vordergrund ist, egal ob ich ein anderes Programm starte (auch im Vollbild-Modus)?
-> Ja, im Objektinspektor gibt es eine Eigenschaft der Form Namens: FormStyle. Schau da rein dann sieht du es :) geht auch zur Laufzeit.


lg. RugiaArt

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Tastendruck als nicht aktives Programm erkennen

Beitrag von Have a nice Day »

RugiaArt hat geschrieben:Hi!
Have a nice Day hat geschrieben: 1. Kann ich Komponenten in den Vordergrund oder Hintergrund schieben?
-> Ja, im Designer-Modus kannst du die Komponenten hin und her schieben in dem du sie mit der rechten Maustaste anklickst und dann die Z-Reihenfolge änderst.
-> In der Laufzeit kannst du die Methode zB. Button2.BringToFront nutzen, ... vll gibts da aber auch andere Lösungen.
Have a nice Day hat geschrieben: 2. Kann ich festlegen das mein Programm immer im Vordergrund ist, egal ob ich ein anderes Programm starte (auch im Vollbild-Modus)?
-> Ja, im Objektinspektor gibt es eine Eigenschaft der Form Namens: FormStyle. Schau da rein dann sieht du es :) geht auch zur Laufzeit.


lg. RugiaArt
Vielen Dank für die Antwort...
Jetzt habe ich nur noch die Frage wie es ich mache, dass das Programm auf den Tastendruck reagiert während es nicht aktiv ist.

P.S. Ich hab nun versucht ein Label vor eine Progressbar zu schieben .. aber auch mit Z-Reihenfolge geht das nicht .. hast du da evtl. noch eine Idee? :)

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Tastendruck als nicht aktives Programm erkennen

Beitrag von theo »

Have a nice Day hat geschrieben: Jetzt habe ich nur noch die Frage wie es ich mache, dass das Programm auf den Tastendruck reagiert während es nicht aktiv ist.
Google mal unter global keyboard hook.

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Tastendruck als nicht aktives Programm erkennen

Beitrag von Have a nice Day »

Ich habe für FromStyle jetzt: fsSystemStayOnTop ist das richtig? weil bei Vollbild klappt das leider nicht mehr

2. Kann man den Hintergrund der Form auf durchsichtig stellen?

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Tastendruck als nicht aktives Programm erkennen

Beitrag von Komoluna »

Ja man kann die Form durchsichtig machen,
stelle TForm.AlphaBlend auf true
und TForm.AlphaBlendValue auf den gewünschten Wert( 255 ist undurchsichtig und 0 ist unsichtbar)

viel spaß
Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Tastendruck als nicht aktives Programm erkennen

Beitrag von Have a nice Day »

Komoluna hat geschrieben:Ja man kann die Form durchsichtig machen,
stelle TForm.AlphaBlend auf true
und TForm.AlphaBlendValue auf den gewünschten Wert( 255 ist undurchsichtig und 0 ist unsichtbar)

viel spaß
Komoluna
Kann man dabei noch einstellen, dass die Komponenten davon nicht beeinflusst werden?

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Tastendruck als nicht aktives Programm erkennen

Beitrag von Eclipticon »

Hi,

google mal nach RegisterHotkey, UnRegisterHotkey und nach dem Umbiegen der Window Procedure ...

Solltest Du da auf keinen gruenen Zweig kommen, kann ich gerne mal in meinem Code graben.

Antworten