我希望在双击文件(.doc; .xls)或快捷方式(.LNK)或exe时,以Windows shell的形式启动应用程序。 然后我想获得已启动应用程序的pid和窗口句柄。
目前我正在使用ShellExecuteEx为(File,.lnk或.exe)启动对应的应用程序。 并从ShellExecuteEx返回的句柄中获取pid。 这对于少数应用程序(如AdobeReader,outlook等)不起作用,但是我试图通过获取“之前运行的应用程序列表”来处理,并在调用ShellExecuteEx以获取针对此类情况的新启动的应用程序之后采取差异。
但是,如果某个应用已经在运行(对于已打开的word文档),或者对于带有选项卡式界面的应用(不一定会产生新进程) 当我执行ShellExecuteEx它只是将该应用程序置于顶部,句柄返回为0, 而且我对pids没有任何区别(因为没有产生新的过程)
因此,在这种情况下,我无法获得正在运行的应用程序的pid或窗口句柄。
有人可以建议任何可靠的方法来解决这个问题
提前致谢