Не смейтесь.
Я работаю в корпоративной среде с заблокированным рабочим столом. Установка сторонних приложений невозможна.
Notepad в целом ничего, но самая большая проблема в том, что он не определяет, открыт ли уже файл. В итоге я вношу изменения в файлы в двух местах.
Поэтому я подумал, что напишу небольшой VBS-код для проверки того, открыт ли файл, и вместо того, чтобы открывать его дважды, просто вызову подозрительное окно.
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
работает отлично. Но...
Я не могу установить vbs в качестве цели меню "Открыть с помощью...". Похоже, я могу сделать .bat, .cmd, .exe, .pif. Ручной выбор ".vbs" не работает. Он скажет, что файл .txt "не является допустимым приложением win32"
Как сделать так, чтобы действие по умолчанию для файла открывалось с помощью скрипта VBS?
решение1
Вызовите vbscript из пакетного файла (.cmd) с одной строкой 'wscript.exe %1'. Поместите файл cmd в список отправки.
решение2
Решение
Ассоциация файлов Windows может быть либо общесистемной, либо индивидуальной для каждого пользователя, и последняя имеет приоритет. Таким образом, вы можете переопределить поведение .txt
файлов по умолчанию, создав специальный ключ реестра:
Откройтекомандная строка.
Введите или вставьте следующую команду и нажмите клавишу Enterпосле замены
X:\Path\to\myscript.vbs
на фактический путь: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
Изменения применяются немедленно.
дальнейшее чтение
решение3
создать файл 1.cmd
во временном каталоге пользователя).
1.cmd:
cmd
откройте файл и делайте что хотите)