2014-03-28 5 views
0

내 Windows 탐색기 도구 모음에 사용자 지정 단추를 만들어 이미있는 "새 폴더"단추와 비슷한 새 빈 텍스트 문서를 만들려고합니다.사용자 지정 탐색기 모음 단추에서 새 파일 만들기

Set WshShell = WScript.CreateObject("WScript.Shell") 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set objFile = fso.CreateTextFile(WshShell.CurrentDirectory & "\NewTextDocument.txt", True) 
objFile.Close 
Wscript.Quit 

그러나 WshShell.CurrentDirectory의 값이 C:\Windows\system32입니다 :

enter image description here

these steps 다음, 내 버튼을 생성하고 사용자 정의 VBScript를 실행 얻을 수있었습니다. (나는이 명령이 호출되는 명령이 해당 디렉토리에있는 wscript.exe이기 때문이라고 생각합니다.)

어떻게 탐색기 창이 열리는 디렉토리를 얻을 수 있습니까?

- 다소 관련 :이 스크립트를 실행하면 "Permission denied"오류가 발생합니다. 나는 system32 디렉토리가 보호되어 있기 때문이라고 가정하고있었습니다. 스크립트에서 파일을 만들 수 있도록 다른 예방 조치가 있습니까?

감사합니다.

+0

내가 아는 단 하나의 길을 찾을 수 - 생성하고 대신의 VBScript INPROC의 COM 서버를 등록합니다. COM 서버는 IObjectWithSite, IInitializeCommand, IObjectWithSelection, IExplorerCommand, IExplorerCommandState를 구현해야합니다. ExplorerCommandHandler 값의 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CommandStore \ shell \ YouCommandName 키에 COM 서버의 CLSID를 써야합니다. 그리고 IObjectWithSite.SetSite 내부에 현재 폴더를 가져올 수 있습니다. –

답변

0

다른 접근 방법이 필요합니다.

원하는대로 파일 시스템이 아닌 쉘 시스템을 사용하십시오.

여기에 필요한 객체 유형을 사용하는 두 개의 샘플 스크립트가 있습니다.

'Const NETHOOD = &H14& 'fonts 
'Const NETHOOD = &H12& 'Network 
Const NETHOOD = &H11& 'My Comp 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.Namespace(NETHOOD) 
Set objFolderItem = objFolder.Self 
Wscript.Echo objFolderItem.Path 
Set colItems = objFolder.Items 
For Each objItem in colItems 
    For x = 1 to 79 

     Properties = Properties & vbtab & objFolder.GetDetailsOf(ObjItem, x) 
    Next 
    Wscript.Echo objItem.Name" & Properties 
    Properties="" 
Next 

오른쪽 창을

Set objShell = CreateObject("Shell.Application") 
Set AllWindows = objShell.Windows 
For Each window in AllWindows 
    msgbox window.locationname 
Next