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

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

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

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

  • тест.txt
  • руководство.pdf
  • планы.docx
  • финансы.xlsx
  • фу.mp4

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

  • test.txt -> Блокнот
  • руководство.pdf -> Adobe Reader
  • планы.docx -> Microsoft Word
  • финансы.xlsx -> Microsoft Excel
  • foo.mp4 -> Проигрыватель Windows Media

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

  • test.txt -> default_app.exe
  • руководство.pdf -> default_app.exe
  • plans.docx -> default_app.exe
  • финансы.xlsx -> default_app.exe
  • foo.mp4 -> default_app.exe

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

решение1

Короткий ответ — нет, и вы бы не хотели, чтобы это работало по-другому.

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

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

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

решение2

Это можно сделать с помощью скрипта 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, {LButton}
            }
            ClipBoard := PrevClip
        } Else {
            SendInput, {LButton}
        }
    } Else {
        SendInput, {LButton}
    }
Return

Просто сохраните этот код в файле с именем explorer-double-click.ahk (или в похожем файле с расширением .ahk).

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

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

Связанный контент