Gibt es eine Möglichkeit, eine Standardanwendung so festzulegen, dass alle Dateitypen für einen bestimmten Ordner geöffnet werden?

Gibt es eine Möglichkeit, eine Standardanwendung so festzulegen, dass alle Dateitypen für einen bestimmten Ordner geöffnet werden?

Ich habe einSpezifischOrdner mit verschiedenen Dateitypen (txt, pdf, docx,irgendetwas), auf das ich beim Doppelklicken im Datei-Explorer nicht möchte, dass die Standardanwendungen diese Dateien öffnen. Stattdessen möchte ich, dass eine bestimmte Anwendung diese Dateien öffnet, die sich nur in diesem bestimmten Ordner befinden.

Ich erkläre das anders. Angenommen, der Ordner C:\Test enthält die folgenden Dateien:

  • test.txt
  • handbuch.pdf
  • Pläne.docx
  • finanzen.xlsx
  • foo.mp4

Wenn diese Dateien in einem anderen Ordner als C:\Test gefunden wurden, werden sie von ihren Standardanwendungen geöffnet:

  • test.txt -> Notizblock
  • handbuch.pdf -> Adobe Reader
  • pläne.docx -> Microsoft Word
  • finance.xlsx -> Microsoft Excel
  • foo.mp4 -> Windows Media Player

Da sich diese Dateien jedoch im Verzeichnis C:\Test befinden, möchte ich, dass sie alle von default_app.exe geöffnet werden, wenn ich im Datei-Explorer darauf doppelklicke:

  • test.txt -> default_app.exe
  • handbuch.pdf -> default_app.exe
  • pläne.docx -> default_app.exe
  • finance.xlsx -> default_app.exe
  • foo.mp4 -> default_app.exe

Entschuldigen Sie, wenn meine Google-Kenntnisse nicht ausreichen, aber ich habe seit einigen Tagen nach Antworten gesucht.

Antwort1

Die kurze Antwort lautet: Nein, und Sie möchten auch nicht, dass es anders funktioniert.

Wenn dies passieren könnte, könnte ein einzelnes Programm ganze Ordner auf Ihrem Computer kapern. Dateiberechtigungen würden falsch verwaltet und das Dateisystem wäre ein fantastisches Ziel für Malware.

Außerdem ist es unwahrscheinlich, dass Ihre App alle Dateitypen lesen und für den Benutzer verständlich machen kann.

Sie können die Dateien in einer Datenbank speichern und sie dann von Ihrem Programm aus der Datenbank statt aus dem Windows-Dateisystem abrufen lassen. Alternativ können Sie Ihre App den Ordner durchsuchen lassen und die Dateierweiterungen in solche ändern, die nur sie versteht, und diese Zuordnungen in Windows festlegen.

Antwort2

Sie könnten dies mit einem AutoHotkey-Skript tun.

; 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

Speichern Sie diesen Code einfach in einer Datei namens explorer-double-click.ahk (oder einer ähnlichen Datei mit der Endung .ahk).

Sie sollten SpecialDir und ExecWith (Zeilen 15 und 16) bearbeiten, um die Pfade entsprechend festzulegen.

Sie müssen zuerst AutoHotkey installieren. Führen Sie es dann aus.

verwandte Informationen