|
Модераторы: Partizan, gambit |
|
MuForum |
|
||||
Опытный Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
Доброе время суток!
# Задача: Необходимо запустить программу, считать её handle и затем свернуть. - Программы находятся в списке. (То есть программ много)
# Подключаемая функция с WinApi:
Проблема заключается в следующем: Почему-то 'newProcess.MainWindowHandle' возращает ноль. (Если сделать задержку на некоторое время, то тогда возращает handle). Но тут проблема, так как программа пишется для запуска программ игрового Сервера, то время на запуск каждой программы разный + На это ещё влияет сами параметры компьютера... То есть вопрос заключается в следующем: Как мне запустить программу, дождаться пока она вернёт мне handle, чтобы я затем мог свернуть программу? Это сообщение отредактировал(а) MuForum - 30.1.2008, 00:23 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||
|
|||||
mr.DUDA |
|
|||
3D-маньяк Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Можно запускать программы в одном потоке, а ждать появления MainWindowHandle и сворачивать окно в другом потоке. Кстати, если нужно просто свернуть прогу после запуска, можно прописать newProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized, тогда не нужно потом вызывать ShowWindow(SW_HIDE).
-------------------- |
|||
|
||||
MuForum |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
- Я так и делаю, запускаю поток и в нём запускаю всё.
- Делал, но мне данный способ не подходит, так как мне нужно скрывать окно с экрана и с 'Панели задач'. - А если делать 'newProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden', то тогда затем если делаешь 'ShowWindow(SW_SHOW)', то окно в 'Панели задач' не появляется. Это сообщение отредактировал(а) MuForum - 30.1.2008, 10:36 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||||
|
|||||||
farad |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: -1 Всего: 6 |
|
|||
|
||||
MuForum |
|
||||
Опытный Профиль Группа: Участник Сообщений: 427 Регистрация: 13.6.2007 Где: Молдова, Кишинев Репутация: нет Всего: 4 |
Спасибо, от части помогло. - Если программа грузится медленно, то всё срабатывает на ура, а если быстро, то выдаёт сообщение о 'newProcess.MainWindowHandle == 0' P.S. -> Может есть ещё какой-то способ прослеживать запущено ли приложение и чтобы возвращало значение 'handle не равное 0'? -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли) |
||||
|
|||||
farad |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: -1 Всего: 6 |
попробуй таймаут задать в WaitForInputIdle... вообще странно, на блокноте-то работает, сложно представить что что-то быстрее его грузится...
Добавлено через 6 минут и 9 секунд да, еще: WaitForInputIdle будет ждать инициализацию только оконных приложений. Если прога консольная, или досовская какая-нибудь, то она сразу вернет управление |
|||
|
||||
vadj |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 1.1.2018 Репутация: нет Всего: нет |
парни как добавить программу другую уже в соброный .exe
что бы он не рядом лежал в папке |
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |