Articles of 文件关联

使用Java 1.5打开文件的跨平台方法

我正在使用Java 1.5,我想启动关联的应用程序来打开文件。 我知道Java 1.6引入了桌面API ,但是我需要Java 1.5的解决scheme。 到目前为止,我在Windows中find了一个方法: Runtime.getRuntime().exec(new String[]{ "rundll32", "url.dll,FileProtocolHandler", fileName }); 是否有跨平台的方式来做到这一点? 或者至less有一个类似的Linux解决scheme?

如何将应用程序设置为以编程方式打开某种types的文件的默认程序?

有一个从我的程序在MFC中生成的可执行文件,我想用它作为打开.jpg文件的默认程序。 也就是说,每次我双击一个.jpg文件,我的程序就会运行。 我尝试添加一些连接.jpg文件与我的程序,如HKEY_CLASSES_ROOT\.jpg\shell\open\command (将其值设置为"myProgram.exe" "%1" )和HKEY_CLASSES_ROOT\myProgram 。 该方法工作得很好,除非其他应用程序注册自己打开.jpg文件。 例如,我在我的电脑上安装了acdSee,所以每次点击一个.jpg文件时,它总是启动acdSee而不是我自己的程序。 但是当我用我的程序注册一个全新的文件types时,它可以在程序中打开。 我不知道如何设置我的程序作为一个已经注册的文件的默认打开程序以编程方式。 任何人都可以帮我解决这个问题吗? 非常感谢你!

为什么Windows上的virtualenv与virtualenv版本的Python可执行文件关联.py / .pyw / .pyo / .pyc文件?

virtualenv没有将.py(w)文件与virtualenv的Python可执行文件版本关联起来,这是什么原因? 这对于Windows上的virtualenv来说似乎是一个理想的任务,考虑到在Windows上没有像shebang这样的机制。

如何将Python脚本与活动的virtualenv关联?

激活特定的virtualenv后,我想要使用Python脚本,我只使用他们的名字( script.py )运行,使用virtualenv的Python解释器来执行。 这个怎么做? 这是Windows上为什么不把virtualenv与virtualenv版本的Python可执行文件联系起来的.py / .pyw / .pyo / .pyc文件? 题。

将文件扩展名关联到python脚本,以便我可以在Windows中双击打开文件

我想要做到以下几点: 以类似CSV的格式保存数字数据,并带有“.foo”扩展名; 将“.foo”文件扩展名与一些python脚本相关联,这些脚本依次打开.foo文件,读取它的内容,并用绘图库(最可能是matplotlib)绘制一些东西。 用例是:双击该文件,并立即popup相应的图。 我想知道如何编写一个python脚本来做到这一点。 此外,“打开”对话框只允许我select可执行文件(* .exe)。 如果我select“fooOpener.py”,它不起作用。

C ++程序需要一个文件关联

我正在发行一个免费软件产品,用一个独特的扩展名来读写文本文件。 我希望双击这样的文件会自动启动应用程序。 在Windows 7 Professional上开发时,我通过双击打开文件,方法是右键单击文件 – >打开方式…->select默认程序…->浏览…,然后“总是使用选定的程序来打开这种types的文件。” 好。 它只是做了它需要的。 我准备发布我的程序,并提供给用户相同的说明。 但是,当我移动二进制文件的位置时,我看到“总是使用”现在变成灰色/不敏感,所以虽然我可以浏览到新的二进制文件,但我不能将其设置为默认值。 由于我认为我的用户也会遇到麻烦,所以我想看看是否可以安装或运行程序来处理映射。 我看了Windows安装程序大约5分钟,然后确定它比我需要更多的权力和复杂性(为了我的需要,一个zip文件将是足够的,除了这个文件映射。 所以我看了一下,让我的程序在启动的时候,如果已经不存在的话,就build立映射本身。 (我知道如果我们谈论的是一个普通的文件types,如.html或.jpg,这将是非常糟糕的行为,但在这种情况下,它的一些.blahblah扩展肯定没有其他人使用任何东西。) 基于http://www.cplusplus.com/forum/windows/26987/和http://msdn.microsoft.com/en-us/library/cc144148(v=vs.85).aspx上的信息,我可以让我的程序在启动时打开HKEY_CLASSES_ROOT \ .blahblah,并确认(并在需要时更改)默认文本是对文件的精确描述(replace一些文本,这些文本可能在我手动关联时默认创build夏季)。 但是,当创buildHKEY_CLASSES_ROOT \ firm.app.1 \ shell \ open \ command时,我的RegCreateKeyEx()包装程序正常工作以更改\ .blahblah的值,现在给出返回代码5,显然是缺less权限。 在进一步的研究看来,权限模型可能会导致所有这样的请求失败。 任何人都可以证实或否认这一点? 如果确认,是否有一个很好的参考我应该研究这个问题? 否则,有什么build议? 我应该咬紧牙关学习Windows Installer吗? 还是有办法获得我自己的软件第一次启动时需要编辑registry的权限? 注意我正在使用Windows 7 Professional上的Visual Studio 2008进行开发,尽pipe仍然是一个业余的Windows程序员,但自80年代以来,我一直在从事Unix / Linux的C ++工作。

C ++:如何正确地注册和注销我们的应用程序的文件types关联(编程)

时间是你在下面设置文件关联的时候: HEY_CLASSES_ROOT \ <分机> 但是,这似乎是可能的,但不完整的解决scheme了。 整个registry中还有其他关联。 例如: HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ KindMap HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Extensions 以上所有内容都是由HKEY_USERS \ 微软添加了他们的设置默认关联控制面板小程序,它控制着什么? 我正在寻找一个白皮书,或讨论: “用C / C ++编写的现代Windows XP-Windows 7兼容应用程序如何在不干扰资源pipe理器,用户设置或默认关联cpl的情况下注册和操作其文件关联” 编辑:我想在这里进一步调查与更多的问题: 如何从Windows卸载时从其他用户帐户删除ProgIDs?

Windows:更改与文件types关联的应用程序的名称/图标

我想将Windows中的文件types与特定的应用程序关联起来,但是当用户打开“打开方式”菜单时,需要将该文件types与列表中的应用程序的名称和图标进行自定义即不是简单的可执行文件的名称和图标)。 这是因为二进制文件是一个普通的二进制文件,它运行许多不同的应用程序,具体取决于它的命令行参数(类似于python.exe或javaws.exe )。 我不希望“Open With”菜单显示“Python”或“Java”,我希望它显示在命令行上传递的应用程序的名称和图标。 我知道如何添加文件关联(通过在HKEY_CLASSES_ROOT创buildProgID ,并将ProgID名称添加到OpenWithProgids或HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts ),但我找不到任何方法来更改名称或应用程序的图标显示在“打开方式”菜单中,以显示该types的文件。 这可能吗? ( 编辑澄清我对添加文件关联的现有理解。)

Windows不会将命令行parameter passing给从shell执行的Python程序

如果我试图直接从Windows命令行执行它们作为可执行命令,那么我无法获得传递给Python程序的命令行参数。 例如,如果我有这个程序(test.py): import sys print "Args: %r" % sys.argv[1:] 并执行: >test foo Args: [] 相比于: >python test.py foo Args: ['foo'] 我的configuration有: PATH=…;C:\python25;… PATHEXT=…;.PY;…. >assoc .py .py=Python.File >ftype | grep Python Python.CompiledFile="C:\Python25\python.exe" "%1" %* Python.File="C:\Python25\python.exe" "%1" %* Python.NoConFile="C:\Python25\pythonw.exe" "%1" %*

如何使用Delphi获取与文件扩展名关联的程序的名称?

我需要获取当前与当前用户的文件扩展名关联的程序的名称。 如果你右键点击一个文件并select属性,那么我需要的是“Opens with”行右边的程序名。 例如,对于“.xls”,我希望能够得到答案“Microsoft Office Excel”,或用户使用其默认程序打开.xls文件的任何程序。 我已经确定它不像进入HKEY_CLASSES_ROOT并挑选它,因为它也可以在HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER或HKEY_USERS中指定。 也许我需要知道的是Windows使用的啄食顺序来确定这个以及如何到达每个位置。 当然,一个Windows API调用来做到这一点是理想的。 这是一个类似的问题: 如何从文件扩展名使用Delphi获取图标和描述? 但是这个问题只回答了如何得到相关程序的扩展名和图标的描述。 我无法find一种方法来扩展,以获得相关的程序的名称。 我使用的是Delphi 2009,需要一个适用于Windows XP,Vista和7的解决scheme。 谢谢大家的答案。 看来我相信,可执行文件的名字毕竟不在registry中。 而广泛的四处寻找一个Windows API的名称,我找不到。 我认为Mef的答案是最好的。 从程序可执行文件中包含的信息中获取可执行文件的名称。