Вопрос по хуку кнопки

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Twiddle, 16 Jul 2009.

  1. Twiddle

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

    Joined:
    6 Sep 2006
    Messages:
    13
    Likes Received:
    9
    Reputations:
    0
    Очень прошу помочь.
    Есть окно чужой программы. На нем есть кнопка. Мы можем получить хендл этой кнопки даже. Как сделать следущее:
    при нажатии пользователем на эту кнопку (когда она внизу, еще не отпущена) выполнялся наш код. Или по другому: при нажатии на эту кнопку выполняется наш код и после посылается уже реальное нажатие. Очень нужно. Спасибо заранее...
     
  2. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    инжект+сабклассинг. статей по этим темам в гугле хоть опой жуй
     
  3. Twiddle

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

    Joined:
    6 Sep 2006
    Messages:
    13
    Likes Received:
    9
    Reputations:
    0
    обязательно так? простой хук нельзя? можно ссылку на конкретный пример или сам пример. очень нужно уже 3 сутки мучаюсь.. =(
     
  4. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    ну если код не связан с чужим приложением то можно хук. ток имхо проще сделать инжект и сабклассинг. ибо инжект делается вызовом CreateRemoteThread (GetProcAddress("LoadLibrary"), "mega.dll") (есесно псевдокод). Ну и дальше через SetWindowLong сабкласснуть батон с перехватом любых сообщений.

    кстати SetWindowLong нада вызывать не для хэндла кнопки. Сообщения о кликах обрабатываются в окне-владельце. Поэтому сначала делаешь GetParent. По поводу нажатия кнопки - это вроде нотифаями шлется.
    чти мсдн на эту тему
     
    #4 Ra$cal, 16 Jul 2009
    Last edited: 16 Jul 2009
    1 person likes this.
  5. Twiddle

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

    Joined:
    6 Sep 2006
    Messages:
    13
    Likes Received:
    9
    Reputations:
    0
    гугл не помогает. Кто нить может конкретно помочь за хорошее пиво? Кто не пьет пиво можем на номер договориться или аналогичное вознаграждение... =\ Тупо надо перехватить нажатие кнопки. При нажатии выполняется мой код который я уже написал с горем-пополам. Пасибо заранее... Писать можно в пм.