![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Мне нужно узнать хэндл окна. Допустим, запускаю я cmd через ShellExecute, и нужно мне получить её хэндл. Через FindWindow нельзя, т.к. заголовок cmd может быть разный - у некоторых в начале приписывается "Администратор" (видимо, сидят под администратором). Я думаю, можно перебирать все окна и искать по слову cmd в заголовке. Попробовал ф-ю EnumWindows, вот так:
, и нифига, getmodulename не хочет возвращать имя файла по хэндлу. Помогите, а то меня скоро в гугле как ддос-бота забанят)) -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
Unconnected |
![]()
Сообщение
#2
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Спасибо, это работает. Ещё вопрос, как можно сменить раскладку в чужом окне? Дело в том, что если эмулировать нажатия клавиатуры, то в другом окне они будут отображаться в соответствии с тамошней раскладкой, т.е. передаю ord('F') - появляется 'а'. На одном форуме я нашёл такую функцию:
(передаю хэндл нужного окна) , но она была под изменение на русскую раскладку, а мне нужна английская. Там я в SetKeyboardLayout изменил код раскладки на английский и в предпоследней строке вместо RUSSIAN_CHARSET вписал DEFAULT_CHARSET (в модуле windows.pas константы поглядел), только вот не работает. Кажется, там не DEFAULT_CHARSET, но вот по логике вещей ENGLISH_CHARSET тоже нет.. Кое-где пишут, что вообще хук нужен. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
![]() |
Текстовая версия | 12.07.2025 5:30 |