网站首页 > 基础教程 正文
上一篇有写利用HOOK来做的一个键盘记录器,这次我们来做一个改键功能。
这个功能有什么用呢?打个比方,假如我键盘某个键坏了,比如回车键(这个键很重要),在没有备用键盘的情况下我们就可以用此功能来暂时顶替下;当然也可以做连击(摁一次等于摁10次)、组合键(只摁A键就实现ABC三个键全摁)或者快捷键之类的功能。
键盘HOOK工具类在这里就不写了,在上一篇已经写过了,没有做任何改动;这里写下调用的过程。
实现功能:
C# 实现键盘改键功能,Shift键当Enter键使用
开发环境:
开发工具: Visual Studio 2013
.NET Framework版本:4.5
实现代码:
HookUtil keyHook = new HookUtil();
private Keys key_old;
private void btn_save_Click(object sender, EventArgs e)
{
keyHook.NoNextKeyCode = key_old;
keyHook.KeyDownEvent += new KeyEventHandler((s, e1) =>
{
if (ConvertKeys(e1.KeyCode) == key_old)
{
SendKeys.Send("{" + textBox2.Text.ToUpper() + "}");
}
});
keyHook.StartHook();
MessageBox.Show("改键成功");
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
key_old = e.KeyCode;
textBox1.Text = e.KeyCode.ToString();
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
textBox2.Text = e.KeyCode.ToString().Replace("Return", "Enter");
}
private Keys ConvertKeys(Keys key)
{
switch (key)
{
case Keys.RShiftKey:
case Keys.LShiftKey:
key = Keys.ShiftKey;
break;
}
return key;
}
实现效果:
可能不太能看到效果哈,因为键盘是我自己摁的,你也不知道我摁了那个(但我点完改键后确实是摁的Shift,然后换行了),有兴趣可以自己试试看。
由简入繁,拿来即用
更多精彩,请持续关注
V:Csharp 小记
猜你喜欢
- 2024-12-02 C++中的struct完全可以被class替代,为什么不删去它呢?
- 2024-12-02 C#笔记~泛型
- 2024-12-02 C# 中 IsNullOrEmpty 和 IsNullOrWhiteSpace 你用对了吗?
- 2024-12-02 C#面试宝典 2022年 60个常见的C#面试问题和答案
- 2024-12-02 C#学习随笔—操作BIN文件(读,写,替代)
- 2024-12-02 C# 入门深度学习:万字长文讲解微积分和梯度下降
- 2024-12-02 344.C# 中的正则表达式:字符匹配、字面字符、特殊字符和转义序列
- 2024-12-02 C#通过二进制读写实现文件的伪加密
- 2024-12-02 C#移除字符串中的不可见Unicode字符
- 2024-12-02 使用 C# 解析月份简写的时间日期格式
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)