웃지 마세요.
저는 데스크톱이 잠겨 있는 기업 환경에 있습니다. 타사 앱 설치는 선택 사항이 아닙니다.
메모장은 대부분 괜찮지만 가장 큰 문제는 파일이 이미 열려 있는지 감지하지 못한다는 것입니다. 결국 두 곳의 파일을 편집하게 됩니다.
그래서 파일이 열려 있는지 확인하기 위해 약간의 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
한 줄 'wscript.exe %1'을 사용하여 배치 파일(.cmd)에서 vbscript를 호출합니다. 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
파일을 열고 원하는 대로 하세요)