我想获取在Linux和Windows中与文件扩展名相关联的程序。我知道在Linux中可以执行xdg-open,在Windows中可以执行start,但是我要打开远程服务器上的媒体文件,使用这种方法会打开Web浏览器而不是默认的媒体播放器。如何获取扩展名的默认应用程序?
仅涵盖Windows系统:
我认为与.doc(关联winword.exe)相关的步骤将与我刚刚经历的步骤非常接近。
在我的机器上...
步骤1:查看注册表键:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.doc
步骤2:查看默认值(忽略其他所有值)。
我看到的默认值是Word.Document.8
步骤3:现在使用它,并将其插入(请注意下面的键名),以读取默认值
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command
那个值是:"\"C:\Program Files\Microsoft Office XP Pro 2003\OFFICE11\WINWORD.EXE\" /n /dde",
这是至少在XP系统上我的电脑上MS Word的路径。
还注意到,Mikel上面提出的建议,在XP上是正确的。
C:\>assoc .doc
.doc=Word.Document.8
C:\>ftype Word.Document.8
Word.Document.8="C:\Program Files\Microsoft Office XP Pro 2003\OFFICE11\WINWORD.EXE" /n /dde
从第一步开始,默认值没有设置,糟糕的是,这样就失去了简单性。有一个名为“OpenWithProgIDs”的子键,所以如果默认值为空或取决于操作系统版本,则可以查找该子键。
第二步:读取名为“OpenWithProgIDs”的子键。
有一个名为Word.Document.8
的项目,所以现在我们回到了那里。
第三步:再次插入它,以读取默认值。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command
xdg-mime query filetype /tmp/foobar.png
打印文件 /tmp/foobar.png 的 MIME 类型,本例中为 image/png
xdg-mime query default image/png
打印已注册为打开PNG文件的应用程序的.desktop文件名。
在Windows上,如果找不到API,也许可以使用assoc
或ftype
,它们是cmd
的一部分。