
20.04.2013, 19:56
|
 |
LMD-DML
|
|
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
|
|
Цитата:
Сообщение от PonuHunter
...Проблема в том что когда я пытаюсь копипастнуть его в программу то копируется текст тот который был до того как я изменил содержимое буфера обмена.
|
Значит не копируется, потому как буфер один на всех и старой инфе храниться больше негде. А вот такой код будет работать?
Код:
type
TForm1 = class(TForm)
...
procedure SendMsg;
...
procedure Form1.SendMsg;
begin
// копируем содержимое memo1 в буфер обмена
Memo1.SelectAll;
Memo1.CopyToClipboard;
// кликаем в поле ввода в окне другой программы для того чтобы оно стало активным для ввода
PostMessage(Handler, WM_LBUTTONDOWN, MK_LBUTTON, MAKELparam(EditX, EditY));
sleep(100);
PostMessage(Handler, WM_LBUTTONUP, 0, MAKELparam(EditX, EditY));
sleep(1000);
// посылаем окну комбинацию ctrl + v
keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(86, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
keybd_event(86, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
// нажимаем ентер
PostMessage(Handler, WM_KEYDOWN, VK_RETURN, $00000001);
sleep(100);
PostMessage(Handler, WM_KEYUP, VK_RETURN, $C0000001);
sleep(100);
end;
|