rt

解决方案 »

  1.   

    if (Msg.Message=WM_KEYDOWN)and(GetKeyState(vk_Control)<0)
    看Ctrl是否按下,Shift,Alt 也同!
      

  2.   

    帅哥,是在hookproc里面阿!
    哪来的msg.message??
    只有wparam和lparam阿!
      

  3.   

    另外,hookproc的第一个参数int ncode起什么作用?
    是不是跟hhook一一对应的?
      

  4.   

    通过wparam 和lparam能判断 
    用getkeystate也可以
    通过wparam 和lparam判断的方法到msdn里查 WM_KEYDOWN
      

  5.   

    if key in[vk_shift,vkconttrol,vk_menu] then
    begin
    .....
    end
      

  6.   

    function KeyBoardProc(...): Integer; stdcall
    var
      State: TShiftState;
    begin
      ...
      State := KeyDataToShiftState(lParam);
      if ssCtrl in State then
        ...
      if ssAlt in State then
        ...
      ...
    end;
      

  7.   

    function KeyBoardProc(...): Integer; stdcall
    var
      State: TShiftState;
    begin
      ...
      State := KeyDataToShiftState(lParam);
      if ssCtrl in State then
        ...
      if ssAlt in State then
        ...
      ...
    end;
      

  8.   

    按我说的去做  其中key是形参的一员   如果要实现对每个键判断在【】内你可做出选择去掉其他两个  我试过管用
      

  9.   

    楼上的,他是说Hook,你说的是哪个事件吧?
      

  10.   

    是Forms.pas单元里面的东东,其实就是GetKeyState