在自己的进程中启动外部exe

Dan*_*iel 2 vb6 winapi executable taskbar windows-7

我有一个VB6可执行文件,我们用作真实程序的Starter可执行文件.

问题是Windows 7在任务栏中为新进程显示一个新图标,而不是我点击启动我的程序的那个(当然,因为启动程序exe已经结束,而新的exe似乎是一个新的程序).

目前我使用Shell对象启动另一个exe.是否有更好的方法从vb6执行此操作,可能通过使用具有声明的本机C函数,该函数在当前进程中启动exe,而不会生成新进程?

编辑:

感谢atzz提供有关应用程序模型ID的重要信息.我现在有一个快捷方式,我的应用程序启动器具有良好定义的ID,我的应用程序也在启动时设置ID,现在可以从工具栏中的右侧图标精美地访问.但是,仍存在两个问题:

  1. 该应用程序是一个以Exe4J开头的Java应用程序,在Exe4J显示启动画面之前我没有任何机会设置AppID,因此在显示启动画面时,任务栏中有第二个图标.

  2. 如果我没有手动将我的入门应用程序图标从桌面拖到工具栏,而是使用我的应用程序图标并将其设置为"粘性",则真正的应用程序会被粘贴,而不是启动器.

如果我的启动器会在自己的进程中启动应用程序,那么这两个问题都会得到很好的解决.我听说过使用exec()而不是fork()来实现Linux程序...是否有类似于Windows的东西?

atz*_*tzz 5

我相信有一种方法可以通过Windows 7任务栏API完成您所需要的工作,但我自己从未这样做过,因此我没有清楚地记得我在这个主题上所阅读的内容.查看Application ID概念.

一些链接: