![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Мне нужно узнать хэндл окна. Допустим, запускаю я cmd через ShellExecute, и нужно мне получить её хэндл. Через FindWindow нельзя, т.к. заголовок cmd может быть разный - у некоторых в начале приписывается "Администратор" (видимо, сидят под администратором). Я думаю, можно перебирать все окна и искать по слову cmd в заголовке. Попробовал ф-ю EnumWindows, вот так:
, и нифига, getmodulename не хочет возвращать имя файла по хэндлу. Помогите, а то меня скоро в гугле как ддос-бота забанят)) -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
Unconnected |
![]()
Сообщение
#2
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Цитата Теперь - вопрос на засыпку: а зачем тебе что-то печатать в консоли, да еще созданной через ShellExecute? Если тебе просто нужна консоль, скажем, для вывода, то есть AllocConsole + GetStdHandle, и пиши сколько хочешь в STD_OUTPUT_HANDLE... О том, как запустить процесс и перехватить его вывод написано в DRKB. Так зачем консоль понадобилась? Ну, мне надо исполнить cmd-команду, но как будто от имени пользователя, через bat-файл не вариант. Короче, я отказался от cmd в пользу окошка Выполнить. Делаю так: var t,editt,but:hwnd; Окошко находится, ComboBox в нём - тоже, даже получается записать туда строку, а вот кнопка что-то не хочет. Вообще, FindWindowEx ищет на всех дочерних "компонентах" окнА, чей хэндл был передан, или только на основной форме? Просто на Win7 кнопки на какой-то белой полосе, типа TBevel или TPanel, что-то такое. Можно, конечно, сделать EnumChildWindows, чтобы посмотреть все контролы, но может и так можно? Цитата создавать процесс через CreateProcess, а потом делать вот так Ага, мне говорили про такой способ, но я испугался множества входных параметров этой функции ![]() Сообщение отредактировано: Unconnected - 30.05.2010 21:50 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 8:39 |