各位大虾帮帮忙:
  怎样才能在任务栏右键的弹出菜单中加入自己的菜单?或者完全是自己的菜单!

解决方案 »

  1.   

    uses shellapi;
    procedure WMSYSCOMMAND(var msg:tmessage);message WM_SYSCOMMAND;
    //////////////////////
    procedure TForm1.Create(Sender:TObject);
    const menuID=2000;
    var
       myMenu:hMenu;
    begin
       myMenu:=getSystemMenu(application.handle,false);//form1.handle更新form1系统菜单
       AppendMenu(myMenu,menuID,MD_STRING,'my menu');//完全是自己的菜单,时要用DeleteMenu删除所有菜单再AppendMenu;
    end;
    procedure WMSYSCOMMAND(var msg:tmessage);
    begin
            inherited;
      if msg.WParamLo=menuID then
    showmessage('测试');
    end;
      

  2.   

    http://kingron.myetang.com/document/appsysmenu.htm
      

  3.   

    楼上的代码是不行了。
    你可以可以下载以下程序看效果:
    http://www.lkgarden.com/lfpsoft/MyMenu.zip
    如果是你想要的,联系我吧!
    [email protected]
      

  4.   

    to: yang6130(2.5G) 
    你的方法是可以实现我的要求,但是你的事件却不对,它不是响应的任务栏的右键菜单,而是窗体标题栏的右键菜单。各位大虾,能不能帮我解决这个问题?
      

  5.   

    sorry!响应代码错了,应该是:
    procedure TForm1.OnAppMessage(var Msg:TMsg;var Handled:boolean);
    begin
       Handled:=false;
       if Msg.message=WM_SYSCOMMAMD) and (Msg.wParam=menuID) then
       begin
          showMessage('测试');
          Handled:=True;
       end;
    end;
      

  6.   

    to: yang6130(2.5G)
    :(  还是不行。Msg.message=WM_SYSCOMMAMD  这句报错我改成:
    procedure OnAppMessage(var Msg:TMsg); message WM_SYSCOMMAND;//或者wm_appprocedure TForm1.OnAppMessage(var Msg:TMsg);
    begin
          if (Msg.message=WM_SYSCOMMAMD) and (Msg.wParam=menuID) then
       begin
          showMessage('测试');
            end;
    end;
    还是不行,断点根本就进不去。
    真是麻烦你了。
      

  7.   

    TMD,你看了我和lpsoft的回复没有?
      

  8.   

    to: Kingron(单身走我路……) 你那个我看了,好象是不行。我很菜的,看不太懂。lpsoft的只有一个应用程序,并且应该用了第三方控件。不好意思哦!
      

  9.   

    >> 怎样才能在任务栏右键的弹出菜单中加入自己的菜单?或者完全是自己的菜单!
    这个控件就可以让你的任务栏完全是你的自己的菜单阿!
    http://kingron.myetang.com/delphi/taskmenu.pas
      

  10.   

    to:Kingron(单身走我路……) 你的控件不能用,在D5下。
    不过还是谢谢你。
    加菜单用yang6130(2.5G)的方法是可以的,但事件不能响应。
    能不能帮我解决这个问题?不管怎样,我提的问题解决了,不管剩下的问题有没有解决,今天一定结贴。
      

  11.   

    OnAppMessage是响应Application.OnMessage的,我以前做过可以的,你再试一下,实在不行我发一个DEMO给你。
    const 
    menuID=WM_USER + $100;//const menuID=2000;form1.onCreate;
    begin
        ...
        Application.OnMessage:=OnAppMessage;
    end;
      

  12.   

    to  moudy(勇士):
        我真服了你了。你再看看以下程序我是不是用的第三方控件?
        http://www.lkgarden.com/lfpsoft/SysMenu.zip
        今次我可事先说明,这完全是在DELPHI下编译的,绝对没有用到第三方控件。之前那个我就是想说明可以控制显示任何菜单,想不到你以为是用了第三方控件。没带源代码这是因为想要的话可以与我联系!
      

  13.   

    谢谢大家,特别是 yang6130(2.5G) 终于搞定了。这两天没来上网,所以今天才结帖,不好意思哦!