2013-05-21 36 views
0

是否有任何命令可以通過該命令找到用戶選擇特定程序(例如Adobe reader/Adob​​e acrobat)作爲默認程序Windows中特定的文件擴展名(例如.pdf)?在Windows操作系統中使用命令行查找與文件(.pdf)相關的默認程序的命令

更具體地:

  • 如果我從文件屬性選擇adobe reader作爲默認PDF viewer
  • 字符串viewer1 = "Command .pdf"(在命令提示運行)
  • 然後我改變從文件屬性→改變默認程序
  • 到Acrobat
  • 字符串viewer2 = "Command .pdf"(在命令提示符下運行)

所以,viewer1!= viewer2

我在Java中擺動工作,所以如果有任何圖書館或辦法找到選擇.pdf文件的默認程序,也願意爲我很有幫助。

是否存在任何註冊表項,它存儲特定文件擴展名(.pdf)的默認程序路徑?

+0

你試圖實現什麼?如果你只是想用默認的應用程序打開一個PDF文件,你可以使用'Desktop#open'方法 – Robin

+0

Buddy,我已經使用過'Desktop.getDesktop()。open(docFile)讀者**它工作不均勻。這就是爲什麼在這裏寫一個問題。找到操作級別的解決方案。 :) – Jaykishan

回答

1

EDITED

好了,所以我錯過了部分在這裏。它由兩個命令組成。

  1. assoc以獲得與擴展名的文件類型關聯,例如, .jpg=jpegimage
  2. ftype獲取默認的處理程序ftype jpegimage

希望有所幫助。我想你可以通過這兩種方式,但我不知道Windows在做什麼。如果你想在一個批處理文件中使用此

for /F "tokens=2 delims==" %a in ('assoc .pdf') do ftype %a 

變化%a%%a

+0

感謝您給出答案,但它爲兩種情況(Befor和更改.pdf文件的默認程序後)返回AcroExch.document。 – Jaykishan

+0

它是我能想到的最好的。我不認爲這裏有任何內置的cmd函數,除非它是powershell的一部分。 – Hanut

+0

我不知道如果一些專家有一些方法!我很多天都在爲它服務 – Jaykishan

1

與給定擴展關聯的默認命令可以這樣確定。

經由文件的屬性相關聯的命令的手動超控,但是,似乎被存儲在其他地方(在Progid值的鍵HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice的是具體的),所以它不會被assoc來檢測。你可以這樣從註冊表中讀取它:

reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice /v Progid 
+0

我在我的PC上安裝了Adobe閱讀器。然後我安裝了Adobe Acrobat。現在我正在更改我的偏好以在Adobe Reader中打開.pdf文件。現在,我使用您的命令,但它向我展示了acrobat的路徑應該返回Adobe Reader的路徑。 :( – Jaykishan

+0

我做了一些進一步的挖掘。查看更新的答案。 –

相關問題