或许应该试试WM_COMMAND、WM_SYSCOMMAND
如果说错别介意,我也是菜鸟。

解决方案 »

  1.   

    什么意思啊,是不是就是打开开始菜单?
    如果只是打开开始菜单的话,可以模拟按键CTRL+ESC呀
      

  2.   

    用findwindow取得任务栏开始按钮的句柄,再发送buttondown消息
      

  3.   

    这是找到开始按钮,并可以隐藏和显示的代码:
    procedure hideStartbutton(visi:boolean);
      Var
        Tray, Child : hWnd;
        C : Array[0..127] of Char;
        S : String;
      Begin
        Tray := FindWindow('Shell_TrayWnd', NIL);
        Child := GetWindow(Tray, GW_CHILD);
        While Child <> 0
              do Begin
                   If GetClassName(Child, C, SizeOf(C)) > 0
                      Then Begin
                             S := StrPAS(C);
                             If UpperCase(S) = 'BUTTON'
                                then begin
                                       // IsWindowVisible(Child)
                                       //startbutton_handle:=child;
                                       If Visi
                                          then ShowWindow(Child, 1)
                                          else ShowWindow(Child, 0);
                                     end;
                           End;
                   Child := GetWindow(Child, GW_HWNDNEXT);
                 End;
    End;因为它只是一个button,所以,你可以这样发消息,模拟鼠标按键:
    SendMessage(FSecondChild,WM_LBUTTONDOWN,NULL,NULL);  //按下
    SendMessage(FSecondChild,WM_LBUTTONUP,NULL,NULL);    //抬起
      

  4.   

    找一下delphi带的win sdk帮助中的mouse_event(),
    兄弟手头没有例子,不过幸好这个函数不复杂,自己试一下。