![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Мне нужно узнать хэндл окна. Допустим, запускаю я cmd через ShellExecute, и нужно мне получить её хэндл. Через FindWindow нельзя, т.к. заголовок cmd может быть разный - у некоторых в начале приписывается "Администратор" (видимо, сидят под администратором). Я думаю, можно перебирать все окна и искать по слову cmd в заголовке. Попробовал ф-ю EnumWindows, вот так:
, и нифига, getmodulename не хочет возвращать имя файла по хэндлу. Помогите, а то меня скоро в гугле как ддос-бота забанят)) -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата ведь апи-команды, вызываемые из консоли, вроде как ничем не отличаются от тех, которые вызываются из GUI-приложения. Зато поведение консольного окна отличается от того, как ведет себя окно графическое. Возьмет и переключится на консоль в тот момент, когда ты собираешься занести строку в Run-диалог. На долю секунды, не важно, насколько. Но в момент посылки строки Run-диалог будет неактивен. И все... Кнопка "Ok" останется за-disable-нной, несмотря на то, что потом фокус опять перешел назад на диалог.Учитывай, что хозяином консоли является системный процесс csrss. Что так ему в голову придет - ты знаешь? Я - нет... Вопрос на засыпку: а что ты, собственно, выиграл от того, что сделал консольную программу? Думаешь, размер ее будет меньше, чем у оконного приложения? Вряд ли, напиши на чистом API (если тебе от программы больше ничего не надо, кроме как запускать что-то через через Start -> Run, то в 50 строк точно уложишься) - размер будет еще меньше, чем размер консольного приложения... Зато работать будет стабильно... |
![]() ![]() |
![]() |
Текстовая версия | 12.07.2025 18:43 |