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 .txt
los archivos creando una clave de registro específica:
Abre unsímbolo del sistema.
Escriba o pegue el siguiente comando y presione Enterdespués de reemplazarlo
X:\Path\to\myscript.vbs
con 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.cmd
en el directorio temporal del usuario).
1.cmd:
cmd
abre el archivo y haz lo que quieras)