在delphi中如何判断是否按下Ctrl键或Shift键?另外怎么在delphi中调用windows的应用程序?

解决方案 »

  1.   

    您可以在任何时候调用:
    GetKeyState(nVirtualKeyCode);
    来知道任何键的状态:
    返回值是:
    一个short integer, 在Delphi中可以认为是Word;
    如果最高位是1,则表明键是处于按下的状态,
    如果最低位是1,则表示处于激发状态,(例如大小写状态)常用的键的nVirtualKeyCode值是:
    VK_SHIFT: 任何一个Shift键
    VK_LSHIFT: 左边的那个
    VK_RSHIFTVK_CONTROL: 任何一个Ctrl键
    VK_LCONTROL
    VK_RCONTROLVK_MENU: 任何一个Alt键
    VK_LMENU
    VK_RMENU
    检查左边的那个Shift键盘有没有按下:
    if ( (     integer(GetKeyState(VK_LSHIFT))
           and integer($80)
         )
       <>0
       ) then
      Begin
        { Haha, you are pressing the left Shift key, :) }
      End
    else
      Begin
      End;
      

  2.   

    procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if GetKeyState(vk_control) and (key = vk_Left) and
          (PageControl1.TabIndex = 2) then
        begin
          PageControl1.TabIndex:= 1;
        end;      //end if
    end;帮忙看看有问题吗?
    谢谢