VB获取windows各常用目录的函数(模块)

这篇博客汇集了VB编程中获取Windows目录、创建快捷方式等实用函数,包括递归搜索目录、判断文件存在性、环境变量操作等功能。通过参考这些函数,开发者可以更便捷地进行文件和目录的操作。
摘要由CSDN通过智能技术生成

        以下的函数,可以用来获取windows 诸如“windows、temp、sendto、desktop、开始菜单” 等目录。

------------------------------------------以下代码在模块 ----------------------------------------
程序代码:
'***********************************************************
'**模 块 名         GetFolderS
'**作    用         获取WINDOWS特殊目录
'**作    者         石陆
'**制作日期         2007 / 12 / 4
'**修    改
'**修改日期
'**石陆软件屋        http://baidu.bzzo.net
'***********************************************************
Option Explicit

Private Declare Function SHGetSpecialFolderLocation Lib "Shell32" (ByVal hwndOwner As Long, ByVal nFolder As Integer, ppidl As Long) As Long
Private Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal szPath As String) As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Const MAX_LEN = 200 '字符串最大长度

Public Enum SpecialFolder
    WIN_WINDOWS = &H24& '自己定的
    WIN_SYSTEM = &H25& '自己定的
    WIN_PROGRAMFILES = &H26& 'c:\programfils
    WIN_TEMP = &H33& '自己定的
    USER_DESKTOP = &H0& '桌面
    USER_PROGRAMS = &H2& '程序集
    USER_MYDOCUMENTS = &H5& '我的文档
    USER_MYFAVORITES = &H6& '收藏夹
    USER_STARTUP = &H7& '启动
    USER_RECENT = &H8& '最近打开的文件
    SENDTO = &H9& '发送
    USER_STARTMENU = &HB& '开始菜单
    NETHOOD = &H13& '网上邻居
    WIN_Fonts = &H14& '字体
    SHELLNEW = &H15& 'ShellNew
    ALL_STARTMENU = &H16& '所有用户的开始菜单
    ALL_PROGRAMS = &H17& '所有用户的开始程序菜单
    ALL_STARTUP = &H18& '所有用户的启动菜单
    ALL_DESKTOP = &H19& '所有用户的桌面
    APPDATA = &H1A& 'Application Data
    PRINTHOOD = &H1B& 'PrintHood
    PAGETMP = &H20& '网页临时文件
    COOKIES = &H21& 'Cookies目录
    HISTORY = &H22& '历史
    
End Enum


'***********************************************************
'**函 数 名         GetSpecialFolder
'**作    用         获取WINDOWS特殊目录
'**作    者         石陆
'**制作日期         2007 / 12 / 4
'**修    改
'**修改日期
'**石陆软件屋        http://baidu.bzzo.net
'***********************************************************
Public Function GetSpecialFolder(sName As SpecialFolder) As String
    Dim sTmp As String * MAX_LEN  '存放结果的固定长度的字符串
    Dim nLength As Long  '字符串的实际长度
    Dim pidl As Long  '某特殊目录在特殊目录列表中的位置
    Select Case sName
        Case &H24&
            nLength = GetWindowsDirectory(sTmp, MAX_LEN)
            GetSpecialFolder = Left(sTmp, nLength)
        Case &H25&
            nLength = GetSystemDirectory(sTmp, MAX_LEN)
            GetSpecialFolder = Left(sTmp, nLength)
        Case &H33&
            nLength = GetTempPath(MAX_LEN, sTmp)
            GetSpecialFolder = Left(sTmp, nLength)
        Case &H26& 'c:\programfils
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H0&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H2&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H5&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H6&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H7&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H8&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H9&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &HB&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H13& '网上邻居
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H14& '字体
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H15&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H16&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H17&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H18&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H19&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H1A&
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H1B& 'PrintHood
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H20& '网页临时文件
            SHGetSpecialFolderLocation 0, s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值