gpt4 book ai didi

windows - 如何将多个关联文件传递给一个程序?

转载 作者:可可西里 更新时间:2023-11-01 11:36:52 25 4
gpt4 key购买 nike

我编写了一个 Windows 软件,并为该程序关联了一个文件扩展名。当我双击一个数据文件时,我的程序就会启动并打开该文件。到目前为止它有效。但是当我选择多个文件然后在上下文菜单中单击“打开”时,我的程序的多个实例将启动,一个文件一个实例。我希望 Windows 使用我的程序的单个实例打开所有文件。如果不在我的程序中实现单实例处理程序,这是否可能?

当前注册表中的 MyFileType/shell/open/command 如下所示:

"C:\Program Files\MyApp\MyApp.exe" "%1"

也许我必须使用一些特殊的 token /变量来代替“%1”才能使其正常工作?在 Linux 上,我必须对单个文件使用 %f,对文件列表使用 %F。 Windows 上有类似的东西吗?

最佳答案

最简单的方法是将您的应用程序与文件类型的默认 shell 动词(例如“打开”或“播放”)相关联,并实现使用 SHCreateShellItemArrayFromDataObject 获取所选文件的放置目标。推荐阅读:How the Shell Invokes Verbs

如果您不想接管默认动词,可以将您的动词添加到文件关联的 open with list 中。 .

另一种方法是将您的应用程序设为单例,并通过 DDE 或 RPC 等进程间通信方式将文档的路径发送到第一个实例。这需要您保持主窗口响应(例如,如果您正在显示对话框,则不会工作)

关于windows - 如何将多个关联文件传递给一个程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com