如何保存按键? [英] How to save keystroke?

查看:77
本文介绍了如何保存按键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好
我尝试以系统中安装的每种语言保存用户按键.我使用了这段代码,但什么也没显示,我进行了很多搜索,但不幸的是我没有找到任何解决方案.
请任何可以告诉我我的问题的人帮帮我.
我将不胜感激.
我的代码如下:

Hi everyone
I try to save user keystroke in each languages which is installed in the system. I use this code but it shows nothing, I searched a lot but unfortunately I didn''t reach to any solution.
Please any one who can tell me what my problem is, help me out.
I''d appreciate any comment.
My code is as below:

string keyBuffer = string.Empty;
Int32[,] Vkey = new Int32[2,150]
 void ReadfromKeyboard()
 {
const uint MAPVK_VK_TO_VSC_EX = 0x04;
const uint KLF_ACTIVATE = 0x00000001;
   for (int i=0; i<120; i++)
      {
       if(  (Methods.GetAsyncKeyState(Vkey[1,i])== 1) ||      (Methods.GetAsyncKeyState(Vkey[1,i]) == Int16.MinValue))//Vkey is an array which store virtual key code like Vkey[1, 0] = 0x31;
             {
             uint temp =Methods.MapVirtualKeyEx((Convert.ToUInt32(Vkey[1,i])),MAPVK_VK_TO_VSC_EX,Methods.LoadKeyboardLayout(InputLanguage.CurrentInputLanguage.Culture.KeyboardLayoutId.ToString(),KLF_ACTIVATE));
            StringBuilder keyname=new StringBuilder();
            int nsize=50;
            if (Methods.GetKeyNameText(Convert.ToInt32(temp), keyname, nsize) != 0)
                      {
                          keyBuffer += keyname.ToString();
                      }

                }
        }
                if (keyBuffer != string.Empty)
                    textBox1.Text=keyBuffer;
            
  }

推荐答案

YourWindowsFormClassName.KeyPreview = true;


这篇关于如何保存按键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆