从自定义资源管理器栏按钮创建新文件

时间:2014-03-28 18:50:24

标签: windows vbscript windows-explorer

我想在Windows资源管理器工具栏上创建一个自定义按钮来创建一个新的空白文本文档,类似于已存在的“新建文件夹”按钮。

enter image description here

these steps之后,我能够创建我的按钮并让它运行自定义VBScript:

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。 (我认为这是因为被调用的命令是wscript.exe,它位于该目录中。)。

如何获取资源管理器窗口打开的目录?

- 有点相关:我运行此脚本时收到“Permission denied”错误。我假设这是因为system32目录受到保护。是否有任何其他预防措施可确保脚本可以创建文件?

感谢。

1 个答案:

答案 0 :(得分:0)

你需要一种不同的方法。

使用shell not file system来做你想做的事。

这是使用您需要的对象类型的两个示例脚本。

'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