我希望在Linux和Windows中获得与扩展相关联的程序。我知道我可以在Linux中执行xdg-open或在Windows中启动,但我要在远程服务器上打开媒体文件,因此使用此方法将打开Web浏览器,而不是默认的媒体播放器。如何获取扩展的默认应用程序?
答案 0 :(得分:1)
有一个名为xdg-mime的程序,就像xdg-open,但打印信息而不是试图打开文件。
xdg-mime query filetype /tmp/foobar.png
打印文件/tmp/foobar.png的MIME类型,在本例中为image / png
xdg-mime query default image/png
打印已注册的应用程序的.desktop文件名以打开PNG文件。
在Windows上,如果找不到API,可以使用assoc
或ftype
作为cmd
的一部分。
答案 1 :(得分:1)
仅在下面覆盖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”
这就是我系统上MS Word的路径,至少在XP上。
还注意到,关于米克尔上面的建议,那些钉在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
STEP 1的默认值没有设置值,darn,简单了。 有一个名为'OpenWithProgIDs'的子项,所以如果默认值为空或取决于操作系统版本,我想你会找到它。
步骤2:读取名为“OpenWithProgIDs”的子项。
有一个名为Word.Document.8
的项目,所以我们现在回到那里。
步骤3:再次插入,以读取
的默认值HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command
在这种情况下(我的),价值更复杂:
“C:\ Program Files(x86)\ Common Files \ microsoft shared \ virtualization handler \ cvh.exe”“Microsoft Word Starter 2010 9014006604090000”/ n“%1”
在正确的社区,就使用注册表而言。
不幸的是,在Windows 7上,'assoc'和'ftype'至少对.doc和我机器上的winword.exe路径没有做到。