另外个方法:
function GetShellWindow():HWND; stdcall;
external 'user32.dll'name'GetShellWindow';
然后调用
PostMessageW(GetShellWindow(),$416,0,0);
其实这是Options_RunDLLA 所做的。
你可以看下面
----
.text:7D72AFD8 ; int __stdcall Options_RunDLLA(int,int,LPCSTR lpSrc)
.text:7D72AFD8 public Options_RunDLLA
.text:7D72AFD8 Options_RunDLLA proc near
.text:7D72AFD8
.text:7D72AFD8 lpSrc = dword ptr 10h
.text:7D72AFD8
.text:7D72AFD8 mov edi, edi ; Options_RunDLL
.text:7D72AFDA push ebp
.text:7D72AFDB mov ebp, esp
.text:7D72AFDD push 0 ; lParam
.text:7D72AFDF push [ebp+lpSrc] ; lpSrc
.text:7D72AFE2 call ds:StrToIntA
.text:7D72AFE8 push eax ; wParam
.text:7D72AFE9 push 416h ; Msg
.text:7D72AFEE call ds:GetShellWindow
.text:7D72AFF4 push eax ; hWnd
.text:7D72AFF5 call ds
ostMessageW
.text:7D72AFFB pop ebp
.text:7D72AFFC retn 10h
.text:7D72AFFC Options_RunDLLA endp
----
显示任务栏和[开始]菜单属性就用
PostMessageW(GetShellWindow(),$416,1,0);