Não ria.
Estou em um ambiente corporativo com uma área de trabalho bloqueada. Instalar aplicativos de terceiros não é uma opção.
O bloco de notas funciona normalmente, mas o maior problema é que ele não detecta se um arquivo já está aberto. Acabo editando arquivos em dois lugares.
Então, pensei em escrever um pouco de vbs para verificar se o arquivo poderia estar aberto e, em vez de abri-lo duas vezes, apenas abrir a janela suspeita.
Dim Arg, var1
Set Arg = WScript.Arguments
'Parameter1, begin with index0
var1 = Arg(0)
set fso = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")
If Not oShell.AppActivate( fso.GetFileName(var1) + " - Notepad") Then
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Exec("notepad.exe " + var1 )
Set objShell = Nothing
End If
funciona muito bem. Mas...
Não consigo definir um vbs como alvo de um menu "Abrir com...". Parece que posso fazer um .bat, .cmd, .exe, .pif. Selecionar manualmente ".vbs" não funciona. Ele dirá que o arquivo .txt “não é um aplicativo win32 válido”
Como posso fazer com que a ação padrão de um arquivo seja aberta com um script vbs?
Responder1
Chame o vbscript de um arquivo em lote (.cmd) com uma única linha 'wscript.exe %1'. Coloque o arquivo cmd na lista de envio para.
Responder2
Solução
A associação de arquivos do Windows pode ser em todo o sistema ou por usuário, e a última tem precedência. Portanto, você pode substituir o comportamento padrão dos .txt
arquivos criando uma chave de registro específica:
Abra umprompt de comando.
Digite ou cole o seguinte comando e pressione Enterapós substituir
X:\Path\to\myscript.vbs
pelo caminho real:reg add "HKCU\Software\Classes\txtfile\shell\open\command" /ve /t REG_SZ /d "\"%windir%\System32\wscript.exe\" \"X:\Path\to\myscript.vbs\" \"%1\"" /f
As alterações são aplicadas imediatamente.
Leitura adicional
Responder3
crie o arquivo 1.cmd
no diretório temporário do usuário).
1. cmd:
cmd
abra o arquivo e faça o que quiser)