나는특정한다양한 파일 형식(txt, pdf, docx,아무것) 파일 탐색기를 두 번 클릭하면 기본 응용 프로그램에서 이러한 파일을 열 수 없도록 하고 싶습니다. 대신, 특정 응용 프로그램이 이 특정 폴더에만 있는 파일을 열 수 있기를 원합니다.
나는 이것을 다른 방식으로 설명합니다. C:\Test 폴더에 다음 파일이 포함되어 있다고 가정합니다.
- 테스트.txt
- 매뉴얼.pdf
- 계획.docx
- 금융.xlsx
- foo.mp4
이러한 파일이 C:\Test가 아닌 다른 폴더에 있는 경우 기본 응용 프로그램에서 해당 파일을 엽니다.
- test.txt -> 메모장
- manual.pdf -> 어도비 리더
- plans.docx -> 마이크로소프트 워드
- Finance.xlsx -> 마이크로소프트 엑셀
- foo.mp4 -> 윈도우 미디어 플레이어
그러나 이러한 파일은 C:\Test에 있으므로 파일 탐색기에서 해당 파일을 두 번 클릭하면 default_app.exe로 모두 열리도록 하고 싶습니다.
- test.txt -> default_app.exe
- manual.pdf -> default_app.exe
- plans.docx -> default_app.exe
- Finance.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를 설치해야 합니다. 그런 다음 실행하십시오.