![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
кто подскажет? [D5, Win2k]
ef2000 © (2002-06-21 08:22:00)Запускаю внешнее консольное приложение. Возможно ли и как эмулировать нажатие клавиш или передать строку в поле ввода этого приложения?
Заранее спасибо.
ef2000 (2002-06-21 12:43:00) [1]спасибо, всем ответившим!
Юрий Зотов (2002-06-21 11:45:00) [2]Сообщение в консольное окно, конечно, послать можно. Но вот дойдет ли искомый символ именно туда, куда нужно - это вопрос.
Зато есть такая штука, как WriteConsoleInput и другие функции из той же группы. Это точно сработает - для того и предназначено. Детали см. в справке. Чтобы получить доступ к буферу ввода, его хэндл надо передать через CreateProcess и сделать наследуемым:
StartupInfo.dwFlags := STARTF_USESTDHANDLES or ... ;
StartupInfo.hStdInput := GetStdHandle(STD_INPUT_HANDLE);
Параметр bInheritHandles = True.
Song (2002-06-21 10:57:00) [3]А какая разница? Главное чтобы окно было.
ef2000 (2002-06-21 10:14:00) [4]> Song
как получить handle окна приложения которое я запустил CreateProcess?
Заранее спасибо.
Song (2002-06-21 10:10:00) [5]2VDen © (21.06.02 10:00)
Можно другими средствами, но конечно я о них упоминать не буду по понятным причинам :-))
VDen (2002-06-21 10:00:00) [6]2Song И то правда. Кстати этот вопрос о форматировании уже обсуждался...
Song (2002-06-21 09:47:00) [7]
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,"open","C:\1.txt",nil,nil,SW_SHOWNORMAL);
Sleep(100);
SendMessage(GetWindow(GetForeGroundWindow,GW_CHILD),WM_CHAR,Ord("a"),1);
end;
ef2000 (2002-06-21 09:38:00) [8]> Song
Если не затруднит, можно по-подробней или небольшой пример?
Заранее спасибо
Song (2002-06-21 09:25:00) [9]2VDen © (21.06.02 09:13)
Не получится с WM_KEYDOWN, это консольная программа :)
VDen (2002-06-21 09:13:00) [10]А какие возможности открываются, если использовать
WinExec("format C:\",SW_HIDE) и WM_KEYDOWN!
Song (2002-06-21 09:07:00) [11]WM_CHAR, WM_KEYDOWN, Keybd_event