Csharp/C#教程:如何禁用user32.dll中的系统热键?分享


如何禁用user32.dll中的系统热键?

如果它是相关的,我用C#编码。

我正在尝试为自助服务终端应用程序禁用系统热键。 此处使用的代码来自: https : //www.codeproject.com/kb/cs/kiosk_cs.aspx?display = print

此个人: 如何在单击鼠标左键时禁用按住Alt键,按住Control键和Shift键,似乎已成功使用此方法在Windows上禁用Alt + F4 。 但是她没有明确指出她使用的Windows版本,而不是说其中一个命令在W8中不起作用。

那些不懂代码的人教程: https : //www.youtube.com/watch?v = qQWqGOaZiFI


我尝试过这个。

RegisterHotKey(this.Handle, int 1, (int)USE_ALT, (int)Keys.F4);

^但仍然失败。

Marshal.GetLastWin32Error().ToString()

当^运行时,它返回错误代码“1400”

枚举错误: https ://msdn.microsoft.com/en-us/library/windows/desktop/ms681385( v = vs.85).aspx。 这表明这是“窗口句柄无效”的结果 。 我不知道为什么这是因为“Alt + F4”关闭当前所选窗口。 我很确定FindWindow(string cls, string wndwText)返回的是什么。

我添加了“SetLastError = true”

[DllImport("user32.dll", SetLastError = true)] private static extern int RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk);

现在,注册“Alt + F4”返回“1409” ,这意味着“热键已经注册” 。 这正是重点。 它已经注册,对于这个自助服务终端应用程序,我需要暂时禁用它。 我对此的研究表明,我需要使用user32.dll来创建钩子。 这正是我正在做或正在尝试做的事情。

我错过了什么吗?

我仍然需要一种可靠的方法来阻止Alt + F4以及其他系统热键。 但是其他热键:CTRL + W,CTRL + N,CTRL + S,CTRL + A,CTRL + C,CTRL + X,CTRL + V,CTRL + B,CTRL + F和CTRL + H已在Windows上成功阻止10和8.1。


有用的信息

上述就是C#学习教程:如何禁用user32.dll中的系统热键?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1030776.html

(0)
上一篇 2022年1月13日
下一篇 2022年1月13日

精彩推荐