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/)
-   -   Delphi Shift, Ctrl, Alt + Funktionstaste über PostMessage? (https://www.delphipraxis.net/56339-shift-ctrl-alt-funktionstaste-ueber-postmessage.html)

alzaimar 4. Nov 2005 09:23


Shift, Ctrl, Alt + Funktionstaste über PostMessage?
 
Hallo!

Ich muss an ein Fenster eine Kombination aus
Ctrl, Shift und ALT + eine Funktionstaste (VK_F1-VK_F12)
per Postmessage verschicken.

Also ungefähr so:

Delphi-Quellcode:
Procedure SendFunctionKey (aHandle : THandle; aFunctionKey : Word; aShiftState :TShiftStates);
Begin
  PostMessage (aHandle, WM_KEYDOWN, ???, ???);
End;
Kann mir jemand die ??? auflösen? Also, wie kann ich z.B. ALT+F12 per PostMessage verschicken?

Danke schonmal!

alzaimar 4. Nov 2005 09:41

Re: Shift, Ctrl, Alt + Funktionstaste über PostMessage?
 
Hat sich erledigt, ich umgehe das Problem. ALT geht sowieso nicht mit PostMessage, laut OH...

Robert Marquardt 4. Nov 2005 10:06

Re: Shift, Ctrl, Alt + Funktionstaste über PostMessage?
 
Mit einem PostMessage geht das nicht, aber mit mehreren.
Man muss sich nur klarmachen das dies Tastendruecke sind.

Der LParam ist ein bischen kompliziert. Den muss man in der Hilfe zu WM_KEYDOWN nachlesen. MapVirtualKey ist die Funktion die aus virtual Keycodes Scancode macht.

PostMessage(Wnd, WM_KEYDOWN, VK_MENU, ...); // Alt runter
PostMessage(Wnd, WM_KEYDOWN, VK_F1, ...); // F1 runter
PostMessage(Wnd, WM_KEYUP, VK_F1, ...); // F1 rauf
PostMessage(Wnd, WM_KEYUP, VK_MENU, ...); // Alt rauf

alzaimar 4. Nov 2005 10:13

Re: Shift, Ctrl, Alt + Funktionstaste über PostMessage?
 
Hei Robert, danke!
Kompetent, wie immer!
Get das dann auch mit CTRL und SHIFT? klar, einfach drücken, oder?

Robert Marquardt 4. Nov 2005 10:29

Re: Shift, Ctrl, Alt + Funktionstaste über PostMessage?
 
Na klar, VK_SHIFT und VK_CONTROL.

Also bei Tastaturen, Scancodes, virtual Keycodes und Zeichen bzw deren Zusammenhang kann man mir kaum noch was beibringen :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 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