Entwickler-Ecke
Windows API - onKeyPress merkwürdige verhalten einer funktion
Niko S. - Mo 18.12.06 20:32
Titel: onKeyPress merkwürdige verhalten einer funktion
Delphi-Quelltext
1:
| if (Key = '"') then begin Key:=#0; PostKeyEx32(Ord('2'), [ssShift], False); PostKeyEx32(VK_LWIN, [], False); end; |
Ich benutze das hier:
http://www.swissdelphicenter.ch/de/showcode.php?id=220
Um einen tastendruck zu simulieren .
Ich möchte das bei einem druck auf " (also shift+2) nochmals die taste gedrückt wird bzw das symbol " doppelt erscheint und dann der cursor wieder zurück in die "" springt .
Allerdings beim drücken der shift+2 kombinantion tut er so als würde er die Windows taste drücken <_< und nichts passiert emhr
GTA-Place - Mo 18.12.06 20:42
Ich zitiere von dem Artikel:
| Swiss Delphi Center hat folgendes geschrieben: |
//Pressing the Left Windows Key
PostKeyEx32(VK_LWIN, [], False); |
Du drückst damit nicht die Pfeiltaste, sondern die Windows-Taste.
Niko S. - Mo 18.12.06 20:50
stimmt ^^
gut anderes problem ist nun, dass er weder ein " macht noch die taste VK_LEFT loslässt!
hab enifach VK_LWIN durch VK_LEFT ersetzt
GTA-Place - Mo 18.12.06 21:03
Dass er gar nichts anzeigt, liegt am Key := #0;.
Niko S. - Mo 18.12.06 21:05
joah weggenommen aber trozdem zeigt der nur einmal "
ich möchte aber dassa da wiederholt damit da "" ist ...
GTA-Place - Mo 18.12.06 21:13
Jo, ich weiß ;-).
Das hier geht schon "ganz" gut:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| if Key = '"' then begin keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), 0, 0); keybd_event(Ord('2'), MapVirtualKey(Ord('2'), 0), 0, 0); keybd_event(Ord('2'), MapVirtualKey(Ord('2'), 0), KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), KEYEVENTF_KEYUP, 0) end; |
Aber, es wird ja jedes mal wieder onKeyPress aufgerufen und damit das keybd_event. Das könntest du mit einer Variable vom Typ Boolean verhindern.
Niko S. - Mo 18.12.06 22:04
Funzt fein danke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!