📄 module1.bas
字号:
Attribute VB_Name = "Module1"
Option Explicit
Public Declare Function GetVersionEx Lib "kernel32" _
Alias "GetVersionExA" _
(lpVersionInformation As OSVERSIONINFO) As Long
Public Const VER_PLATFORM_WIN32s = 0
Public Const VER_PLATFORM_WIN32_WINDOWS = 1
Public Const VER_PLATFORM_WIN32_NT = 2
'windows定义的数据类型OSVERSIONINFO
Public Type OSVERSIONINFO
OSVSize As Long
dwVerMajor As Long
dwVerMinor As Long
dwBuildNumber As Long
PlatformID As Long
szCSDVersion As String * 128
End Type
'将元素标志列表转换为文件系统路径
Public Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, _
ByVal pszPath As String) As Long
'显示浏览对话框,并允许用户选择一个shell文件夹
Public Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner As Long, _
ByVal nFolder As Long, _
pidl As Long) As Long
Public Declare Sub CoTaskMemFree Lib "ole32.dll" _
(ByVal pv As Long)
'SHBrowseForFolder的参数
Public Type BROWSEINFO 'BI
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'BROWSEINFO.ulFlags的常量值
Public Const BIF_RETURNONLYFSDIRS = &H1 '只包含文件系统目录
Public Const BIF_DONTGOBELOWDOMAIN = &H2 '不包含域以下的网络文件夹
Public Const BIF_STATUSTEXT = &H4 '对话框中包含状态区域
Public Const BIF_RETURNFSANCESTORS = &H8 '只返回文件系统祖先
Public Const BIF_EDITBOX = &H10 '允许用户进行重命名操作
Public Const BIF_VALIDATE = &H20 '对编辑框内容进行有效性检测
Public Const BIF_USENEWUI = &H40 '5.0版中的新特性,允许用户改变对话框大小,
'在对话框中实施拖放操作,
'允许用户新建、删除文件夹
'要使用这个新特性,必须在调用SHBrowseForFolder之前
'调用OleInitialize或CoInitialize函数
Public Const BIF_BROWSEFORCOMPUTER = &H1000 '只返回计算机
Public Const BIF_BROWSEFORPRINTER = &H2000 '只返回打印机
Public Const BIF_BROWSEINCLUDEFILES = &H4000 '可浏览所有元素
Public Const MAX_PATH = 260
'CSIDLs常量
Public Const CSIDL_DESKTOP = &H0 '桌面
Public Const CSIDL_INTERNET = &H1 'IE(桌面上的图标)
Public Const CSIDL_PROGRAMS = &H2 '开始菜单\程序
Public Const CSIDL_CONTROLS = &H3 '我的电脑\控制面板
Public Const CSIDL_PRINTERS = &H4 '我的电脑\打印机
Public Const CSIDL_PERSONAL = &H5 '我的文档
Public Const CSIDL_FAVORITES = &H6 '(用户)\个性化设置
Public Const CSIDL_STARTUP = &H7 '开始菜单\程序\启动
Public Const CSIDL_RECENT = &H8 '(用户)\最近打开文档文件夹
Public Const CSIDL_SENDTO = &H9 '(用户)\发送到
Public Const CSIDL_BITBUCKET = &HA '(桌面)\回收站
Public Const CSIDL_STARTMENU = &HB '(用户)\开始菜单
Public Const CSIDL_DESKTOPDIRECTORY = &H10 '(用户)\桌面
Public Const CSIDL_DRIVES = &H11 '我的电脑
Public Const CSIDL_NETWORK = &H12 '网上邻居
Public Const CSIDL_NETHOOD = &H13 '(用户)\网上邻居中的元素
Public Const CSIDL_FONTS = &H14 'windows\字体
Public Const CSIDL_TEMPLATES = &H15 '临时文档
Public Const CSIDL_COMMON_STARTMENU = &H16 '(所有用户)\开始菜单
Public Const CSIDL_COMMON_PROGRAMS = &H17 '(所有用户)\程序
Public Const CSIDL_COMMON_STARTUP = &H18 '(所有用户)\启动
Public Const CSIDL_COMMON_DESKTOPDIRECTORY = &H19 '(所有用户)\桌面
Public Const CSIDL_APPDATA = &H1A '(用户)\应用程序的数据
Public Const CSIDL_PRINTHOOD = &H1B '(用户)\打印机连接
Public Const CSIDL_LOCAL_APPDATA = &H1C '(用户)\本地设置\应用程序数据
Public Const CSIDL_ALTSTARTUP = &H1D '未本地化的启动
Public Const CSIDL_COMMON_ALTSTARTUP = &H1E '未本地化的通用启动
Public Const CSIDL_COMMON_FAVORITES = &H1F
Public Const CSIDL_INTERNET_CACHE = &H20
Public Const CSIDL_COOKIES = &H21
Public Const CSIDL_HISTORY = &H22
Public Const CSIDL_COMMON_APPDATA = &H23 '(所有用户)\应用程序数据
Public Const CSIDL_WINDOWS = &H24 'GetWindowsDirectory()
Public Const CSIDL_SYSTEM = &H25 'GetSystemDirectory()
Public Const CSIDL_PROGRAM_FILES = &H26 'C:\Program Files
Public Const CSIDL_MYPICTURES = &H27 'C:\Program Files\My Pictures
Public Const CSIDL_PROFILE = &H28 'USERPROFILE
Public Const CSIDL_PROGRAM_FILES_COMMON = &H2B 'C:\Program Files\Common
Public Const CSIDL_COMMON_TEMPLATES = &H2D '(所有用户)\Templates
Public Const CSIDL_COMMON_DOCUMENTS = &H2E '(所有用户)\Documents
Public Const CSIDL_COMMON_ADMINTOOLS = &H2F '(所有用户)\开始菜单\程序\系统管理工具
Public Const CSIDL_ADMINTOOLS = &H30 '(用户)\开始菜单\程序\系统管理工具
Public Const CSIDL_FLAG_CREATE = &H8000& '与其它CSIDL_XXX组合,强制
'forceSHGetSpecialFolderLocation()创建相应的文件夹
Public Const CSIDL_FLAG_DONT_VERIFY = &H4000
Public Const CSIDL_FLAG_MASK = &HFF00 '屏蔽所有的标志
'未使用的常量
'Public Const CSIDL_SYSTEMX86 = &H29 'RISC上的x86系统目录
'Public Const CSIDL_PROGRAM_FILESX86 = &H2A 'RISC上的x86的C:\Program Files目录
'Public Const CSIDL_PROGRAM_FILES_COMMONX86 = &H2C 'RISC上的x86的Program Files\Common目录
Public Function IsWin2000()
#If Win32 Then
Dim OSV As OSVERSIONINFO
OSV.OSVSize = Len(OSV)
If GetVersionEx(OSV) = 1 Then
'PlatformId给出了OS的标志值
'如果其值为VER_PLATFORM_WIN32_NT,
'且dwVerMajosr值为5,则返回True
IsWin2000 = (OSV.PlatformID = VER_PLATFORM_WIN32_NT) And _
(OSV.dwVerMajor = 5)
End If
#End If
End Function
Public Function IsWinNT()
#If Win32 Then
Dim OSV As OSVERSIONINFO
OSV.OSVSize = Len(OSV)
If GetVersionEx(OSV) = 1 Then
'PlatformId给出了OS的标志值
'如果其值为VER_PLATFORM_WIN32_NT,则返回True
IsWinNT = (OSV.PlatformID = VER_PLATFORM_WIN32_NT)
End If
#End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -