0 / 0 / 0
Регистрация: 15.02.2016
Сообщений: 4
|
|
1 | |
CreateProcess работает странно в D1015.02.2016, 16:23. Показов 898. Ответов 6
Метки нет (Все метки)
Существует программа, в которой основная невидимая программа-диспетчер поочередно запускает другие программы.
В D3 и D7 все работало как часы уже лет 15. При переходе на D10 (проект тот же, без изменений) столкнулся с тем, что только первый запуск из программы-диспетчера работает нормально, остальные программы запускаются "сзади", не в режиме ForeGround (система - W10). Использование CreateProcess совершенно стандартное, без никаких дополнений. Подозреваю, что дело в параметре nCmdShow, который нужен для повторных запусков, но функция ShowWindow в программе не используется. Поиски показали что все работает нормально, если убрать Hide с формы диспетчера, но тогда она становится видна, чего не должно быть. Перепробовал все, что нашел. Максимум чего удалось добиться - мигает иконка на панели задач,но вытащить вперед не удается - только руками. Проблема еще в том, что запускаемые программы меняют окна, заголовки и жрут немалые вычислительные ресурсы (плохо слушаются).
0
|
15.02.2016, 16:23 | |
Ответы с готовыми решениями:
6
CreateProcess не работает функция CreateProcess странно работает Не работает зацикливание gif [D10.1 Berlin] CreateProcess не работает |
3218 / 2361 / 540
Регистрация: 11.09.2009
Сообщений: 8,604
|
|
22.02.2016, 12:16 | 2 |
Да, в ней изменилась логика управления окнами. Видимо, это связано с наличием разных интерфейсов "Рабочего стола". Надо заново учить матчасть.
1
|
0 / 0 / 0
Регистрация: 15.02.2016
Сообщений: 4
|
||||||
22.02.2016, 21:57 [ТС] | 3 | |||||
Удалось починить вот такой вставкой после CreateProcess (основа взята из интернета):
0
|
3218 / 2361 / 540
Регистрация: 11.09.2009
Сообщений: 8,604
|
|
22.02.2016, 22:08 | 4 |
По-моему, использование sleep() для ожидания выполнения системной функции совсем не гарантирует её выполнение.
Почему не Application.ProcessMessages?
0
|
0 / 0 / 0
Регистрация: 15.02.2016
Сообщений: 4
|
|
22.02.2016, 22:16 [ТС] | 5 |
Я пробовал разные комбинации - винда очень ненадежно реагирует. Эта показалась мне самой надежной, хотя согласен, криво.
0
|
3218 / 2361 / 540
Регистрация: 11.09.2009
Сообщений: 8,604
|
|
22.02.2016, 22:54 | 6 |
Я бы проверок добавил. Вот у вас даже EnumWindows без проверки вызывается, хотя он boolean.
Можно и нужное состояния окна с проверкой ждать, делать пару попыток, отрабатывать случай "не удалось...".
0
|
0 / 0 / 0
Регистрация: 15.02.2016
Сообщений: 4
|
|
24.02.2016, 09:43 [ТС] | 7 |
Все это есть, я здесь упростил немного...Там у меня EnumWindows в 10-шаговом цикле с проверкой и на exit. Но выкладывать такое мне показалось несколько нахальным - типа, низкий уровень, крутые ребята так не пишут
0
|
24.02.2016, 09:43 | |
24.02.2016, 09:43 | |
Помогаю со студенческими работами здесь
7
Не работает CreateProcess CreateProcess не работает Странно работает / не работает кулер на видеокарте if, else if работает странно. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |