Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Hook&Uac   Найти похожие ветки 

 
QAZ   (2009-12-15 19:14) [0]

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

зы. почему на форме для вопроса нет чекбоксов Vista&Win7?


 
DVM ©   (2009-12-15 20:12) [1]


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

WH_KEYBOAD_LL


 
DVM ©   (2009-12-15 20:13) [2]

WH_KEYBOARD_LL


 
brother ©   (2009-12-16 04:41) [3]

> Vista

уже старо и не актуально ;)


 
Егорка   (2009-12-16 11:30) [4]


> WH_KEYBOARD_LL

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


 
QAZ   (2009-12-16 12:15) [5]


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

вово у меня тоже этот хук используется,забыл сразу написать


 
Сергей М. ©   (2009-12-16 12:37) [6]


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


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


И оба поди реализовали его в dll)


 
QAZ   (2009-12-16 13:13) [7]

неа :) в самой проге


 
Сергей М. ©   (2009-12-16 13:50) [8]


> QAZ   (16.12.09 13:13) [7]


И чего говорит результат вызова SetWindowsHookEx ?


 
QAZ   (2009-12-16 14:25) [9]

говорит "вот тибе хендл процедуры, иди с миром"
и собствено НЕ хукает только если активно окно проги под админом


 
QAZ   (2009-12-16 14:32) [10]

также хотелось бы слышать версии
не людей у которых стоит ХР и они предпологают что...
а тех кто сидит на Висте\Семерке и у них это работает :)


 
DVM ©   (2009-12-16 19:51) [11]

Если бы WH_KEYBOAD_LL у меня в Win7 не работал, я бы не писал, однако ж все работает. И админских прав не требует.


 
DVM ©   (2009-12-16 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   (2009-12-16 20:00) [13]

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


 
QAZ   (2009-12-16 20:00) [14]

опередил :)


 
DVM ©   (2009-12-16 20:01) [15]


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

что конкретно непонятно в коде?


 
QAZ   (2009-12-16 20:06) [16]

бгг. не работает :)
у тибя уак вобще включен ?


 
DVM ©   (2009-12-16 20:08) [17]


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

конечно включен.


 
QAZ   (2009-12-16 20:13) [18]

ну не работает
запускаеш любую прогу от одмина
запускаеш хукер
когда активен хукер,жмем Win ,пуск не вылазит - чудо
когда активна одминпрога,жмем Win ,пуск вылазит - ватафака ?


 
QAZ   (2009-12-16 20:18) [19]

проверено как в х32 так и в х64,обе чистые, тестовые


 
DVM ©   (2009-12-16 20:18) [20]


> QAZ   (16.12.09 20:13) [18]

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

А она не отрабатывает только для приложений запущенных "От имени администратора". Ну что ж, все верно, так и должно быть. Если хочешь чтобы работала для приложений запущенных и от имени администратора, то саму ловушку ты должен устанавливать от имени администратора. Нормальное поведение.


 
QAZ   (2009-12-16 20:22) [21]

ну еперный театр, опять не поняли вопроса :(
а я веть уточнял в [9]


 
QAZ   (2009-12-16 20:26) [22]

для этого и других хуков обезательно иметь окно?
ато пробовал както ,есть окно ловит\нету не ловит
в этом вот тоже окно есть от месажбокса...


 
DVM ©   (2009-12-16 20:26) [23]


> QAZ

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

http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=21&m=156636


 
DVM ©   (2009-12-16 20:41) [24]


> QAZ   (16.12.09 20:26) [22]

окна тут ни причем, в этом примере Рихтера оно только для того, чтобы продемонстрировать эффект и не дать программе завершиться сразу.


 
Игорь Шевченко ©   (2009-12-16 23:29) [25]

"Еще не хотелось бы видеть открытого коверканья русского языка, использования уличного сленга. Это конечно не наказуемо, но помните, что Ваши слова будут читать люди, которые с ними могут быть незнакомы, или они им просто неприятны."


 
QAZ   (2009-12-17 12:48) [26]

я не коверкаю,а реально не знаю русского языка,стараюсь как могу


 
TIF ©   (2009-12-22 18:39) [27]

> стараюсь как могу

imho, стараться с гуглом проще. For example:
http://translate.google.com/#uk|ru|



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.091 c
3-1282715135
fast
2010-08-25 09:45
2013.03.22
Вызов хранимой процедуры из FastReport


15-1352739879
Куку
2012-11-12 21:04
2013.03.22
Combobox с разным наполнением для разных строк в cxGrid


2-1337444815
TStas
2012-05-19 20:26
2013.03.22
Горизонтальная прокрутка ричЭдита


2-1329472416
AlxAY
2012-02-17 13:53
2013.03.22
Как в отдельном потоке вызвать функцию из основного без зависаний


11-1244657683
Galkov
2009-06-10 22:14
2013.03.22
Очень Древний Баг с прозрачностью (DoubleBuffered)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский