681 / 4585 / 262
Регистрация: 11.08.2016
Сообщений: 2,970
|
|
1 | |
Как получить хендл консольного окна?08.07.2019, 17:58. Показов 3341. Ответов 15
Я запускаю из основной программы (неконсольной) консольное приложение при помощи ShellExecuteEx. Я знаю хендл его процесса. Как мне найти хендл консольного окна?
Пробовал искать при помощи EnumWindows и GetWindowThreadProcessId - не вышло. Пробовал при помощи FindWindowEx - тоже.
0
|
|
08.07.2019, 17:58 | |
Ответы с готовыми решениями:
15
Как получить адрес текущего окна зная его Хендл Как получить Хендл меню Как узнать хендл окна (кнопки), если есть часть его текста?
|
Нарушитель
![]() |
||||||
09.07.2019, 08:53 | 2 | |||||
1
|
681 / 4585 / 262
Регистрация: 11.08.2016
Сообщений: 2,970
|
|
09.07.2019, 10:26 [ТС] | 3 |
А с помщью какого из них можно изменить из внешней программы изменить положение консольного окна?
И как их получить из внешней программы? (Консольная - не моя).
0
|
Нарушитель
![]() |
||||||
09.07.2019, 10:50 | 4 | |||||
сейчас речь идёт об окне экранного буфера консоли
0
|
681 / 4585 / 262
Регистрация: 11.08.2016
Сообщений: 2,970
|
|
09.07.2019, 11:52 [ТС] | 5 |
А как получить хендл консоли из запускающей программы? Не изнутри консоли? (консоль - не моя).
0
|
Модератор
![]() ![]() 5108 / 4542 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
09.07.2019, 12:21 | 6 | |||||
Ivandur, да никаких проблем...
![]()
0
|
681 / 4585 / 262
Регистрация: 11.08.2016
Сообщений: 2,970
|
|
09.07.2019, 13:54 [ТС] | 7 |
Пробовал, не находит. И EnumWindows не выдаёт.
0
|
6575 / 4560 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
09.07.2019, 14:06 | 8 |
Попробуй сделать AttachConsole (только её надо вызывать из оконного приложения), потом GetStdHandle
1
|
Модератор
![]() ![]() 5108 / 4542 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
09.07.2019, 14:07 | 9 |
Ivandur, у меня прекрасно находит. Надо точно задать имя окна.
Попробуй на какой-то известной программке, например, на своей.
0
|
681 / 4585 / 262
Регистрация: 11.08.2016
Сообщений: 2,970
|
|
09.07.2019, 15:50 [ТС] | 11 |
0
|
Модератор
![]() ![]() 5108 / 4542 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
09.07.2019, 16:26 | 12 | |||||
Ivandur, запусти руками cmd.exe и сделай
0
|
6575 / 4560 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
09.07.2019, 16:47 | 13 |
1
|
681 / 4585 / 262
Регистрация: 11.08.2016
Сообщений: 2,970
|
|
10.07.2019, 09:07 [ТС] | 14 |
Запускаю при помощи ShellExecuteEx, и смотрю поле hProcess. В списке, полученном при помощи EnumWindows и GetWindowThreadProcessId его не появляется.
0
|
6575 / 4560 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
10.07.2019, 09:14 | 15 |
![]() Решение
Я правильно понял, что ты hProcess передаёшь в AttachConsole? Нужно ::GetProcessId(hProcess);
Т.е. ты сам запускаешь этот процесс? Тогда ты можешь запустить его через CreateProcess и тупо перенаправить ввод/ввывод в свои пайпы, указав их в STARTUPINFO
0
|
681 / 4585 / 262
Регистрация: 11.08.2016
Сообщений: 2,970
|
|
10.07.2019, 16:25 [ТС] | 16 |
GetProcessId(hProcess) помогло.
0
|
10.07.2019, 16:25 | |
Помогаю со студенческими работами здесь
16
Закрывается ли хендл при разрушении окна? Найти хендл чужого окна, зная его атом
Получить хендл элемента inputText в браузерном окне Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |