Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi "keybd_event" activieren und desactivieren (https://www.delphipraxis.net/91540-keybd_event-activieren-und-desactivieren.html)

DavidKlimas 6. Mai 2007 19:52


"keybd_event" activieren und desactivieren
 
Ich möchte in einer Fremdanwendung einen vorher eingegebenen Text markieren und löschen. Dazu habe ich folgendes :

Delphi-Quellcode:
  keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0);
  keybd_event(VK_END, 0, 0, 0);
  keybd_event(VK_END, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_DELETE, 0, 0, 0);
  keybd_event(VK_DELETE, 0, KEYEVENTF_KEYUP, 0);
Das Funktioniert auch prima, ausser das der neu eingegebene Text automatisch in grossbuchstaben geschrieben wird. Die Shift-taste ist immer noch aktiv trotz der keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0) anweisung. Was tun?

Danke für eure Hilfe.

DavidKlimas 6. Mai 2007 20:13

Re: "keybd_event" activieren und desactivieren
 
Also ich hab jetzt folgendes :

Delphi-Quellcode:
  keybd_event(VK_SHIFT, 0, (KEYEVENTF_EXTENDEDKEY or 0), 0);
  keybd_event(VK_END, 0, 0, 0);
  keybd_event(VK_END, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_DELETE, 0, 0, 0);
  keybd_event(VK_DELETE, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_SHIFT, 0, (KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP), 0);
  sleep(75);
  keybd_event(VK_SHIFT, 0, 0, 0);
  keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
was funktioniert aber nicht besonders sauber ist. Wenn jemand eine bessere lösung hat, bitte melden...


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