在的定义的快捷键中我只想让按F1---F12或按组合键有效.
现在的问题是我在键盘上按了一下"S"键就执行了快捷操作我想将其去掉

解决方案 »

  1.   

    我并没有设置它的快捷键
    其属性为none
      

  2.   

    我查了,
    F3=S=VK_F3=114
    F4=R=VK_F4=115按F3 跟按S键是一样的效果
    按F4 跟按R键是一样的效果如何解决??
     
      

  3.   

    错了,在keydown事件中按s不会捕获大写S的ANSII码114(虽然也许你按着shift),它捕获的仍然是小写s的73,所以你在key=114中处理的是F3的按键消息,并不冲突如果还不清楚,把代码贴出来看看
      

  4.   

    喜欢这样自信人的答复:
    我用到了控件:ApplicationEvents
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    begin
    if Msg.message=WM_KeyDown then
       //F2 给作者写信
       if msg.wParam=vk_f2 then
       begin
          ShellExecute(0,nil,'mailto:[email protected]','','',SW_NORMAL);
       end;   //F3网上留言   F3=S=VK_F3=114 晕
       //if (msg.wParam=VK_F3) and (msg.wParam<>114) then
      // if msg.wParam=VK_F3 then
       //begin
      //    shellexecute(handle,nil,'http://www.Csina.com.cn/smlyb/write.asp',nil,nil,sw_normal);
     //  end;   //F4技术支持    F4 =R =vk_f4=115 晕
      // if  msg.wParam=vk_f4 then
     //  begin  //   shellexecute(handle,nil,'http://www.Csina.com.cn',nil,nil,sw_normal);
       //end;end;
      

  5.   

    TO:: hellolongbin(一个人[.net学习中……]) 
    有何高招??跟大家共享吧
      

  6.   

    对不起回了以后忘了继续关注这个贴子
    还是我上面说的,不论114还是vkf3都是F3键而不会是s键,而且你的f3如果是s的话那为什么f2没有触发r呢?
    你可以新建一个工程,放一个ApplicationEvents控件,然后
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    begin
        if Msg.message=WM_KeyDown then
        begin
            if msg.wParam=113 then ShowMessage('f2')
            else if msg.wParam=vk_f3  then ShowMessage('f3');
        end;
    end;
    试试
      

  7.   

    上面的话有几处ASCII码错误
    R:82
    S:83
    r:114
    s:115
    不过不影响阅读
      

  8.   

    我单步跟踪程序到
    if msg.wParam=vk_f3 
    结果发现vk_f3 的值跟小写的s的值同是114所以就发生了这样的事