都搞掂啦!!再请教xianjun老大一个问题,win+M不是可以来回用吗?我这怎么只会跑,回不来呢?? (50分)

  • 主题发起人 主题发起人 yxjdelphi
  • 开始时间 开始时间
Y

yxjdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我想Win+M后(最小化所有窗口后), zi自己留着.下面怎么不行呢??
procedure TForm1.Label3Click(Sender: TObject);
begin
//hwdtemp:=application.handle;
keybd_event(91, MapVirtualKey( 91, 0 ), 0 , 0 );
// win 键按下
keybd_event(77, MapVirtualKey( 77, 0 ), 0 , 0 );
// M 键按下
keybd_event(77, MapVirtualKey( 77, 0 ), KEYEVENTF_KEYUP , 0 );
// M 键抬起
keybd_event(91, MapVirtualKey( 91, 0 ), KEYEVENTF_KEYUP , 0 );
// win 键抬起
// sendmessage(hwdtemp,WM_SYSCOMMAND,SC_RESTORE,0);///<---------not work???
ShowWindow(form1.handle, SW_restore);
///<--------------------not work???
end;

都搞掂啦!!再请教xianjun老大一个问题,win+M不是可以来回用吗?我这怎么只会跑,回不来呢??
 
我一点,都砲啦,这家伙也不回来,是其它的问题?
 
var
B: Cardinal;
begin
keybd_event(91, MapVirtualKey( 91, 0 ), 0 , 0 );
// win 键按下
keybd_event(77, MapVirtualKey( 77, 0 ), 0 , 0 );
// M 键按下
keybd_event(77, MapVirtualKey( 77, 0 ), KEYEVENTF_KEYUP , 0 );
// M 键抬起
keybd_event(91, MapVirtualKey( 91, 0 ), KEYEVENTF_KEYUP , 0 );
// win 键抬起
B := GetTickCount;
repeat
Application.ProcessMessages;
until GetTickCount - B > 50;
PostMessage(Handle, WM_SYSCOMMAND, SC_RESTORE, MAKEWORD(Width, Height));
 
http://www.delphibbs.com/delphibbs/dispq.asp?LID=1105212
100块大洋等你
 
一时半会我还搞不明,稍后给分,见凉为盼!
 
to xianjun
这一句中until GetTickCount - B > 50;
为什么是>50?
 
b是没什么意思,我用,
// sendmessage(hwdtemp,WM_SYSCOMMAND,SC_RESTORE,0);///<---------not work???
ShowWindow(form1.handle, SW_restore);
///<--------------------not work???
要改到1000,h还不爽,我用post 试试!

 
偶的机器慢,:(
 
xianjun老大再看看这贴!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
都搞掂啦!!再请教xianjun老大一个问题,win+M不是可以来回用吗?我这怎么只会跑,回不来呢??
 
50是我机上的测试数据
要延时50毫秒才有效
WIN+M是可以来回用的吗? 我的2000下不能来回用,只能最小化。
 
2000的帮助上说是可以来回用的
WIN +M: Minimize or restore all windows.
但我机上只能最小化,不能回复,我说的是用键盘按
 
注意windows中shift的功能,通常是反的。
比如:tab,反之就是shift-tab,
空格(IE中下滚),反之就是shift-空格,
所以:win+m,反之就是win-shift-m
 
CathyEagle说得没错
微软没在文档中说明
有一个例外,就是WIN+D,它是不用加SHIFT, 没想到WIN+M却要加
 
谢各位,明白啦
 
后退
顶部