c# winform监听快捷键

TerryChin 2015-06-17 11:04:58
我有一个截图的功能,是通过外设设备模仿键盘的快捷键来进行截图的,
但是当我在界面开启输入法打字时,貌似键盘的键值被输入法截掉了,
以至我在winform窗口监听不到键盘的键值,无法处理后续的操作,只有把输入法关了才能进行操作,
各位大侠这个怎么解决?
...全文
554 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2015-06-17
  • 打赏
  • 举报
回复
这得先确定病因,是不是输入法的问题。 换一种输入法,看是不是能够截图,如果可以的,那就是输入法的问题 。
TerryChin 2015-06-17
  • 打赏
  • 举报
回复
有去医院做过B超吧,写报告的和检查的是2个医生, 检查的医生看到病灶的影像就会截图,而写报告的会一直在打字。
於黾 2015-06-17
  • 打赏
  • 举报
回复
其实你的这个问题,不仅是有输入法会出问题 没有输入法一样是存在问题的 就是我敲击一个D,这个D会出现在文本框里,而不是被窗体接收 你之前应该是利用文本框的事件,判断如果接收到的是快捷键的字母,就处理掉,不显示,并且执行截图 但是其实这样也还是有问题的.
於黾 2015-06-17
  • 打赏
  • 举报
回复
我大约能够知道你现在是出了什么问题 你现在的问题是文本框获得了焦点,所以如果有键盘输入,就会给输入法,而不是给窗体 要么你单独弄个没有文本框的窗体来接收脚踏好了
於黾 2015-06-17
  • 打赏
  • 举报
回复
既然脚踏的时候不会去操作电脑,为什么还跟输入法有关系? 不是很理解 除非这边在脚踏,那边还有个人在操作电脑 那么操作冲突的问题就不是软件能够解决的
TerryChin 2015-06-17
  • 打赏
  • 举报
回复
目前也不可能大批量的更换其他方式的脚踏,求教下这个问题能处理吗?
TerryChin 2015-06-17
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
public Bitmap GetScreenBmp(Rectangle rect) { Bitmap screenBmp = new Bitmap(rect.Width, rect.Height); using (Graphics g = Graphics.FromImage(screenBmp)) { g.CopyFromScreen(rect.X, rect.Y, 0, 0, rect.Size); Cursor.Current.Draw(g, new Rectangle(Cursor.Position.X, Cursor.Position.Y, 33, 33)); } return screenBmp; } 这就是截图了 不要什么需求都先想按键精灵那种做法去做
没办法,因为目前是采用脚踏截图,是作业上的需要,脚踏是模仿快捷键的。 我做的是医院方面的软件,医生在做B超检查时不可能还要去电脑那边操作的。
於黾 2015-06-17
  • 打赏
  • 举报
回复
什么模拟鼠标操作,模拟键盘操作 都是很坑爹的做法 在很多情况下都会产生问题的 都是在做按键精灵的思路 如果稍微深入一点了解,那么你就能找到很多更好的办法来做 而不是什么需求都先想模拟用户操作
TerryChin 2015-06-17
  • 打赏
  • 举报
回复
没人吗?自己顶一下。
於黾 2015-06-17
  • 打赏
  • 举报
回复
public Bitmap GetScreenBmp(Rectangle rect) { Bitmap screenBmp = new Bitmap(rect.Width, rect.Height); using (Graphics g = Graphics.FromImage(screenBmp)) { g.CopyFromScreen(rect.X, rect.Y, 0, 0, rect.Size); Cursor.Current.Draw(g, new Rectangle(Cursor.Position.X, Cursor.Position.Y, 33, 33)); } return screenBmp; } 这就是截图了 不要什么需求都先想按键精灵那种做法去做
qbilbo 2015-06-17
  • 打赏
  • 举报
回复
试一下窗体的KeyPreview设置为true是否可行。 不行的话,就只能用APi RegisterHotKey了。 如果用RegisterHotKey又担心热键冲突的问题,那就只好用键盘钩子了。

110,533

社区成员

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

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

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