Есть ли способ установить приложение по умолчанию, чтобы открыть все типы файлов для определенной папки?

288
Sydrik

У меня есть определенная папка с разными типами файлов (txt, pdf, docx, что угодно ), при двойном щелчке по File Explorer я не хочу, чтобы приложения по умолчанию открывали эти файлы. Вместо этого я хочу, чтобы определенное приложение открывало эти файлы, которые находятся только в этой конкретной папке.

Я объясняю это по-другому. Скажем, папка C: \ Test содержит следующие файлы:

  • test.txt
  • manual.pdf
  • plans.docx
  • finance.xlsx
  • foo.mp4

Если эти файлы были найдены в любой другой папке вместо C: \ Test, их приложения по умолчанию открывают их:

  • test.txt -> Блокнот
  • manual.pdf -> Adobe Reader
  • планы.docx -> Microsoft Word
  • finance.xlsx -> Microsoft Excel
  • foo.mp4 -> Windows Media Player

Но так как эти файлы находятся в C: \ Test, когда я дважды щелкаю по ним в File Explorer, я хочу, чтобы все они открывались с помощью default_app.exe:

  • test.txt -> default_app.exe
  • manual.pdf -> default_app.exe
  • plan.docx -> default_app.exe
  • finance.xlsx -> default_app.exe
  • foo.mp4 -> default_app.exe

Извините, если мои навыки Google не достаточно хороши, но я искал ответы в течение нескольких дней.

0
Кажется, это глобальная обстановка. По крайней мере, вы можете создать в этой папке ярлык, например, mspaint.exe, а затем просто перетащите свои файлы внутрь. Tech-IO 6 лет назад 0

2 ответа на вопрос

3
CDove

Короткий ответ - нет, и вы бы не хотели, чтобы это работало как-то иначе.

Если это может произойти, то одна программа может захватить целые папки на вашем компьютере. Право доступа к файлам будет неправильно управляться, а файловая система будет фантастической целью для вредоносных программ.

Кроме того, вероятность того, что ваше одно приложение сможет прочитать все типы файлов и понять их для пользователя, маловероятна.

Вы можете хранить файлы в базе данных, а затем заставить вашу программу вызывать их из базы данных вместо файловой системы Windows. В качестве альтернативы вы можете сделать так, чтобы ваше приложение делало переход по папке и изменяло расширения файлов на те, которые оно понимает само по себе, и устанавливало эти ассоциации в Windows.

1
Dean Householder

Вы можете сделать это с помощью скрипта AutoHotkey.

; This script will intercept double-clicks and if you have double-clicked a file within a pre-defined directory, ; instead of opening the file with the default app, open the file with a custom app instead.  #Persistent #SingleInstance, Force #InstallKeybdHook #HotkeyInterval, 100 #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. SetTitleMatchMode 2 SetWinDelay, 0  WaitTime := DllCall("GetDoubleClickTime") SpecialDir := "C:\Test" ExecWith := "C:\path\to\default_app.exe"  LButton Up:: IfWinActive ahk_exe explorer.exe { PrevClip := ClipBoard If (A_TimeSincePriorHotkey<400) and (A_TimeSincePriorHotkey<>-1) { SendInput, ^c ; Get path to file you double-clicked on Sleep, 50 ; Sleep to give time for clipboard to get contents If FileExist(ClipBoard) { Run %ExecWith% %ClipBoard% } else { SendInput,  } ClipBoard := PrevClip } Else { SendInput,  } } Else { SendInput,  } Return 

Просто сохраните этот код в файл с именем explorer-double-click.ahk (или что-то подобное, оканчивающееся на .ahk).

Вы захотите отредактировать SpecialDir и ExecWith (строки 15 и 16), чтобы установить пути соответствующим образом.

Сначала вам нужно установить AutoHotkey. Тогда запустите это.

Благодарю. Я должен был упомянуть, что не хотел бы запускать какие-либо сторонние приложения или скрипты. Sydrik 6 лет назад 0
Что ж, в Windows нет встроенного способа сделать это напрямую, поэтому единственный способ - запустить сторонний скрипт. Dean Householder 6 лет назад 0

Похожие вопросы