如何在DELPHI中使用WIN键(即Ctrl和Alt之间,按下弹出开始菜单的键)?(100分)

  • 主题发起人 主题发起人 hwave
  • 开始时间 开始时间
??你的意思是怎样将哪个菜单调出来吗?
 
我想他的意思是如何捕获WIN键的消息。在DELPHI的Virtual key codes中好象
没有WIN键.
 
是的,我的意思是如何捕获如何捕获WIN键的消息
 
天啊,终于有人提问这个问题啦!!!!!
这种键好像在Virtual key codes怎么找也找不到啊。
不过你如果想调出“开始“菜单的话,不是非要这个键的啊。因为:
Win键等于Ctrl键+Esc键。哈。。。。。。。
 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = 91 then halt;
end;

Win 的返回值=91
 
楼上的兄弟说的对,win的键值为91,一般键盘有两个这样的键,(一个窗口,一个菜单)
键值分别为91,92
还有种键盘有三个这种按键:键值分别为91,92,93。
呵呵
 
楼上的大侠:怎样能处理 Win+1....Win+F1等组合按键呢?
 
this works for me:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift:
TShiftState);
begin
case Key of
VK_LWIN, VK_RWIN: Keybd_Event(VK_ESCAPE, 0, 0, 0);
end;
end;
 
hwave,你是想模拟win+F1键按下是吗,试试下边代码:

keybd_event(91, MapVirtualKey( 91, 0 ), 0 , 0 ); // win 键按下
keybd_event(77, MapVirtualKey( 110, 0 ), 0 , 0 ); // F1键按下
keybd_event(77, MapVirtualKey( 110, 0 ), KEYEVENTF_KEYUP , 0 ); // F1键抬起
keybd_event(91, MapVirtualKey( 91, 0 ), KEYEVENTF_KEYUP , 0 ); // win 键抬起

对了,我记得好象F1的A码是110,(好象也不是:)),你查一下吧,
 
多人接受答案了。
 
后退
顶部