Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Hook&Uac [D7]


Страницы:   1 2

QAZ ©   (2009-12-15 19:14:00) 

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

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


TIF   (2009-12-22 18:39:00) [1]

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

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


QAZ   (2009-12-17 12:48:00) [2]

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


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

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


DVM   (2009-12-16 20:41:00) [4]


> QAZ   (16.12.09 20:26) [22]

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


DVM   (2009-12-16 20:26:00) [5]


> QAZ

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

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


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

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


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

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


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


> QAZ   (16.12.09 20:13) [18]

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

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


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

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


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

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


DVM   (2009-12-16 20:08:00) [11]


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

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


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

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


DVM   (2009-12-16 20:01:00) [13]


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

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


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

опередил :)


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

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


DVM   (2009-12-16 19:56:00) [16]

Я уже этот код выкладывал, выложу еще раз. Под 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.


DVM   (2009-12-16 19:51:00) [17]

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


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

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


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

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


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


> QAZ   (16.12.09 13:13) [7]


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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо