Solución

Solución

No te rías.

Estoy en un entorno corporativo con un escritorio bloqueado. Instalar aplicaciones de terceros no es una opción.

El Bloc de notas está prácticamente bien, aunque el mayor problema es que no detecta si un archivo ya está abierto. Termino con ediciones de archivos en dos lugares.

Entonces, pensé en escribir un pequeño vbs para verificar si el archivo podría estar abierto y, en lugar de abrirlo dos veces, simplemente abrir la ventana sospechosa.

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 muy bien. Pero...

No puedo configurar un vbs como destino de un menú "Abrir con...". Parece que puedo hacer .bat, .cmd, .exe, .pif. Seleccionar manualmente ".vbs" no funciona. Dirá que el archivo .txt "no es una aplicación win32 válida"

¿Cómo puedo hacer que la acción predeterminada de un archivo se abra con un script vbs?

Respuesta1

Llame a vbscript desde un archivo por lotes (.cmd) con una sola línea 'wscript.exe %1'. Coloque el archivo cmd en la lista de envío a.

Respuesta2

Solución

La asociación de archivos de Windows puede ser de todo el sistema o por usuario, y esta última tiene prioridad. Por lo tanto, puede anular el comportamiento predeterminado de .txtlos archivos creando una clave de registro específica:

  1. Abre unsímbolo del sistema.

  2. Escriba o pegue el siguiente comando y presione Enterdespués de reemplazarlo X:\Path\to\myscript.vbscon la ruta 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
    

    Los cambios se aplican inmediatamente.

Otras lecturas

Respuesta3

crear archivo 1.cmden el directorio temporal del usuario).

1.cmd:

cmd

abre el archivo y haz lo que quieras)

información relacionada