基本上与这个问题相同,但针对VB6。
客户的应用程序“AppName”的配置文件存储在 CommonAppData 中。
- 在 Windows XP 下是 C:\Documents and Settings\All Users\Application Data\AppName
- 在 Windows Vista 下是 C:\ProgramData\AppName
如何使用VB6 获得正确的文件夹名称??
附加说明,我更喜欢使用 API 调用而不是添加对 shell32.dll 的引用
基本上与这个问题相同,但针对VB6。
客户的应用程序“AppName”的配置文件存储在 CommonAppData 中。
- 在 Windows XP 下是 C:\Documents and Settings\All Users\Application Data\AppName
- 在 Windows Vista 下是 C:\ProgramData\AppName
如何使用VB6 获得正确的文件夹名称??
附加说明,我更喜欢使用 API 调用而不是添加对 shell32.dll 的引用
使用后期绑定:
Const ssfCOMMONAPPDATA = &H23
Dim strCommonAppData As String
strCommonAppData = _
CreateObject("Shell.Application").NameSpace(ssfCOMMONAPPDATA).Self.Path
找到了;
Private Declare Function SHGetFolderPath _
Lib "shfolder.dll" Alias "SHGetFolderPathA" _
(ByVal hwndOwner As Long, _
ByVal nFolder As Long, _
ByVal hToken As Long, _
ByVal dwReserved As Long, _
ByVal lpszPath As String) As Long
Private Const CSIDL_COMMON_APPDATA = &H23
Private Const CSIDL_COMMON_DOCUMENTS = &H2E
Public Function strGetCommonAppDataPath() As String
Dim strPath As String
strPath = Space$(512)
Call SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, 0, strPath)
strPath = Left$(strPath, InStr(strPath, vbNullChar))
strGetCommonAppDataPath = strPath
End Function
Karl Peterson发布了一个名为CSystemFolders的嵌入式VB6 类,该类将找到 CSIDL_APPDATA、CSIDL_LOCAL_APPDATA 和 CSIDL_COMMON_APPDATA。
Karl 的代码总是可靠的,不接受替代品 :)