我根据文档类型方法将特殊文件类型与我的应用程序相关联,请参阅如何将文件类型与iPhone应用程序相关联?.但是,当我更改应用程序并再次安装它时,它可以工作.当我双击文档时,它似乎仍然触发了旧文件!怎么改变这个?
我有一个 JavaFX 桌面应用程序。
该应用程序将数据保存在“自定义”文件(“.ppz”)中。在我的应用程序中,我可以浏览文件并选择我想要打开的 .ppz。
我使用 javafx-maven-plugin 和 Inno Setup(带有 .iss 文件)为 Windows 和文件关联创建 .exe 安装程序。一切工作正常:安装程序完成他的工作,我的应用程序正在运行,并且我创建了一个工作的文件关联(使用自定义图标和所有内容)。
但现在,当我双击“.ppz”文件时,我的 JavaFX 应用程序正在运行。我想打开选定的文件(例如:单击 .doc 将打开 MS Word 和正确的文件)。
有什么建议么?
我的清单:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="*" android:pathPattern=".*mht" />
<data android:scheme="https" android:host="*" android:pathPattern=".*mht" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="message/rfc822" android:scheme="http" />
<data android:mimeType="multipart/related" android:scheme="http" />
<data android:mimeType="message/rfc822" android:scheme="https" />
<data android:mimeType="multipart/related" android:scheme="https" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
结果:
很好奇,不是吗?我在这做错了什么?同样奇怪 - 我的清单:
<intent-filter
android:icon='@drawable/ic_launcher'
android:label='AndroidMHT File'
android:priority='1'>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data …Run Code Online (Sandbox Code Playgroud) 通常在Obj C中,NSApplicationDelegate处理此问题.但是我怎么用C做呢?我想我要问的是,在OS/X出现之前,Mac程序是如何做到的?谢谢.
我正在 vb.net 中创建一个程序,我想将我的应用程序设置为给定文件扩展名的默认应用程序 - 例如,.txt.
我怎样才能做到这一点?
给定一个文件扩展名,我如何查询以查看是否注册了任何程序来处理特定的 ShellExecute 动词("print"在我的例子中),而不实际调用所述动词?
我有一个程序,在使用过程中创建某些保存文件.从技术上讲,它们是XML文件,但我不想使用.xml扩展名,因为我将修改shell,以便在资源管理器中双击文件时打开我的程序.
对于我可以有效"发明"哪些文件扩展名有什么指导吗?我在任何地方都找不到任何官方指南.
我想用,.senx但我不知道这样做是否安全?
我想将我的应用程序设置为在 Windows 中具有文件关联(额外的复杂性:文件扩展名可能与其他一些不相关的应用程序冲突)。处理这种情况的最佳方法是什么?用户很可能不会同时拥有这两者,但如果两者兼得,最好的处理方法是什么?
我一直在网上搜索 stackoverflow 和其他各种网站,并且对如何做到这一点有一个基本的想法(我已经尝试过,并且它有效),但找不到关于如何最好地完成此操作的明确参考。
一些参考文献说将条目放入注册表中的 HKEY_CLASSES_ROOT 中。有人说不要这样做,而是将其放入 HKEY_LOCAL_MACHINE\Software\Classes 中。
应用程序是否还需要在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths 或 HKEY_CLASSES_ROOT\Applications 下注册(参考上面关于 HKEY_CLASSES_ROOT 与 HKEY_LOCAL_MACHINE\Software\Classes 的讨论,这在技术上是否是正确的位置)?
我还看到一些页面建议设置“CurVer”和“OpenWithProgids”,但我不确定它们有何帮助。
我发现我可以创建
HKEY_LOCAL_MACHINE\Software\Classes.aaa(默认)AAAapp
HKEY_LOCAL_MACHINE\Software\Classes\AAAapp(默认) AAAapp DefaultIcon "%mypath%\to\AAAappIcon.ico" shell\open\command "%mypath%\to\AAAapp.exe" "%1"
它有效。我没有创建应用程序路径或应用程序注册表项,因此这些项似乎不会影响此问题。此外,上面似乎没有提供很好地处理系统上已存在“.aaa”文件扩展名关联的情况。
任何指导表示赞赏!