winform中如何禁止使用按键精灵之类的工具?

zhqrshy 2007-05-18 11:15:54
禁止一切非从键盘、鼠标发出的小气,该如何处理?
使用HOOK能否做到?有知道的人请给代码,谢谢
解决了分数立刻送上
...全文
4839 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhqrshy 2007-05-21
  • 打赏
  • 举报
回复
12246484@qq.com
谢谢……
jimgreat 2007-05-19
  • 打赏
  • 举报
回复
有一底层钩子
WH_KEYBOARD_LL
可以判断键盘消息的来源 如是来源是LLKHF_INJECTED
就说明不是由硬件产生的而是其它的键盘事件
但我在C#不能直接用 可是有因为C#是托管的原因

但我用C++实际了 禁止了"按键精灵"
我写了一个DLL 放到C#中也好用了 别的软件没测试 但"按键精灵"肯定没问题
如果这个解决方案可以
给我你的E-mail 我给你Dll 和Dll的源码


zhqrshy 2007-05-19
  • 打赏
  • 举报
回复
谢谢各位,主要是现在学校里一些中文输入之类的考试,因为文章是公布的,学生都用按键精灵来考试了
FindWindow我也考虑过,但是类似按键精灵的软件挺多,我想最好能有个一劳永逸(起码可以顶的长久点)的方法

ABC从 2007-05-19
  • 打赏
  • 举报
回复
楼上说的对,要看内存,如有按键精灵存在就杀了。
macker0030 2007-05-19
  • 打赏
  • 举报
回复
楼上的代码并不能实现楼主的要求。按键精灵是摸拟键盘鼠标的,摸拟的方式有纯发送消息、API操作键盘鼠标以及硬件摸拟。要禁用,你可以试试在WinForm中直接从DirectInput中读取键鼠操作,不过这样对按键精灵的“硬件摸拟模式”不知道有没有用,我没研究过。

另外,你可以用FindWindow来查找按键精灵的窗口,发现窗口就不Kill掉或者你自己的程序就不运行。不过这种方法按键精灵也有招对付,它的注册版好像有个什么盾功能,可以防止其它程序检测。

总而言之,很难做到完全禁止的。
jimgreat 2007-05-19
  • 打赏
  • 举报
回复

using System.Runtime.InteropServices;

class Win32Hook
{
[DllImport("kernel32")]
public static extern int GetCurrentThreadId();

[DllImport("user32",
CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(
HookType idHook,
HOOKPROC lpfn,
int hmod,
int dwThreadId);

public enum HookType
{
WH_KEYBOARD = 2,
WH_MOUSE = 7
}

public delegate int HOOKPROC(int nCode, int wParam, int lParam);

public void SetHook()
{
//设置鼠标钩子
SetWindowsHookEx(HookType.WH_MOUSE,
new HOOKPROC(this.MouseProc),
0,
GetCurrentThreadId());
//设置键盘钩子
SetWindowsHookEx(HookType.WH_MOUSE,
new HOOKPROC(this.KeyboardProc),
0,
GetCurrentThreadId());
}

public int KeyboardProc(int nCode, int wParam, int lParam)
{
//在这里放置你的处理代码
//不处理就到达了禁止的作用
return 1;
}
public int MouseProc(int nCode, int wParam, int lParam)
{
//在这里放置你的处理代码
//不处理就到达了禁止的作用
return 1;
}
}


可以在Form的构造函数里放入
Win32Hook hook = new Win32Hook();
hook.SetHook();
CathySun118 2007-05-19
  • 打赏
  • 举报
回复
应该可以,没有做过

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧