![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Nicholas |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
В общем у меня в цикле много раз запускается консольное приложение (конвертор), но не много окон, а прога ждет пока оно завершится потом продолжает цыкл, мне надо чтоб его окно запускалось внутри моей формы!
Иначе по рабочему столу начинают прыгать окшки консольного приложения, то там то тут Нашел пример здесь. Исходник примера здесь.
Что я пока не понял в примере, это то как окно появляется на форме и как оно таскается мышью... :( Вообще мне нажна процедура которая будет в своих параметрах иметь еще и GroupBox в котором будет работать окно консольного приложения. Сейчас я пользуюсь функцией которая запускает и ждет выполнения приложения:
Подскажите как ее переделать что было примерно так
Может ктонибудь предложит вариант проще??? Это сообщение отредактировал(а) Nicholas - 30.11.2008, 13:12 |
||||||
|
|||||||
| Letov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 22.2.2007 Где: Санкт-Петербург Репутация: нет Всего: 4 |
Интересная задача. Я, например, тяжело представляю себе как запускать приложение внутри своей формы (как я понял - консоль должна появляться в GroupBox1).
Есть другой интересный метод. Например, запускать скрытый консольный процесс, и, если надо, перехватывать вывод консоль, например, с помощью пайпов (Pipe) и выводить ее в Memo. В общем случает - смотри drkb. Там это есть.
Так лучше^^. Это сообщение отредактировал(а) Letov - 30.11.2008, 15:12 -------------------- Не бывает плохих языков программирования. Бывают плохие программисты... |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Думаю, лучше так: сначала вызываешь AllocConsole. Новый процесс создаешь не указывая флажки DETACHED_PROCESS, CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP. Новый процесс унаследует твою консоль, и вместо привязки каждой новой консоли к твоему окну, достаточно это сделать один раз для своей консоли. Для этого сначала получаешь хэндл консольного окна (это GetConsoleWindow в новых виндах и куча сомнительных трюков в старых - ищи по форуму), а потоми делаешь SetParent этому окну
-------------------- Обижено школьников: 8 |
|||
|
||||
| Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
Я без собранного во едино кода нифига не пойму :( |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
ну вот тебе пример:
-------------------- Обижено школьников: 8 |
|||
|
||||
| Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
Нее, я все забыл... :(
п.с. Спасибо за пример. |
|||
|
||||
| Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
Подскажите, как сделать, что бы консольное окно никак не реагировало ни на мышь, ни на клавиатуру? Т.е. надо, что оно просто выводило результаты работы, а главное никто эту работу не мог прервать.
п.с. Убрал заголовок и запретил изменение размеров так:
|
|||
|
||||
| Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
Модераторы, можете тему перенести в ветку "Delphi: WinAPI и системное программирование" ?
а то здесь она заглохнет судя по всему... Это сообщение отредактировал(а) Nicholas - 20.6.2011, 07:27 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |