![]() |
Sendmessage und Zwischenablage Problem
Hallo,
habe da ein kleines Problem. Ich möchte, wenn ich den HotKey drücken den markierten Text aus einer anderen Anwendung an mein Prog übergeben. (Später soll sich das Wort noch selber markieren). Dabei gehe ich so vor, daß zu diesem Zeitpunkt das Handle ermittelt wird das unter dem Mousecursor ist. Der Rest wird über die Zwischenablage erledigt. Innerhalb meines Programmes funktioniert es aber mit anderen Progs nicht, obwohl ich das Handle der jeweiligen Komponente habe. Es wird erst gar nichts in die Zwischenablage kopiert. Warum nicht? Kann mir da jemand helfen. Hier mal der Code zur Hilfe:
Code:
procedure TForm1.WMHotKey(Var Msg: TWMHotkey);
var rPos: TPoint; hWnd: THandle; a:integer; b:string; begin case Msg.IdHotKey of ID: begin GetCursorPos(rPos); hWnd := WindowFromPoint(rPos); SendMessage(hwnd, WM_COPY, 0, 0); edit1.Text:=''; b:=edit1.text ; han:=findwindow(0,'Hossa'); hwnd2:=findwindowex(han,0,'TEdit',PAnsiChar(b)); SendMessage(hwnd2, WM_PASTE, 0, 0); end; ID+1: begin //..... end; end; inherited; end; |
Re: Sendmessage und Zwischenablage Problem
Zitat:
Zitat:
Delphi-Quellcode:
dann kannst du auch was kopieren!
SendMessage(hWnd,EM_SETSEL,0,-1);
|
Innerhalb meines Progs geht es. will ich aber von einem anderen Prog den Text eines Feldes geht es nicht.
Kann das evtl hiran liegen:
Code:
Irgendwie stört das form1. Aber ich weiß nicht wie das sonst funzen soll.
procedure TForm1.FormCreate(Sender: TObject);
var ok: longbool; begin i:=0; ok:=RegisterHotKey(Form1.Handle, ID, MOD_Alt, Ord('Q')); if not ok then showmessage('Fehler'); ok:=RegisterHotKey(Form1.Handle, ID+1, MOD_control, vk_f1); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz