![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как послать сообщение модальному окну программы [D7, XP]
Wood © (2006-08-10 08:21:00)Ctrl+Break, Pause.
Спасибо.
Ketmar (2006-08-10 18:24:00) [1]> [35] Шпиён (10.08.06 18:20)
ну я так, на всякий случай. а то вдруг очень надо, а не знают... %-)
Шпиён (2006-08-10 18:20:00) [2]
> Ketmar © (10.08.06 18:14) [34]
ну да, Земля не совсем круглая %)))
Ketmar (2006-08-10 18:14:00) [3]> [33] Шпиён (10.08.06 17:53)
есть речь. сделать драйвер для NTVDM. %-)
Шпиён (2006-08-10 17:53:00) [4]
> Сергей М. © (10.08.06 15:51) [32]
Сам спросил, сам и отвечаю....
В принципе можно... если запускать не само dos-приложение, а "cmd /c <дос-приложение>" (если это самое дос-приложение работает со стандартным вводом-выводом, а не напрямую с видеопамятью.. иначе ни о каком перехвате вывода речи нет)
"Нормальные герои всегда идут в обход" (с)
ps 2 года назад я до этого не додумался -)
Сергей М. (2006-08-10 15:51:00) [5]
> Шпиён (10.08.06 15:46) [31]
Спроси у ИШ - он в этом вопргосе дока.
Шпиён (2006-08-10 15:46:00) [6]
> Сергей М. © (10.08.06 15:27) [30]
>
> > Шпиён (10.08.06 15:22) [29]
>
>
> По идее пайпы должны работать для любого рода Win32-приложений
Win32 - да.
Тем не менее с досовским приложением долго мучился...и в конце-концов обошёл (время на мучения закончилось) через keybd_event -(
(найти консольное окно по известному заголовку и классу (ConsoleWindowClass в NT/2000) проблемы не составило)
А вопрос (этак "в фоне") остался - всё же можно ли как-то работать с DOS-приложением (NTVDM) через пайпы... и если можно - то что же я делал не так.... (код "стандартный", с консольным приложением работал "на ура")
Сергей М. (2006-08-10 15:27:00) [7]
> Шпиён (10.08.06 15:22) [29]
По идее пайпы должны работать для любогорода Win32-приложений
Шпиён (2006-08-10 15:22:00) [8]
> Сергей М. © (10.08.06 15:19) [28]
Я имел в виду pipes... туплю?
Сергей М. (2006-08-10 15:19:00) [9]
> Шпиён (10.08.06 15:06) [27]
>
>
> c DOS-овским приложением "фокус не удался"
И не только с DOS-овским - с любым Win32-консольным, нигде и ни разу в ходе своего выполнения не вызывающим CreateWindow[Ex]
Шпиён (2006-08-10 15:06:00) [10]
> Сергей М. © (10.08.06 12:43) [23]
>
> > Wood (10.08.06 12:34) [21]
>
>
> Ну раз ты программно стартуешь консоль, то имеешь полный
> контроль за ее вводом/выводом, и незачем при этом заморачиваться
> всякими брейками и паузами.
>
> Все крутится вокруг Pipes.
И года не прошло, как выяснилось, что же именно происходит -)
Согласен.
ps
<offtopic>
Может я что-то не так делал, но c DOS-овским приложением "фокус не удался".... -(
</offtopic>
Wood (2006-08-10 13:23:00) [11]хорошо. Спасибо
Сергей М. (2006-08-10 12:49:00) [12]Погугли по теме "Delphi перехват консольного ввода-вывода" - море инф-ции и море примеров)
Wood (2006-08-10 12:46:00) [13]
> Все крутится вокруг Pipes.
уже горячее :)
о чем и вопрос! Не подскажите инфу, как это дело использовать. Кроме того, хотелось бы прочитать по ходу, что оно (конс. окно) там выводит, но только в своем каком-нить программном листе.
Сергей М. (2006-08-10 12:43:00) [14]
> Wood (10.08.06 12:34) [21]
Ну раз ты программно стартуешь консоль, то имеешь полный контроль за ее вводом/выводом, и незачем при этом заморачиваться всякими брейками и паузами.
Все крутится вокруг Pipes.
Wood (2006-08-10 12:41:00) [15]> Сергей М. © (10.08.06 12:32) [18]
CreateProcess, STARTUPINFO->ShowWindow->SW_HIDE мож так... в общих чертах :)
Wood (2006-08-10 12:34:00) [16]
> Сергей М. © (10.08.06 12:32) [18]
CreateProcess
Сергей М. (2006-08-10 12:32:00) [17]
> Шпиён (10.08.06 12:31) [17]
Это из другой оперы.
Wood (2006-08-10 12:32:00) [18]
> Шпиён (10.08.06 12:31) [17]
возможно....
во всяком случаю возьму и это как вариант.
Но если это окно скрыто SetForegroundWindow не покатит, не хочется его показывать...
Сергей М. (2006-08-10 12:32:00) [19]
> консольное окно может во время работы быть скрыто
Интересно, как это ленивый и бестолковый юзер умудрится стартовать консольное приложение "ручками", которое при этом будет скрытым ?
Шпиён (2006-08-10 12:31:00) [20]хм... FindFindow - SetForegroundWindow - keybd_event (либо SendInput) ?