试图找出调用win32com.client.Dispatch的混合结果

时间:2013-02-13 11:52:38

标签: python python-3.x

我看过这篇文章https://stackoverflow.com/a/5169864/2065006

所以我以为我会试验。有经验的人可以解释这些结果吗?

>>> import win32com.client
>>> shellobject = win32com.client.Dispatch("Wscript.Shell")
>>> print (shellobject.SpecialFolders("ProgramFiles"))

>>> print (shellobject.SpecialFolders("Common AppData"))

>>> print (shellobject.SpecialFolders("AppData"))
F:\Documents and Settings\Randy1\Application Data
>>> print (shellobject.SpecialFolders("My Music"))

>>> print (shellobject.SpecialFolders("MyMusic"))

>>> print (shellobject.SpecialFolders("AppData"))
F:\Documents and Settings\Randy1\Application Data

1 个答案:

答案 0 :(得分:1)

根据MSDN,SpecialFolders Property

可以使用以下特殊文件夹:

  • AllUsersDesktop
  • AllUsersStartMenu
  • AllUsersPrograms
  • AllUsersStartup
  • 桌面
  • 收藏夹
  • 字体
  • 我的文档
  • NETHOOD
  • PRINTHOOD
  • 程序
  • 最近
  • 的SendTo
  • 的StartMenu
  • 启动
  • 模板

虽然看起来上面的列表不完整,例如AppData也可用。我们仍然可以得出结论:某些特殊文件夹不可用。

我们可以在 Windows脚本主机中试验WshShell对象,该对象比win32com更可靠。

var shell = new ActiveXObject("WScript.Shell");
WScript.Echo(shell.SpecialFolders("ProgramFiles"));
WScript.Echo(shell.SpecialFolders("AppData"));

shell.SpecialFolders("ProgramFiles")也是一个空字符串。