0

我想在双击文件(.doc;.xls)或快捷方式(.LNK)或exe时像Windows shell一样启动应用程序。然后我想获取已启动应用程序的 pid 和窗口句柄。

目前我正在使用 ShellExecuteEx 为(文件、.lnk 或 .exe)启动相应的应用程序。并从 ShellExecuteEx 返回的句柄中获取 pid。这对于少数应用程序(如 Adob​​eReader、Outlook 等)不起作用,但我试图通过获取“之前运行的应用程序列表”并在调用 ShellExecuteEx 以获取针对此类情况的新启动应用程序后采取差异来处理。

但是,如果应用程序已经在运行(对于打开的 word doc),或者如果应用程序具有选项卡式界面(不一定会产生新进程),当我执行 ShellExecuteEx 时,它只会将该应用程序置于顶部,返回的句柄为 0 ,而且我在 pids 上没有任何区别(因为没有产生新进程)

所以在这种情况下,我无法让应用程序的 pid 或窗口句柄运行。

有人可以建议任何可靠的方法来解决这个问题

提前致谢

4

0 回答 0