- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下午好,
我需要使用SetWindowsHookEx
锁定CTRL+ALT+DEL组合,今天我已经完成了一个代码,但直到现在才工作。
此代码在注入(inject)其他进程的 dll 中执行(此 dll 是我的软件)。
那么,我如何调整下面的代码才能工作?
const
WH_KEYBOARD_LL = 13;
LLKHF_ALTDOWN = $20;
type
KBDLLHOOKSTRUCT = record
vkCode: DWORD;
scanCode: DWORD;
flags: DWORD;
time: DWORD;
dwExtraInfo: Longint ;
end;
var
hhkLowLevelKybd : HHOOK;
FoldProc : LongInt;
hSASWnd : HWND;
hThread : Cardinal;
{$R *.dfm}
Function LowLevelKeyboardProc(nCode : Integer; wParam : Longint; var LParam: KBDLLHOOKSTRUCT) : Longint; stdcall;
var
fEatKeystroke : Boolean;
dwThreadId : Cardinal;
begin
If (nCode = HC_ACTION) Then
begin
If (wParam = WM_KEYDOWN) Or
(wParam = WM_SYSKEYDOWN) Or
(wParam = WM_KEYUP) Or
(wParam = WM_SYSKEYUP) Then
begin
fEatKeystroke :=
(((GetKeyState(VK_CONTROL) And $8000) <> 0) And
((LParam.flags And LLKHF_ALTDOWN ) <> 0) And
(LParam.vkCode = VK_DELETE));
End;
If fEatKeystroke Then
Result := -1
Else
Result := CallNextHookEx(0, nCode, wParam, LongInt(@LParam));
End;
end;
////////// FormCreate event here ///////////
hhkLowLevelKybd := 0;
hhkLowLevelKybd := SetWindowsHookEx(WH_KEYBOARD_LL, @LowLevelKeyboardProc,
HInstance, 0);
end.
最佳答案
出于安全原因,Windows 不允许您拦截 Ctrl+Alt+Del。早期版本(Vista 之前?)曾经通过替换 GINA DLL 来允许它,但多年来一直不允许这样做。
该组合键被称为 secure attention sequence作为登录过程的一部分,保证是值得信赖的。
如果您的目标是仅允许运行您的应用程序,并且您运行的是合适的 Windows 版本,则可以将其配置为在 kiosk 模式下运行,如 Set up a device for anyone to use (kiosk mode) 中所示。 @LURD 善意提供的 TechNet。
关于delphi - 如何使用 SetWindowHookEx api 锁定 CTRL+ALT+DEL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40567026/
我被这个困住了。我什至无法使用 OutputDebugString 和 debugview 看到调试输出 - 系统只是挂起。 一个问题是:如果我在钩子(Hook)函数中调用 SendMessage()
首先我不确定我这样做是否正确(setSetWindowsHookEx)。我想收到从进程(第三方应用程序)创建的所有窗口的通知,并获取标题以查看它是否是我想做某事的窗口,如果是,则获取他的位置并在其上放
下午好, 我需要使用SetWindowsHookEx锁定CTRL+ALT+DEL组合,今天我已经完成了一个代码,但直到现在才工作。 此代码在注入(inject)其他进程的 dll 中执行(此 dll
首先,我不想监视键盘或鼠标,我只想将我的dll加载到其他进程的地址空间中。我目前正在使用外部非托管 dll 执行此操作,该 dll 执行 WriteProcessMemory、VirtualAlloc
我是一名优秀的程序员,十分优秀!