我不会设置objFolder
路径,但无法获取当前用户名
objShell.NameSpace(C:\users\%CurrentUser%\AppData)
代码:
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\users\%USERNAME%\AppData\Roaming\Microsoft\Windows")
还是可以替换objShell.NameSpace("C:\somepath")
的其他方法?
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\users\%USERNAME%\AppData\Roaming\Microsoft\Windows")
答案 0 :(得分:-1)
如果您要使用Shell.Namespace
,则可能需要阅读documentation。
它说:
vDir [in]
类型:变体
要为其创建Folder对象的文件夹。这可以是一个字符串 指定文件夹或其中之一的路径 ShellSpecialFolderConstants 值。请注意找到的常量名称 ShellSpecialFolderConstants在Visual Basic中可用,但没有 在VBScript或JScript中。在这种情况下,数值必须为 代替它们。
在遵循link的 ShellSpecialFolderConstants 时 你会发现
ssfSTARTMENU 0x0b(11)。包含“开始”菜单的文件系统目录 项目。典型路径是C:\ Users \ username \ AppData \ Roaming \ Microsoft \ Windows \ Start菜单。
我比您所寻找的要深一层。因此,您可以从该文件夹上一层,然后找到所需的文件夹。
类似的事情应该起作用:
option explicit
const ssfSTARTMENU = 11
sub main
msgbox getWindowsFolder().Self.Path
end sub
function getWindowsFolder()
dim shell
Set shell = CreateObject("Shell.Application")
dim startMenuFolder
set startMenuFolder = shell.Namespace(ssfSTARTMENU)
set getWindowsFolder = startMenuFolder.ParentFolder
end function
main