Zitat von
bitsetter:
Der Cursor befindet sich danach am Ende der zur Hälfte markierten Zeile.
Ja die Hälfte des Textes ist danach blau hinterlegt.
Beim Windows Editor zumindest, könnte man ansonsten noch mit
Delphi-Quellcode:
var
SelStart, SelEnd : Integer;
begin
sleep(2000);
//lesen
SelStart:= 0;
SelEnd:= 0;
SendMessage(WindowFromPoint(mouse.CursorPos), EM_GETSEL, Integer(@SelStart), Integer(@SelEnd));
caption:= inttostr(SelStart)+' '+ inttostr(SelEnd);
//selektieren
SelStart:= 3;//Beispiel
SelEnd:= 10;
SendMessage(WindowFromPoint(mouse.CursorPos), EM_SETSEL, SelStart, SelEnd);
die Länge und die Position des selektierten Textes auslesen oder setzen. Eventuell kannst du dich ja damit behelfen, wenn du dazwischen noch VK_END sendest.
EDIT: Also so in etwa:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
SelStart, SelEnd : Integer;
EdtHandle: HWND;
begin
sleep(2000);
EdtHandle:= WindowFromPoint(mouse.CursorPos);
SelStart:= 0;
SelEnd:= 0;
SendMessage(EdtHandle, EM_GETSEL, Integer(@SelStart), 0);
keybd_event(VK_end,0,0,0);
keybd_event(vk_end,0, keyeventf_keyup, 0);
sleep(100);
SendMessage(EdtHandle, EM_GETSEL, 0, Integer(@SelEnd));
SendMessage(EdtHandle, EM_SETSEL, SelStart, SelEnd);
end;
Mit dem Sleep() ist es zwar nicht gerade das Wahre, aber zum Testen reicht es erst einmal.