Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   KeyPressed Problem. (https://www.delphipraxis.net/152620-keypressed-problem.html)

therowe 29. Jun 2010 17:56

KeyPressed Problem.
 
Heyhey liebe DPler.
Ich bin gerade dabei ein ganz kleines Programm für einen Freund zu schreiben doch hier bin ich auf ein Problem gestoßen. Ich benutze folgenden Code:
Delphi-Quellcode:
function KeyPressed(Key: Integer): Boolean;
begin
  KeyPressed := (GetAsyncKeyState(Key) and $8000 <> 0);
end;
....
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if KeyPressed(ord('a')) then
edit1.Text := edit1.Text + 'a';
....
So wenn ich aber jetzt das Programm starte und z.B. einen Texteditor öffne und in diesen z.B. ein a drücke escheint kein a in dem edit.


Ach ja ich habe den Timer auf Interval 1 und er ist Enabled = true ;)

s.h.a.r.k 29. Jun 2010 17:59

AW: KeyPressed Problem.
 
Was zum Teufel hast du vor? Bitte keinen KeyLogger?!

Das Interval vom Timer kann maximal 15 oder 16 sein. Kleiner ist die Auflösung von dem Ding nicht.

DeddyH 29. Jun 2010 18:02

AW: KeyPressed Problem.
 
Wieso überhaupt ein Timer und nicht die OnKeyXXX-Ereignisse?

therowe 29. Jun 2010 18:02

AW: KeyPressed Problem.
 
Nene nur doofes Beispiel zum ausprobieren. Das Teil soll später mal bei einem Tastendruck ein bestimmtes Fenster durch eine taste öffnen. z.B. durch eben a dann. ich hatte so eine Art schon mal jedoch hier mit VK_SPACE und da ging es natürlich ... mich verwunderte ja das es nicht ging.

s.h.a.r.k 29. Jun 2010 18:03

AW: KeyPressed Problem.
 
Er will wohl feststellen, ob eine Taste global gedrückt ist. Und das eben via Timer abfragen.

DeddyH 29. Jun 2010 18:05

AW: KeyPressed Problem.
 
Das klingt mir aber eher nach MSDN-Library durchsuchenRegisterHotKey.

therowe 29. Jun 2010 18:06

AW: KeyPressed Problem.
 
Es soll ja im nicht aktiven Zustand seinen Zweck erfüllen. Keylogger nenenene :o man kann ja später den Timer ab und anschalten.

DeddyH 29. Jun 2010 18:08

AW: KeyPressed Problem.
 
Nochmal: Dein Programm soll irgendetwas machen, wenn systemweit eine bestimmte Tastenkombination gedrückt wird? Dann siehe meine Antwort von oben.

s.h.a.r.k 29. Jun 2010 18:20

AW: KeyPressed Problem.
 
@DeddyH: Verstehst du unter "Kombination" auch nur einen einzelnen? Habe mir den Link von weiter oben nicht näher angeschaut.

DeddyH 29. Jun 2010 18:28

AW: KeyPressed Problem.
 
Das kann (evtl.) auch ein einzelner sein, aber das würde ich mir lieber ersparen (ich drücke in Word oder sonstwo auf 'a' und ein Fenster einer anderen Anwendung geht auf, na Dankeschön).

vergessen 29. Jun 2010 18:39

AW: KeyPressed Problem.
 
Keypressed ist ein (ur)alter Hut:

[DP]
Function KeyPressed(Key:Integer):Boolean;
begin
KeyPressed:=(GetAsyncKeyState(Key) and $8000 <> 0);
end;
[/DP]

und funktioniert prima mit sowas:

[DP]
if keypressed(vk_control) then ...
[/DP]

Passwort usw. funktioneren leider nicht mehr seit der Umstellung der DP auf das neue Design (ist mir viel zu hell!).

Die Delphi-Tags habe ich hoffentlich (mit Opera 10.54) erraten :oops: ?

Edith meint: Wohl eher nicht!

s.h.a.r.k 29. Jun 2010 20:21

AW: KeyPressed Problem.
 
ich nehm das gesagte mal bisher zurück...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz