AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Text mittels Keybd_Event markieren (VK_Shift)
Thema durchsuchen
Ansicht
Themen-Optionen

Text mittels Keybd_Event markieren (VK_Shift)

Ein Thema von Cyberstorm · begonnen am 21. Aug 2007 · letzter Beitrag vom 22. Aug 2007
Antwort Antwort
Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#1

Text mittels Keybd_Event markieren (VK_Shift)

  Alt 21. Aug 2007, 17:04
Ich probiere mit folgendem Code z.B. 3 Zeichen zu markieren.
Nach links geht er dabei jedoch ohne zu markieren :-/

Code:
KeyBd_Event(VK_SHIFT, 0, 0, 0);
for i:=1 to 3 do
  begin
    KeyBd_Event(VK_LEFT, 0, 0, 0);
    KeyBd_Event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);
  end;
KeyBd_Event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
  Mit Zitat antworten Zitat
Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#2

Re: Text mittels Keybd_Event markieren (VK_Shift)

  Alt 21. Aug 2007, 17:24
habs schon.

es muss VK_RShift genommen werden (warum auch immer). Mit VK_LShift und VK_Shift funzt es nicht *strange*
  Mit Zitat antworten Zitat
Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#3

Re: Text mittels Keybd_Event markieren (VK_Shift)

  Alt 21. Aug 2007, 19:10
bräuchte hier doch nochmal hilfe:

sobald ich RSHIFT simuliere und dazwischen noch die VK_Left's bringt das KEYUP nichts mehr und rshift "verklemmt" sich bis ichs auf der tastatur drücke.

völlig egal, ob ich danach noch 20 keyup events sende oder keydown/up.
wenn ich zwischen down und up jedoch andere tasten (z.b. "a") simuliere passiert das nicht.

ist das mit dem code bei euch auch so? (einfach mal in nen 5sek timer hauen und nem memo oder so testen, ob sich rshift verklemmt (an den anfang vom memo klicken z.b.)

Delphi-Quellcode:
  KeyBd_Event(VK_RSHIFT, 0, 0, 0);
   for i:=1 to 5 do
    begin
      KeyBd_Event(VK_LEFT, 0, 0, 0);
      KeyBd_Event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);
    end;
  KeyBd_Event(VK_RSHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
danke schonmal
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Text mittels Keybd_Event markieren (VK_Shift)

  Alt 21. Aug 2007, 21:16
Warum ermittelst du nicht das Handle von dem Edit und schickst eine MSDN-Library durchsuchenEM_SETSEL Nachricht an das Fenster?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#5

Re: Text mittels Keybd_Event markieren (VK_Shift)

  Alt 21. Aug 2007, 21:21
Gibt es denn eine Möglichkeit das Handle des aktuellen Feldes zu ermitteln?

Grüße
Konrad
  Mit Zitat antworten Zitat
Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#6

Re: Text mittels Keybd_Event markieren (VK_Shift)

  Alt 22. Aug 2007, 14:01
Falls es noch wer sucht:

Delphi-Quellcode:
function GetFocusedControl: HWnd;
var
  tid: Cardinal;
  hw: HWND;
begin
  hw := GetForegroundWindow;
  tid := GetWindowThreadProcessID(hw, nil);
  if AttachThreadInput(GetCurrentThreadID, tid, true)
    then Result := GetFocus
    else Result := HWND(-1);
  AttachThreadInput(GetCurrentThreadID, tid, false);
end;
Quelle: http://www.delphipraxis.net/internal...aktives+handle
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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