HotKey.RegisterHotKey ( Handle , 100 ,HldDBLib.HotKey.KeyModifiers.Shift , Keys.I );
Keys.I,这个I是我从配置文件中读出来的,配置文件中是一个字符,请问题如何加入到
( Handle , 100 ,HldDBLib.HotKey.KeyModifiers.Shift , Keys.I )这个参数中!!
先谢谢

解决方案 »

  1.   

    .NET Framework中没有这个类库吧?
    我好像是没用过,是谁提供的类库。应该有相应的转换代码的。
      

  2.   

    从配置文件里面取出的话应该是个字符串,
    string str=config......//取出配置文件的数据
    Keys k=keys.A;
    switch(str)

      case "B":
        k=Keys.B
      ...
      ..
    }
      

  3.   

    朋友你们好,我的意思是,我的快捷键是让用户输入的,象QQ那样可以配置的。
    我的系统在登录时,就去读配置文件,
    //注册热键Shift+S,Id号为100。HotKey.KeyModifiers.Shift也可以直接使用数字4来表示。   
    //HotKey.RegisterHotKey(Handle, 100, HotKey.KeyModifiers.Shift, Keys.S);//class HotKey
        //{
        //    //如果函数执行成功,返回值不为0。        
        //    //如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。        
        //    [DllImport ( "user32.dll" , SetLastError = true )]
        //    public static extern bool RegisterHotKey
        //        ( 
        //        IntPtr hWnd ,   //要定义热键的窗口的句柄 
        //        int id ,        //定义热键ID(不能与其它ID重复)
        //        KeyModifiers fsModifiers ,//标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效 
        //        Keys vk         //定义热键的内容  
        //        );
        //    [DllImport ( "user32.dll" , SetLastError = true )]
        //    public static extern bool UnregisterHotKey
        //        ( 
        //        IntPtr hWnd ,   //要取消热键的窗口的句柄
        //        int id          //要取消热键的ID  
        //        );
        //    //定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)        
        //    [Flags ( )]
        //    public enum KeyModifiers
        //    {
        //        None = 0 ,
        //        Alt = 1 ,
        //        Ctrl = 2 ,
        //        Shift = 4 ,
        //        WindowsKey = 8    //        //MOD_ALT = 0x1, MOD_CONTROL = 0x2,MOD_SHIFT = 0x4,MOD_WIN = 0x8
        //    }
        //}
    如何把字符加入到Keys.(XXX)的(XXX)中。
      

  4.   

    按键都有自己的扫描码 Keys的枚举也只是封装了这些扫描码..
    比如enter是0x13   你把他们的code取出来直接存
      

  5.   

                string ss = "I";
                KeysConverter kc=new KeysConverter();
                Keys k = (Keys)kc.ConvertFromString(ss);   //将字符串转换为Keys
                if (k == Keys.I) MessageBox.Show("OK");  //验证一下,果然可以.
      

  6.   

    RegisterHotKey 后面的参数就直接是scancode