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

'***********************************************************
'**模 块 名         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, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H21&  'Cookies目录
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
        Case &H22& '历史
            SHGetSpecialFolderLocation 0, sName, pidl
            SHGetPathFromIDList pidl, sTmp
            GetSpecialFolder = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
    End Select
'35,36,37,38
    GetSpecialFolder = IIf(Right$(GetSpecialFolder, 1) = "\", GetSpecialFolder, GetSpecialFolder & "\")
    sTmp = ""
End Function
API窗口模块.bas 7,143 1,930 Visual Bas CPU.bas 3,404 1,059 Visual Bas DLL_Main.bas 2,676 1,096 Visual Bas FTP模块.cls 4,601 1,232 Visual Basi Open_File.bas 12,673 2,911 Visual Bas PE导出输入表演示(读文件版).bas 18,081 3,311 Visual Bas PE导出输入表演示(文件影射版).bas 15,524 2,990 Visual Bas TreeView处理.bas 4,487 901 Visual Bas 拨号与断开模块.bas 2,463 784 Visual Bas 查壳.frm 2,498 948 Visual Basi 窗体置顶.bas 1,908 651 Visual Bas 磁盘序列号.bas 5,875 1,297 Visual Bas 打开文件属性面板.bas 897 464 Visual Bas 读写INI.bas 1,138 440 Visual Bas 封杀窗口.cls 2,487 794 Visual Basi 复制图片.bas 2,578 786 Visual Bas 个性MsgBox.bas 3,069 1,044 Visual Bas 挂起进程.bas 3,145 892 Visual Bas 关机欺骗杀软.bas 1,385 474 Visual Bas 获取进程的命令行.bas 9,449 2,540 Visual Bas 加壳.bas 7,365 1,925 Visual Bas 进程断网.bas 4,809 1,525 Visual Bas 免杀下载者模块.bas 5,737 1,706 Visual Bas 内存加载图片.bas 2,487 974 Visual Bas 内存启动.bas 10,947 2,961 Visual Bas 软件注册模块.bas 403 274 Visual Bas 数组加解密.cls 2,975 1,046 Visual Basi 随机数模块.bas 2,714 778 Visual Bas 托盘模块.bas 4,449 1,741 Visual Bas 托盘气泡模块.bas 1,525 579 Visual Bas 文件版权信息.bas 3,940 1,166 Visual Bas 系统服务.cls 10,440 2,267 Visual Basi 系统服务.cls 10,440 2,267 Visual Basi 写入资源.bas 3,082 1,040 Visual Bas 修改图标.bas 4,594 1,244 Visual Bas 压缩算法.cls 19,932 2,719 Visual Basi 压缩算法-升级版.cls 20,936 3,098 Visual Basi 颜色替换.cls 9,887 2,659 Visual Basi 验证码生成模块.bas 1,476 401 Visual Bas 游戏外挂类.cls 6,146 1,711 Visual Basi 注入.bas 6,315 2,358 Visual Bas 子类化按钮.bas 22,332 5,840 Visual Bas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值