• QAZ (15.12.09 19:14) [0]
    столкнулся с проблеммой, когда хукаеца клава только тогда, когда активно приложение без админ. прав
    если запускать под админом то все ОК, но так нельзя
    вопрос. как ловить все хуки без админ.прав ?

    зы. почему на форме для вопроса нет чекбоксов Vista&Win7?
  • DVM © (15.12.09 20:12) [1]

    > как ловить все хуки без админ.прав ?

    WH_KEYBOAD_LL
  • DVM © (15.12.09 20:13) [2]
    WH_KEYBOARD_LL
  • brother © (16.12.09 04:41) [3]
    > Vista

    уже старо и не актуально ;)
  • Егорка (16.12.09 11:30) [4]

    > WH_KEYBOARD_LL

    :) собственно с ним и проблемма
  • QAZ (16.12.09 12:15) [5]

    > :) собственно с ним и проблемма

    вово у меня тоже этот хук используется,забыл сразу написать
  • Сергей М. © (16.12.09 12:37) [6]

    > с ним и проблемма


    > у меня тоже этот хук используется


    И оба поди реализовали его в dll)
  • QAZ (16.12.09 13:13) [7]
    неа :) в самой проге
  • Сергей М. © (16.12.09 13:50) [8]

    > QAZ   (16.12.09 13:13) [7]


    И чего говорит результат вызова SetWindowsHookEx ?
  • QAZ (16.12.09 14:25) [9]
    говорит "вот тибе хендл процедуры, иди с миром"
    и собствено НЕ хукает только если активно окно проги под админом
  • QAZ (16.12.09 14:32) [10]
    также хотелось бы слышать версии
    не людей у которых стоит ХР и они предпологают что...
    а тех кто сидит на Висте\Семерке и у них это работает :)
  • DVM © (16.12.09 19:51) [11]
    Если бы WH_KEYBOAD_LL у меня в Win7 не работал, я бы не писал, однако ж все работает. И админских прав не требует.
  • DVM © (16.12.09 19:56) [12]
    Я уже этот код выкладывал, выложу еще раз. Под W7 прекрасно работает без админских прав.


    {******************************************************************************}
    {* Module:  DisableLowLevelKeys.cpp                                           *}
    {* Notices: Written 2000 Jeffrey Richter                                      *}
    {*                                                                            *}
    {* Translated by: Dmitry Muratov                                              *}
    {* 2008                                                                       *}
    {******************************************************************************}

    program DisableLowLevelKeys;

    uses
     Windows, Messages;

    const
     LLKHF_ALTDOWN  = KF_ALTDOWN shr 8;
     WH_KEYBOARD_LL = 13;

    type

     TKBDLLHOOKSTRUCT = record
       vkCode: DWORD;
       scanCode: DWORD;
       flags: DWORD;
       time: DWORD;
       dwExtraInfo: DWORD;
     end;
     PKBDLLHOOKSTRUCT = ^TKBDLLHOOKSTRUCT;

    var
     hhkLowLevelKybd: HHOOK;

    //------------------------------------------------------------------------------

    function LowLevelKeyboardProc(nCode: integer;  wParam: WPARAM;  lParam: LPARAM): LRESULT; stdcall;
    var
     fEatKeystroke: boolean;
     p: PKBDLLHOOKSTRUCT;
    begin
     fEatKeystroke := false;
     if nCode = HC_ACTION then
       begin
         case wParam of
           WM_KEYDOWN,
           WM_SYSKEYDOWN,
           WM_KEYUP,
           WM_SYSKEYUP:
             begin
               p := PKBDLLHOOKSTRUCT(lParam);
               fEatKeystroke := ((p^.vkCode = VK_LWIN) or (p^.vkCode = VK_RWIN)) or
                                ((p^.vkCode = VK_TAB) and ((p^.flags and LLKHF_ALTDOWN) <> 0)) or
                                ((p^.vkCode = VK_ESCAPE) and ((p^.flags and LLKHF_ALTDOWN) <> 0)) or
                                ((p^.vkCode = VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0)) or
                                ((p^.vkCode = VK_F4) and ((p^.flags and LLKHF_ALTDOWN) <> 0));
             end;
         end;
       end;
     if fEatKeystroke then
       result := 1
     else
       result :=  CallNextHookEx(0, nCode, wParam, lParam);
    end;

    //------------------------------------------------------------------------------

    begin
     // Install the low-level keyboard & mouse hooks
     hhkLowLevelKybd := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);

     // Keep this app running until we're told to stop
     MessageBox(0,
                PChar('
    Alt+Esc, Ctrl+Esc, WIN, Alt+F4, and Alt+Tab are now disabled.' + #13#10 +
                      '
    Click "Ok" to terminate this application and re-enable these keys.'),
                PChar('
    Disable Low-Level Keys'),
                MB_OK);

     // Remove hooks
     UnhookWindowsHookEx(hhkLowLevelKybd);
    end.

  • QAZ (16.12.09 20:00) [13]
    и как он у тибя креатица\обрабатывается ?
  • QAZ (16.12.09 20:00) [14]
    опередил :)
  • DVM © (16.12.09 20:01) [15]

    > и как он у тибя креатица\обрабатывается ?

    что конкретно непонятно в коде?
  • QAZ (16.12.09 20:06) [16]
    бгг. не работает :)
    у тибя уак вобще включен ?
  • DVM © (16.12.09 20:08) [17]

    > у тибя уак вобще включен ?

    конечно включен.
  • QAZ (16.12.09 20:13) [18]
    ну не работает
    запускаеш любую прогу от одмина
    запускаеш хукер
    когда активен хукер,жмем Win ,пуск не вылазит - чудо
    когда активна одминпрога,жмем Win ,пуск вылазит - ватафака ?
  • QAZ (16.12.09 20:18) [19]
    проверено как в х32 так и в х64,обе чистые, тестовые
  • DVM © (16.12.09 20:18) [20]

    > QAZ   (16.12.09 20:13) [18]

    Ааа. Я понял о чем ты. Очень странно был сформулирован вопрос и я было подумал, что у тебя ловушка не отрабатывает вовсе.

    А она не отрабатывает только для приложений запущенных "От имени администратора". Ну что ж, все верно, так и должно быть. Если хочешь чтобы работала для приложений запущенных и от имени администратора, то саму ловушку ты должен устанавливать от имени администратора. Нормальное поведение.
  • QAZ (16.12.09 20:22) [21]
    ну еперный театр, опять не поняли вопроса :(
    а я веть уточнял в [9]
  • QAZ (16.12.09 20:26) [22]
    для этого и других хуков обезательно иметь окно?
    ато пробовал както ,есть окно ловит\нету не ловит
    в этом вот тоже окно есть от месажбокса...
  • DVM © (16.12.09 20:26) [23]

    > QAZ

    вот тут такой же вопрос там почитай ответы

    http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=21&m=156636
  • DVM © (16.12.09 20:41) [24]

    > QAZ   (16.12.09 20:26) [22]

    окна тут ни причем, в этом примере Рихтера оно только для того, чтобы продемонстрировать эффект и не дать программе завершиться сразу.
  • Игорь Шевченко © (16.12.09 23:29) [25]
    "Еще не хотелось бы видеть открытого коверканья русского языка, использования уличного сленга. Это конечно не наказуемо, но помните, что Ваши слова будут читать люди, которые с ними могут быть незнакомы, или они им просто неприятны."
  • QAZ (17.12.09 12:48) [26]
    я не коверкаю,а реально не знаю русского языка,стараюсь как могу
  • TIF © (22.12.09 18:39) [27]
    > стараюсь как могу

    imho, стараться с гуглом проще. For example:
    http://translate.google.com/#uk|ru|
Есть новые Нет новых   [134431   +15][b:0][p:0.003]