代码之家  ›  专栏  ›  技术社区  ›  Banjer

如何在64位Windows中检索启动文件夹位置

  •  4
  • Banjer  · 技术社区  · 14 年前

    我有一个将程序快捷方式添加到Windows启动文件夹的VB脚本。在我的脚本中,我可以使用以下命令在32位窗口中检索启动文件夹位置:

      Set objShell = CreateObject("WScript.Shell")
      startupFolder = objShell.SpecialFolders("Startup")
    

    但当我在64位的Windows上尝试时,它什么也不返回。具体来说,我正在64位Vista上测试。我似乎找不到适合这个的环境变量或语法。谢谢。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Helen    14 年前

    使用 Shell.Application 对象:

    Const ssfSTARTUP = &H7
    
    Set oShell = CreateObject("Shell.Application")
    Set startupFolder = oShell.NameSpace(ssfSTARTUP)
    
    If Not startupFolder Is Nothing Then
      WScript.Echo startupFolder.Self.Path
    End If
    

    它对你有用吗?

        2
  •  1
  •   Serplat    14 年前

    看看这是否有效。这实际上读取存储文件夹的注册表值。我能想象为什么另一个方法不能在64位中工作。

    Dim startupFolder As String
    startupFolder = My.Computer.Registry.GetValue _
    ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Startup", Nothing)
    
    推荐文章