Форум: "Система";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПерехват системных комбинаций клавиш для скринсайвера Найти похожие ветки
← →
Arm79 © (2004-03-12 15:18) [0]Прошу прощения за сабж, знаю - таких вопросов было много, но все они немного не полные. Мне нужно написать свой СкринСейвер. Платформа НТ. Все бы ничего, но требуется в программе определить, какой именно пароль вводит пользователь, и в зависимости от этого выполнять различные действия. А стандартные средства Виндуса, позволяющие это сделать, мне неизвестны. Я решил сам спрашивать пароль, но тут встала необходимость блокировать любые системные комбинации клавиш. Знаю, что нужны хуки, но не умею ими пользоваться. На сайте нашел HotKeyManager и xSpyOut, но там не показано, как "глушить" комбинации (а может, я чего не понял?).
Буду благодарен за любую помощь.
Может, кто-нить подскажет ссылку по основам работы с хуками?
← →
Arm79 © (2004-03-12 15:18) [0]Прошу прощения за сабж, знаю - таких вопросов было много, но все они немного не полные. Мне нужно написать свой СкринСейвер. Платформа НТ. Все бы ничего, но требуется в программе определить, какой именно пароль вводит пользователь, и в зависимости от этого выполнять различные действия. А стандартные средства Виндуса, позволяющие это сделать, мне неизвестны. Я решил сам спрашивать пароль, но тут встала необходимость блокировать любые системные комбинации клавиш. Знаю, что нужны хуки, но не умею ими пользоваться. На сайте нашел HotKeyManager и xSpyOut, но там не показано, как "глушить" комбинации (а может, я чего не понял?).
Буду благодарен за любую помощь.
Может, кто-нить подскажет ссылку по основам работы с хуками?
← →
Axis_of_Evil © (2004-03-12 15:42) [1]>Может, кто-нить подскажет ссылку по основам работы с хуками?Статья на этом сайте
← →
Axis_of_Evil © (2004-03-12 15:42) [1]>Может, кто-нить подскажет ссылку по основам работы с хуками?Статья на этом сайте
← →
Arm79 © (2004-03-12 15:54) [2]Я ее как раз и читаю, достаточно много непонытных моментов
← →
Arm79 © (2004-03-12 15:54) [2]Я ее как раз и читаю, достаточно много непонытных моментов
← →
Arm79 © (2004-03-15 14:34) [3]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:34) [3]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:35) [4]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:35) [4]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:35) [5]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:35) [5]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:35) [6]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:35) [6]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:36) [7]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:36) [7]При установке хука на контрол-альт-дел сообщение не глушится - диспетчер все таки вызывается
// пишу по памяти - может ошибся в названиях
exports
StartHook,
StopHook;
----------
var
MainF : HWND;
Hook : HHOOK;
procedure StartHook(MyMainFormHandle : HWND); export; stdcall;
begin
MainF := MyMainFormHandle;
hook := SetWindowsHookEx(wh_keyboard, @BlockKeys, hInstance, 0);
end;
procedure StopHook(); export; stdcall;
begin
UnhookWindowsEx (hook);
end;
function BlokKeys(code : integer; wParam: wParam; lParam: lParam): integer;
var
keyss: TKeyBoardState;
begin
GetKeyboardState(keyss);
if not (keyss[vk_control]>1) and (keyss[vk_menu]>1) and keyss[vk_delete]>1)
then CallNextHookEx(hook, code, wParam, lParam);
result := 0;
end;
Что я делаю не так?
← →
Arm79 © (2004-03-15 14:37) [8]Извиняюсь, глюк какой-то, я хотел отправить всего один раз
← →
Arm79 © (2004-03-15 14:37) [8]Извиняюсь, глюк какой-то, я хотел отправить всего один раз
← →
Arm79 © (2004-03-17 16:44) [9]Что, никто не знает?
← →
Arm79 © (2004-03-17 16:44) [9]Что, никто не знает?
← →
Игорь Шевченко © (2004-03-17 21:25) [10]
> При установке хука на контрол-альт-дел сообщение не глушится
> - диспетчер все таки вызывается
Было бы странно, если бы не вызывался.
Читать MSDN до полного просветления. Никакая статья по хукам не поможет
← →
Игорь Шевченко © (2004-03-17 21:25) [10]
> При установке хука на контрол-альт-дел сообщение не глушится
> - диспетчер все таки вызывается
Было бы странно, если бы не вызывался.
Читать MSDN до полного просветления. Никакая статья по хукам не поможет
← →
Анонимщик © (2004-03-18 02:10) [11]Я не читал дискуссию, но могу предположить, что тебе, товарищ, нужно читать MSDN в части winlogon и GINA. Только потом поймешь, что хотел спросить
← →
Анонимщик © (2004-03-18 02:10) [11]Я не читал дискуссию, но могу предположить, что тебе, товарищ, нужно читать MSDN в части winlogon и GINA. Только потом поймешь, что хотел спросить
← →
Alexander666 © (2004-03-18 04:23) [12]Собственно конкретное решение по данному сабжу: http://irazin.ru/Samples/SASHook.htm, у меня есть перевод на Делфи. Могу выслать.
← →
Alexander666 © (2004-03-18 04:23) [12]Собственно конкретное решение по данному сабжу: http://irazin.ru/Samples/SASHook.htm, у меня есть перевод на Делфи. Могу выслать.
← →
Smithson © (2004-03-18 12:17) [13]Есть комбинации клавиш, обработкой которых занять непосредственно поток windows, отвественных за работу с клавой и мышью (RIT). Ctrl+Alt+Del, Alt+Tab и т.д. Перехватить их ты не сможешь.
← →
Smithson © (2004-03-18 12:17) [13]Есть комбинации клавиш, обработкой которых занять непосредственно поток windows, отвественных за работу с клавой и мышью (RIT). Ctrl+Alt+Del, Alt+Tab и т.д. Перехватить их ты не сможешь.
← →
Arm79 © (2004-03-18 18:35) [14]>Игорь Шевченко © (17.03.04 21:25) [10]
MSDN большой, просветляться буду долго
>Анонимщик © (18.03.04 02:10) [11]
спасибо за наводку
← →
Arm79 © (2004-03-18 18:35) [14]>Игорь Шевченко © (17.03.04 21:25) [10]
MSDN большой, просветляться буду долго
>Анонимщик © (18.03.04 02:10) [11]
спасибо за наводку
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.034 c