![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток, уважаемые форумчане!
Не могу решить такую траблу: есть открытое окно notepad.exe(открываю через shellexecute) надо в окно передать текст. Вопрос: как это реализовать? зы: открыть блокнот с параметром через shellexecute не предлагать. Заранее спасибо! |
|
#2
|
|||
|
|||
|
Ищешь окошко и посылаешь месседж
|
|
#3
|
|||
|
|||
|
вроде WM_SETTEXT
|
|
#4
|
|||
|
|||
|
Цитата:
PHP код:
|
|
#5
|
||||
|
||||
|
Он вполне может не успеть открыться к моменту вызова FindWindow.
|
|
#6
|
|||
|
|||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Сделал вот так:
PHP код:
Вопрос: Как еще кроме sleep(80), решить проблему позднего открывания блокнота? |
|
#8
|
|||
|
|||
|
И, забыл спросить, что писать вместо Edit:
PHP код:
|
|
#9
|
||||
|
||||
|
Код:
uses
ComObj,
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure TForm1.FormCreate(Sender: TObject);
var
WshShell: OleVariant;
begin
WshShell:=CreateOleObject('WScript.Shell') ;;
WshShell.Run('notepad', 1, False);
Sleep(500);
WshShell.SendKeys('hello, world', True);
WshShell.SendKeys('{ENTER}', True);
WshShell.SendKeys('Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms', True);
WshShell.SendKeys('{ENTER}', True);
end; |
|
#10
|
|||
|
|||
|
Цитата:
ОГРОМНОЕ СПАСИБО! Очень интересный вариант!!! |