Не отключит ctrl+alt+dell если компьютер членствует в доменеDisableTaskMgr
Не отключит ctrl+alt+dell если компьютер членствует в домене[/quote]ANDLL писал(а):DisableTaskMgr
Williams писал(а):Без вариантов? Где можно почитать об этом?
Lunatic писал(а):Тогда может есть какой-то иной способ блокировки. Зарезать прерывания к клаве, снести драйвер, незнаю еще какие-то идеи
iGrok писал(а):Просто в домене по Ctrl-Alt-Delete появляется не диспетчер задач, а окно с немного другим функционалом.
iGrok писал(а):не трогая системные файлы и не прибегая к прочим хакам, на которые матерятся SFC и половина антивирусов никуда не денешь.
Lunatic писал(а):Мучаюсь с блокировкой клавиатуры(с возможностью потом обратно её включать)
Использую BlockInput, но он отключаеться ESC или СTRL+ALT+DEL, отключаю ESC используя SetKeyboardState, но остаёться СTRL+ALT+DEL. Пытался отключить его ключём в реестре DisableTaskMgr, да диспетчер действительно перестаёт выскакывать, но всё равно BlockInput становиться "в позу" false. Также в реестре есть интересный ключик NoWinKeys(Но он работает только после перезагрузки).
Думаю может использовать UnregisterHotKey, но как тогда вернуть всё на своё место?
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Dim kbOld As KeyboardBytes
Private Sub Form_Load()
kbOld.kbByte(16) = 128
kbOld.kbByte(160) = 129
End Sub
Private Sub Timer1_Timer()
SetKeyboardState kbOld
End Sub
--------------------------------------------------------------------------------
TaskKeyHook.h
////////////////////////////////////////////////////////////////
// MSDN Magazine — September 2002
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual Studio 6.0 and Visual Studio .NET on Windows XP.
//
#define DLLIMPORT __declspec(dllimport)
DLLIMPORT BOOL DisableTaskKeys(BOOL bEnable, BOOL bBeep);
DLLIMPORT BOOL AreTaskKeysDisabled();
TaskKeyHook.cpp
////////////////////////////////////////////////////////////////
// MSDN Magazine — September 2002
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual Studio 6.0 and Visual Studio .NET on Windows XP.
//
// This file implements the low-level keyboard hook that traps the task
// keys.
//
#define _WIN32_WINNT 0x0500 // for KBDLLHOOKSTRUCT
#include <afxwin.h> // MFC core and standard components
#define DLLEXPORT __declspec(dllexport)
//////////////////
// App (DLL) object
//
class CTaskKeyHookDll : public CWinApp {
public:
CTaskKeyHookDll() { }
~CTaskKeyHookDll() { }
} MyDll;
////////////////
// The section is SHARED among all instances of this DLL.
// A low-level keyboard hook is always a system-wide hook.
//
#pragma data_seg (".mydata")
HHOOK g_hHookKbdLL = NULL; // hook handle
BOOL g_bBeep = FALSE; // beep on illegal key
#pragma data_seg ()
#pragma comment(linker, "/SECTION:.mydata,RWS") // tell linker: make it
// shared
/////////////////
// Low-level keyboard hook:
// Trap task-switching keys by returning without passing along.
//
LRESULT CALLBACK MyTaskKeyHookLL(int nCode, WPARAM wp, LPARAM lp)
{
KBDLLHOOKSTRUCT *pkh = (KBDLLHOOKSTRUCT *) lp;
if (nCode==HC_ACTION) {
BOOL bCtrlKeyDown =
GetAsyncKeyState(VK_CONTROL)>>((sizeof(SHORT) * 8) - 1);
if ((pkh->vkCode==VK_ESCAPE && bCtrlKeyDown) || // Ctrl+Esc
// Alt+TAB
(pkh->vkCode==VK_TAB && pkh->flags & LLKHF_ALTDOWN) ||
// Alt+Esc
(pkh->vkCode==VK_ESCAPE && pkh->flags & LLKHF_ALTDOWN)||
(pkh->vkCode==VK_LWIN || pkh->vkCode==VK_RWIN)) { // Start Menu
if (g_bBeep && (wp==WM_SYSKEYDOWN||wp==WM_KEYDOWN))
MessageBeep(0); // only beep on downstroke if requested
return 1; // gobble it: go directly to jail, do not pass go
}
}
return CallNextHookEx(g_hHookKbdLL, nCode, wp, lp);
}
//////////////////
// Are task keys disabled—ie, is hook installed?
// Note: This assumes there's no other hook that does the same thing!
//
DLLEXPORT BOOL AreTaskKeysDisabled()
{
return g_hHookKbdLL != NULL;
}
//////////////////
// Disable task keys: install low-level kbd hook.
// Return whether currently disabled or not.
//
DLLEXPORT BOOL DisableTaskKeys(BOOL bDisable, BOOL bBeep)
{
if (bDisable) {
if (!g_hHookKbdLL) {
g_hHookKbdLL = SetWindowsHookEx(WH_KEYBOARD_LL,
MyTaskKeyHookLL, MyDll.m_hInstance, 0);
}
} else if (g_hHookKbdLL != NULL) {
UnhookWindowsHookEx(g_hHookKbdLL);
g_hHookKbdLL = NULL;
}
g_bBeep = bBeep;
return AreTaskKeysDisabled();
}
Private Declare Function WlxLoggedOnSAS Lib "msgina.dll" (pWlxContext As Any, ByVal dwSasType As Long, pReserved As Any) As Long
Public Function DisableClient() As Boolean
Dim hMutex
Dim x As String
x = "_ac952_z_cn_CTRL_ALT_DEL"
hMutex = WlxLoggedOnSAS(0&, False, StrPtr(x))
DisableClient = True
MsgBox "hMutex: " & hMutex
End Function
Const WLX_SAS_TYPE_CTRL_ALT_DEL As Long = 1
hMutex = WlxLoggedOnSAS(0&,WLX_SAS_TYPE_CTRL_ALT_DEL, Null)
Lunatic писал(а):Угадал! Я ничего не понял. Поэтому и прошу чтобы помогли
Ну коль хук на Сtrl+Alt+Del нельзя поставить, может быть его можно поставить на одну из клавишь, или на Ctrl+Alt, тогда ведь комбинация не пройдёт. Или пройдёт?
Lunatic писал(а):Пока розбирался с примером(который оказался весьма полезным, но в другой сфере. *мне сейчас не до троянов, но на полочку его отложу*=)),
Williams писал(а):Lunatic писал(а):Пока розбирался с примером(который оказался весьма полезным, но в другой сфере. *мне сейчас не до троянов, но на полочку его отложу*=)),
Троян который блокирует клавиши, это тупой троян, по-скольку хороший ТРОЯН не должен никак выдавать своего присуствия
awl100Alex писал(а):Lunatic
А что это... у тебя не работает???
Сейчас этот форум просматривают: Yandex-бот и гости: 36