Ассоциация типов файлов C # - PullRequest
1 голос
/ 31 мая 2011

Как программно добавить приложение в меню «Открыть с помощью» для файла данного типа?

например. Я сделал простой просмотрщик текстовых файлов, я сделал проект установки для того же, Я хочу связать средство просмотра текстовых файлов со всеми файлами .txt в системе, Когда пользователь дважды щелкает любой файл .txt, мое приложение должно открываться.

Открыть с помощью меню http://i4.photoblog.com/photos/27294-1306838510-0.jpg

Ответы [ 3 ]

2 голосов
/ 31 мая 2011

Вы можете использовать этот класс для этого: http://www.mentalis.org/soft/class.qpx?id=5

1 голос
/ 31 мая 2011

Вот один из способов (в VB), как это сделать.ApplicationTag - это короткое имя для реестра, например editor3.1.Вы можете проверить реестр с помощью regedit, чтобы увидеть, что происходит, и вы можете создать точку восстановления, прежде чем тестировать эту часть своего приложения.

Imports Microsoft.Win32

...

Registry.SetValue("HKEY_CURRENT_USER\software\classes\" & FileType, "", applicationTag)
q = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" & FileType, True)
If q IsNot Nothing AndAlso q.GetValue("ProgID", "notfound") <> "notfound" Then
  q.SetValue("ProgID", appTag) ' for the local user, overrides hkcr
  End If
appKey = "HKEY_CURRENT_USER\software\classes\" & applicationTag
Registry.SetValue(appKey, "", "text")
Registry.SetValue(appKey & "\shell", "", "open")
Registry.SetValue(appKey & "\shell\open", "", "")

Registry.SetValue(appKey & "\shell\open\command", "", """" & ApplicationPath & """ ""%1""")
Registry.SetValue(appKey, "", "text")
appKey = "HKEY_CURRENT_USER\software\classes\CLSID\" & ApplicationGuid
Registry.SetValue(appKey, "", applicationTitle)
Registry.SetValue(appKey & "\ProgID", "", applicationTag)
1 голос
/ 31 мая 2011

Вы должны изменить запись реестра: HKEY_CLASSES_ROOT\txtfile\shell\open\command.Посмотрите с regedit.exe.Вы также можете взглянуть на этот ключ: HKEY_CLASSES_ROOT\.txt

Чтобы манипулировать записью реестра, используйте System.Win32.Registry с Документами здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...