我正在尝试在这里满足客户的请求,但我不完全确定我是否真的可以做到。我有一个 MFC 应用程序,它依赖 ShellExecute 在相应的查看器中打开文件,如果您尝试一个接一个地打开多个文件,它会生成多个查看器。如果您打开一个 .txt 文档,然后打开另一个,则会按预期显示两份记事本拷贝。
客户希望我们更改此功能(Windows 的功能),以便仅将文件位置传递给可能已打开的任何查看器。单击的第一个图像应打开图像查看器,但任何其他图像都应在现有进程中打开。
这种应用程序间控制/通信可能吗?我通常可以将文件“传递”到现有进程吗?我想我不能。使用文件作为参数执行程序是一回事,但将文件传递给正在运行的进程则完全是另一回事。我不确定您是否可以普遍做到这一点,我认为 Windows API 中没有这种功能。
不过,我可能是错的。
最佳答案
如果查看器不支持在同一实例中打开多个文件,则这是不可能的。
在您的示例中:记事本将启动每个文件的新版本,而 Notepad++(免费编辑器)将在新选项卡中的同一实例中打开。
关于c++ - 使用 Win32/MFC 将文件位置传递给外部进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238713/