A ação padrão do arquivo do Windows é aberta com um script vbs?

1

Não ria.

Estou em um ambiente corporativo com uma área de trabalho bloqueada. Instalar aplicativos de terceiros não é uma opção.

O Notepad está praticamente certo, mas a maior dor é que ele não detecta se um arquivo já está aberto. Acabo com edições em arquivos em dois lugares.

Então, eu pensei em escrever um pouco de vbs para verificar se o arquivo pode estar aberto e, em vez de abri-lo duas vezes, basta levantar 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 para o destino de um menu "Abrir com ...". Parece que posso fazer um .bat, .cmd, .exe, .pif. A seleção manual de ".vbs" não funciona. Ele dirá que o arquivo .txt "não é um aplicativo win32 válido"

Como posso obter a ação padrão de um arquivo para abrir com um script vbs?

    
por mgjk 29.07.2014 / 16:47

3 respostas

1

Chame o vbscript de um arquivo em lotes (.cmd) com uma única linha 'wscript.exe% 1'. Coloque o arquivo cmd na lista de envio.

    
por 29.07.2014 / 17:04
1

Solução

A associação de arquivos do Windows pode ser em todo o sistema ou por usuário, e o último tem precedência. Portanto, você pode substituir o comportamento padrão de .txt arquivos criando uma chave de registro específica:

  1. Abra um prompt de comando .

  2. Digite ou cole o seguinte comando e pressione Enter apó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

por 10.08.2014 / 16:22
0

crie o arquivo 1.cmd no diretório temp do usuário.

1.cmd:

cmd

abra o arquivo e faça o que quiser)

    
por 29.07.2014 / 17:03