¿Existe alguna manera de configurar una aplicación predeterminada para abrir todos los tipos de archivos para una carpeta específica?

¿Existe alguna manera de configurar una aplicación predeterminada para abrir todos los tipos de archivos para una carpeta específica?

tengo unespecíficocarpeta con diferentes tipos de archivos (txt, pdf, docx,cualquier cosa) que cuando hago doble clic en el Explorador de archivos, no quiero que las aplicaciones predeterminadas abran estos archivos. En cambio, quiero que una aplicación específica abra estos archivos que sólo residen en esta carpeta específica.

Lo explico de otra manera. Digamos que la carpeta C:\Test contiene los siguientes archivos:

  • prueba.txt
  • manual.pdf
  • planes.docx
  • finanzas.xlsx
  • foo.mp4

Si estos archivos se encontraron en cualquier otra carpeta en lugar de C:\Test, sus aplicaciones predeterminadas los abren:

  • prueba.txt -> Bloc de notas
  • manual.pdf -> Adobe Reader
  • planes.docx -> Microsoft Word
  • finanzas.xlsx -> Microsoft Excel
  • foo.mp4 -> Reproductor de Windows Media

Pero como estos archivos están en C:\Test, cuando hago doble clic en ellos en el Explorador de archivos, quiero que todos se abran mediante default_app.exe:

  • prueba.txt -> default_app.exe
  • manual.pdf -> default_app.exe
  • planes.docx -> default_app.exe
  • finanzas.xlsx -> default_app.exe
  • foo.mp4 -> default_app.exe

Lo siento si mis habilidades con Google no son lo suficientemente buenas, pero he estado buscando respuestas durante algunos días.

Respuesta1

La respuesta corta es no, y no querrás que funcione de otra manera.

Si esto pudiera suceder, entonces un solo programa podría secuestrar carpetas enteras en su máquina. Los permisos de los archivos estarían mal administrados y el sistema de archivos sería un objetivo fantástico para el malware.

Además, es poco probable que su única aplicación pueda leer todos los tipos de archivos y darles sentido al usuario.

Puede almacenar los archivos en una base de datos y luego hacer que su programa los saque de la base de datos en lugar del sistema de archivos de Windows. Alternativamente, puede hacer que su aplicación recorra la carpeta y cambie las extensiones de archivo a unas que solo ella entienda, y establezca esas asociaciones en Windows.

Respuesta2

Podrías hacer esto con un script 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

Simplemente guarde este código en un archivo llamado explorer-double-click.ahk (o algo similar que termine en .ahk).

Querrá editar SpecialDir y ExecWith (líneas 15 y 16) para configurar las rutas de manera adecuada.

Primero deberá tener instalado AutoHotkey. Entonces ejecútelo.

información relacionada