eu tenho umespecíficopasta com diferentes tipos de arquivos (txt, pdf, docx,qualquer coisa) que quando clicado duas vezes no File Explorer, não quero que os aplicativos padrão abram esses arquivos. Em vez disso, quero que um aplicativo específico abra esses arquivos que residem apenas nesta pasta específica.
Explico isso de outra maneira. Digamos que a pasta C:\Test contenha os seguintes arquivos:
- teste.txt
- manual.pdf
- planos.docx
- finanças.xlsx
- foo.mp4
Se esses arquivos forem encontrados em qualquer outra pasta em vez de C:\Test, seus aplicativos padrão os abrirão:
- test.txt -> Bloco de notas
- manual.pdf -> Adobe Reader
- planos.docx -> Microsoft Word
- finanças.xlsx -> Microsoft Excel
- foo.mp4 -> Windows Media Player
Mas como esses arquivos estão em C:\Test, quando clico duas vezes neles no File Explorer, quero que todos sejam abertos por default_app.exe:
- teste.txt -> default_app.exe
- manual.pdf -> default_app.exe
- planos.docx -> default_app.exe
- finanças.xlsx -> default_app.exe
- foo.mp4 -> default_app.exe
Desculpe se minhas habilidades no Google não são boas o suficiente, mas estou procurando respostas há alguns dias.
Responder1
A resposta curta é não, e você não gostaria que funcionasse de outra maneira.
Se isso acontecer, um único programa poderá sequestrar pastas inteiras em sua máquina. As permissões de arquivo seriam mal gerenciadas e o sistema de arquivos seria um alvo fantástico para malware.
Além disso, é improvável que seu aplicativo leia todos os tipos de arquivo e os compreenda para o usuário.
Você pode armazenar os arquivos em um banco de dados e, em seguida, fazer com que seu programa os chame para fora do banco de dados, em vez do sistema de arquivos do Windows. Como alternativa, você pode fazer com que seu aplicativo percorra a pasta e altere as extensões dos arquivos para aquelas que só ele entende e defina essas associações no Windows.
Responder2
Você poderia fazer isso com um 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
Basta salvar este código em um arquivo chamado explorer-double-click.ahk (ou algo semelhante terminando em .ahk).
Você desejará editar SpecialDir e ExecWith (linhas 15 e 16) para definir os caminhos adequadamente.
Você precisará ter o AutoHotkey instalado primeiro. Então execute-o.