例如,我已经成功开发并部署了ClickOnce应用程序,该应用程序注册了相关的文件扩展名*.abc.当我单击命名文件x.abc或x.abc从命令提示符处键入时,ClickOnce应用程序启动,我可以通过专用API检索文件.我还可以使用以下代码以编程方式启动应用程序:
System.Diagnostics.Process.Start ("x.abc");
Run Code Online (Sandbox Code Playgroud)
我的Windows Vista 64位盒上的一切正常.
但是,如果我尝试在Windows 7(也是64位)上做同样的事情,我有一个非常奇怪的问题.这是我观察到的:
x.abc从资源管理器中双击手动启动.x.abc从命令提示符手动启动工作.Process.Start("x.abc")没有启动申请; 但是,返回的进程对象显示没有错误,并且ClickOnce应用程序以某种方式立即退出.但即使是Trace在ClickOnce应用程序的最开始,也永远不会到达.Process.Start("x.bat")的文件也无法启动ClickOnce应用程序!同样从Explorer工作开始(当然).x.batx.abcx.bat试图分析发生的事情ProcMon并不是很有帮助,因为从我的观点来看,启动应用程序的ClickOnce过程非常难以遵循.我观察rundll32到上班,但没有任何失败的证据.
正在执行的程序Process.Start是一个完全信任的控制台应用程序,真的没什么特别的.
我无法看到在Windows 7上处理ClickOnce应用程序的方式发生了哪些变化,为什么Process.Start与从Explorer中启动文件完全相同.值得一提的是,使用该Start方法的更高级版本ProcessStartInfo并设置UseShellExecute为true无效.
开始cmd使用Process.Start,然后尝试推出x.abc正好显示了同样的问题.如果我将环境设置与cmd手动启动进行比较,我会看到如何ProgramFiles定义的差异(第一个指向C:\Program Files (x86)而第二个指向C:\Program Files).从我的.NET应用程序启动的应用程序是在32位仿真层(SysWoW64)上启动的.
我能够x.abc通过启动32位版本的命令提示符(即,%windir%\SysWoW64\cmd.exe)然后x.abc在提示符下键入来重现启动失败.我还发现了一个丑陋的解决方法,即通过启动%windir%\Sysnative\cmd.exe /C x.abc而不是从32位环境启动64位命令提示符x.abc. …
我正在尝试让我的程序自动关联某些文件扩展名,但是我不确定如何在MacOSX中执行此操作.我不是问如何将程序与GUI中的文件扩展名相关联,我希望能够将它编程到我的程序中.
我有一个.envDEV用于开发环境变量的文件名。
并且 VSCode 不将其识别为dotenv文件。
如果我更改文件的语言模式,它似乎可以工作(应用正确的样式,但图标不会改变)。但每当我关闭并重新打开文件时它就会消失。
我正在尝试为此设置自定义文件关联,但到目前为止尚未成功。
seetings.json
"files.associations": {
"*.envDEV": "dotenv" // DOES NOT WORK
"*.envDEV": ".env" // DOES NOT WORK
},
Run Code Online (Sandbox Code Playgroud)
有人知道怎么做这个吗?
file-type environment-variables file-association visual-studio-code dotenv
基本上我有一个TcxGrid,它将列出各种文件名,我想根据文件扩展名给出更多细节,特别是它的描述(例如.PDF它的"Adobe Acrobat文档")和它的相关图标.
我注意到有一个非常类似的问题,但它与C#有关,我想要一些基于Delphi的东西.
关于在哪里查找这种信息的建议是好的,如果有一个类似于上面的C#帖子中提到的类(显然在Delphi中),这将是很好的.
你能动态地将CFBundleDocumentTypes分配给你的Cocoa应用程序吗?运行时的含义可以为我的应用分配更多扩展名来处理.
目前我为我的应用程序设置了一些扩展,以便在Info.plist中使用CFBundleDocumentTypes来处理,但我希望在应用程序执行时(在运行时)执行此操作.基本上我可以让Launch Services知道新的扩展而无需修改Info.plist文件.
谢谢.
我正在使用Java 1.5,我想启动相关的应用程序来打开文件.我知道Java 1.6引入了Desktop API,但我需要一个Java 1.5的解决方案.
到目前为止,我找到了一种在Windows中执行此操作的方法:
Runtime.getRuntime().exec(new String[]{ "rundll32",
"url.dll,FileProtocolHandler", fileName });
Run Code Online (Sandbox Code Playgroud)
有没有跨平台的方式来做到这一点?或者至少是Linux的类似解决方案?
我有一次点击应用程序.
我有一个关联文件,我存储应用程序的数据.
当用户点击其中一个文件时,我希望它打开click-once应用程序并加载文件.
我可以在发布中设置文件关联,正确设置图标和名称.单击该文件将打开该应用程序,但该应用程序似乎没有传递给该文件的路径 - 命令参数为空.
如何获取它以便将文件的路径传递给应用程序?
我在应用程序包中有一个Java应用程序,我想将文件类型与之关联.
例如,如果有文件
foo.example
当双击该文件或具有.example扩展名的任何文件时,我希望我的应用程序启动并打开该文件.我也希望文件有我的应用程序的图标.
我想通过编辑info.plist文件来做到这一点,但它似乎不起作用.
另外,我的Java应用程序如何知道传递给它的文件?
我想在播放器列表中看到我的应用程序("继续操作使用..."),当我尝试打开音频文件时(即从文件浏览器或gmail附件)弹出.以下是我为MainActivity尝试过的intent过滤器:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MUSIC_PLAYER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.CATEGORY_APP_MUSIC" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="audio/mpeg" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助 !
audio android file-association intentfilter android-manifest
如何使Python脚本成为特定文件类型(例如,*.foo)的默认应用程序?就像我在Finder/Explorer中双击文件一样,我希望在Python脚本中打开文件.
在Win和/或OS X中可以做到这一点吗?该应用程序是一个PySide应用程序,如果这很重要.