如何获取Alt,Shift, Ctrl状态(50分)

  • 主题发起人 主题发起人 唐纳王
  • 开始时间 开始时间

唐纳王

Unregistered / Unconfirmed
GUEST, unregistred user!
请教:如何由WM_KEYDOWN消息得到Alt, Shift, Ctrl的状态,如怎样判断是否Ctrl+Shift+'A'?
 
不是有个参数是 shift:TShiftState 是一个集合<br>如果shift是[ssShift,ssAlt]而且key是'A'不就行了吗?<br>再不行就用钩子WM_KEYBOARD截取消息
 
我问的是能否通过WM_KEYDOWN来得到组合键信息?
 
将返回的键码相加
 
如何做?请明示.
 
MSG类型结构有两个参数:WPARAM,LPARAM<br>wParam是虚键码,lParam是指定键盘状态,重复次数等<br>wParam=vk_Shift即可。<br><br>在DEPHI里面,有事件方法:<br>procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;<br>&nbsp; Shift: TShiftState);<br>begin<br>&nbsp; if (Shift=[ssShift]+[ssctrl]) &nbsp;then<br>&nbsp; &nbsp; showmessage('press shift and ctrl !');<br>end;
 
那么Ctrl, Alt呢?<br>我是想将按键信息传递给非活跃的应用程序,以使这些应用程序做出相应的反应.<br>谢谢!
 
[ssCtrl]+[ssAlt]
 
我要传递信息的另一个程序并不是用Delphi开发的,我如何传递标准的Windows消息,使该程序<br>能像接受到键盘按键一样?
 
后退
顶部