![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Мне нужно узнать хэндл окна. Допустим, запускаю я cmd через ShellExecute, и нужно мне получить её хэндл. Через FindWindow нельзя, т.к. заголовок cmd может быть разный - у некоторых в начале приписывается "Администратор" (видимо, сидят под администратором). Я думаю, можно перебирать все окна и искать по слову cmd в заголовке. Попробовал ф-ю EnumWindows, вот так:
, и нифига, getmodulename не хочет возвращать имя файла по хэндлу. Помогите, а то меня скоро в гугле как ддос-бота забанят)) -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Я добавил строчку CoInitialize(nil) в самом начале процедуры и CoUninintialize в конце Как ни пытался - не получилось у меня, чтоб AV вылетел. Может ты несколько раз вызываешь эту процедуру? Тогда пара Co/CoUn должна быть в начале/конце программы, а не подпрограммы.Просто убирать CoUninitialize нельзя: Цитата To close the COM library gracefully, each successful call to CoInitialize or CoInitializeEx, including those that return S_FALSE, must be balanced by a corresponding call to CoUninitialize Цитата Это типа чтобы текст эдиту присвоился, информация об этом вернулась и только потом нажалась бы кнопка? Это привычка, отсылать текст через SetMessage, чтобы не дать повода для ошибки. Если здесь сделать PostMessage... Хотя, чего я-то? У Paul DiLascia в блоге все написано, читай перевод |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 22:26 |