Просмотр полной версии : Захват хендла окна (c++)
Изучил довольно много информации по хендлу.Планирую использовать в мирных целях,но думаю и для обхода фаеров пригодиться многим ;)
HWND hWnd;
hWnd = FindWindow("Класс приложения", NULL);
hWnd = FindWindowEx(hWnd, NULL, "Класс кнопки/строки и прочего", NULL);
if (IsWindow(hWnd))
{
// Кнопка найдена, работаем с ней
}
Код работает прекрасно,но ..вот пример:
HWND hWnd;
hWnd = FindWindow("Notepad", NULL);
hWnd = FindWindowEx(hWnd, NULL, "Edit", NULL);
if (IsWindow(hWnd))
{
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
}
Работа с блокнотом,а точнее эмуляция нажатия кнопок SPACE,проблема в том,что программа (эмуляция) работает корретно,только в случае (!) если Notepad - является (!)активным окном.В противном случа нет.Вопрос,есть ли способы переключения активного окна?Гугль не помог.
попробуй SetForegroundWindow
groundhog
01.10.2007, 14:53
Во-первых, я не понял при чём тут обход фаеров? Во-вторых, в "мирных" целях лучше посылать асинхронные сообщения окну, тогда ты будешь точно знать, что это событие предназначалось именно тому, на кого ты расчитывал, а вот насчёт того, что гугль тебе не помог - это не отмазка. Мало того, что в MSDN это есть, так это и в гугле на первых позициях - SetForegroundWindow, SetActiveWindow, SetWindowPos, ActivateWindow. Дальше сам.
groundhog
я не понял при чём тут обход фаеров?
Обдумав 30 секунд набросал:
URLDownloadToFile(NULL, "http://url.succes.txt", "succes.txt", 0, NULL); //дразним оутпост
HWND hWnd;
hWnd = FindWindow("#32770", NULL); //находим окно создания правила
//для нового приложения
if (IsWindow(hWnd))
{
keybd_event(VK_RETURN,0,0,0);
//создаем правило:),по умолчанию задает ему как Web
//браузер.поэтому достаточно 1 нажатия :))
}
Палиться конечно (выводит сообщения,на переключение активного окна),но ведь за 30 секунд лучше не придумать :))
Во-вторых, в "мирных" целях лучше посылать асинхронные сообщения окну, тогда ты будешь точно знать, что это событие предназначалось именно тому, на кого ты расчитывал, а вот насчёт того, что гугль тебе не помог - это не отмазка.
Спасибо учту.Я не люблю отмазываться :).
так это и в гугле на первых позициях - SetForegroundWindow, SetActiveWindow, SetWindowPos, ActivateWindow.
Однако не имел понятия про подобные функции.Спасибо.Думаю теперь уже они не понадобяться :)
LEE_ROY
попробуй SetForegroundWindow
Спасибо пошел искать инфу.
Exile1985
01.10.2007, 15:42
Изучив много карт и глобусов, могу твердо заявить: земля КРУГЛАЯ!!!.
Я буду использовать эту информацию в мирных целях, хотя ею можно воспользоваться и в других менее мирных целях.
groundhog
01.10.2007, 15:51
Клацанье по кнопкам это не обход фаеров...
Палиться конечно (выводит сообщения,на переключение активного окна),но ведь за 30 секунд лучше не придумать )
Ну боянище же это раз. Два - какой это нафиг обход?
Ну боянище же это раз. Два - какой это нафиг обход?
Ну так пинч же тоже по кнопочкам клацал, как бы "обходя" KIS и OUTPOST. Это не обход, это скорее обман :D
Наконецто пришел котел и раскрыл истину, я уж думал не дождусь. Теперь я тоже умею искать окна по FindWindowEx, проверять окна с помощью IsWindow и нажимать кнопочки по keybd_event. Бойся оутпост, пришло твое время.
Вообще, зачем создавать такие темы, мм? Пропалишь же тему..
Exile1985
02.10.2007, 09:11
Наконецто пришел котел и раскрыл истину, я уж думал не дождусь. Теперь я тоже умею искать окна по FindWindowEx, проверять окна с помощью IsWindow и нажимать кнопочки по keybd_event. Бойся оутпост, пришло твое время.
Вообще, зачем создавать такие темы, мм? Пропалишь же тему..
не говори как, мы, долгие годы молчали и никому не рассказывали об этом секрете, а ты вот взял и спалил всех нах.
Как скажи мне мы теперь будем обходить врейвол, ведь бравые бойци из агниума закроют эту дыру.
И как нам теперь быть!? Засрал малину?!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot