通过写自己程序向别人的exe中添加子菜单!!!已经搜索论坛未解决 
别 人 的 程 序 aaa.exe 已 经 有 菜 单 若 干。
我 现 在 如 何 通 过 我 写 的 123.exe 向 aaa.exe 添 加 一 个 菜 单 项 ,并 实 现 去 调 用 aaa.exe 中 另 外 的 窗 体 frm_bbb 显 示 出 来 .
论 坛 我 搜 了 很 多 遍 了 ,还 是 没 有 发 现 有 详 细 的 介 绍 。有 高 人 愿 意 提 供 一 段 实 现 的 例 子 代 码 吗 ? 感 激 不 尽 啊 ! ---------------------------------------------------------------
晕死,上面的文字居然说有带来伤害言论!
“实心五角星”符号居然说是伤害言论,不知道伤害在那里了

解决方案 »

  1.   

    打开一个记事本,运行下面的代码,看看菜单的变化。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      h,m,s:hwnd;
    begin
      h:=FindWindow('notepad',nil);
       if h<>0 then
       begin
         m:=GetMenu(h);
         s:=GetSubMenu(m,1);
       end;
      AppendMenu(s,MF_STRING,7890,'aaaaaa');
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      h,m,s:hwnd;
    begin
      h:=FindWindow('notepad',nil);
       if h<>0 then
       begin
         m:=GetMenu(h);
         s:=GetSubMenu(m,1);
       end;
      AppendMenu(m,MF_STRING,6789,'bbbbbb');
      AppendMenu(s,MF_STRING,7890,'aaaaaa');
    end;
      

  3.   

    怎么给新添加的菜单指定点击事件呢?
    这个事件的代码又如何写呢?
    ————————————————————
    xixuemao(俺可是㊣②㈧经儿滴人):
    你已经帮助我好几回了,真的很感谢你啊!
      

  4.   

    呵呵,添加、移除其他应用程序的菜单很容易。如果想添加处理程序必须在应用程序的窗口过程中对消息进行处理。如果是自己的程序呢很容易实现,可以根据你添加的菜单id也就是那个6789、7890两个id值来判断,从而进行处理。但如果是其他应用程序的窗口过程,这个....暂时没想出来-_-!~  8好意思啦!呼~~~
      

  5.   

    DLL注入是什么意思?该怎么实现呢?那里可以下载到例子
      

  6.   

    h:=FindWindow('notepad',nil);
    参数写反了,应该写成
    h:=FindWindow(nil,'notepad');
      

  7.   

    AppendMenu(m,MF_STRING,6789,'bbbbbb');
      AppendMenu(s,MF_STRING,7890,'aaaaaa');
    应该写在if里面
    呵呵