📄 wndapifuncs.bas
字号:
RT_DIALOG = 5&
RT_FONT = 8&
RT_FONTDIR = 7&
RT_ICON = 3&
RT_MENU = 4&
RT_RCDATA = 10&
RT_STRING = 6&
End Enum
Public Declare Function SendMessageMove Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As RECT) As Long
Public Declare Function SendMessageProc Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Public Declare Function IsIconic Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function MoveWindow Lib "user32" (ByVal hWnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Public Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Declare Function InvalidateRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Public Declare Function SendMessageRepaint Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public Type POINTAPI
x As Long
y As Long
End Type
Public Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Const WA_ACTIVE = 1
Public Const WA_INACTIVE = 0
Public Const WA_CLICKACTIVE = 2
Public Declare Function IsMenu Lib "user32" (ByVal hMenu As Long) As Long
Public Enum enSystemParametersInfo
SPI_NOMESSAGE = 0 '\\ To cope with Win95/WinNT differences!
SPI_GETACCESSTIMEOUT = 60
SPI_GETANIMATION = 72
SPI_GETBEEP = 1
SPI_GETBORDER = 5
SPI_GETDEFAULTINPUTLANG = 89
SPI_GETDRAGFULLWINDOWS = 38
SPI_GETFASTTASKSWITCH = 35
SPI_GETFILTERKEYS = 50
SPI_GETFONTSMOOTHING = 74
SPI_GETGRIDGRANULARITY = 18
SPI_GETHIGHCONTRAST = 66
SPI_GETICONMETRICS = 45
SPI_GETICONTITLELOGFONT = 31
SPI_GETICONTITLEWRAP = 25
SPI_GETKEYBOARDDELAY = 22
SPI_GETKEYBOARDPREF = 68
SPI_GETKEYBOARDSPEED = 10
SPI_GETLOWPOWERACTIVE = 83
SPI_GETLOWPOWERTIMEOUT = 79
SPI_GETMENUDROPALIGNMENT = 27
SPI_GETMINIMIZEDMETRICS = 43
SPI_GETMOUSE = 3
SPI_GETMOUSEKEYS = 54
SPI_GETMOUSETRAILS = 94
SPI_GETNONCLIENTMETRICS = 41
SPI_GETPOWEROFFACTIVE = 84
SPI_GETPOWEROFFTIMEOUT = 80
SPI_GETSCREENREADER = 70
SPI_GETSCREENSAVEACTIVE = 16
SPI_GETSCREENSAVETIMEOUT = 14
SPI_GETSERIALKEYS = 62
SPI_GETSHOWSOUNDS = 56
SPI_GETSOUNDSENTRY = 64
SPI_GETSTICKYKEYS = 58
SPI_GETTOGGLEKEYS = 52
SPI_GETWINDOWSEXTENSION = 92
SPI_GETWORKAREA = 48
SPI_ICONHORIZONTALSPACING = 13
SPI_ICONVERTICALSPACING = 24
SPI_LANGDRIVER = 12
SPI_SCREENSAVERRUNNING = 97
SPI_SETACCESSTIMEOUT = 61
SPI_SETANIMATION = 73
SPI_SETBEEP = 2
SPI_SETBORDER = 6
SPI_SETCURSORS = 87
SPI_SETDEFAULTINPUTLANG = 90
SPI_SETDESKPATTERN = 21
SPI_SETDESKWALLPAPER = 20
SPI_SETDOUBLECLICKTIME = 32
SPI_SETDOUBLECLKHEIGHT = 30
SPI_SETDOUBLECLKWIDTH = 29
SPI_SETDRAGFULLWINDOWS = 37
SPI_SETDRAGHEIGHT = 77
SPI_SETDRAGWIDTH = 76
SPI_SETFASTTASKSWITCH = 36
SPI_SETFILTERKEYS = 51
SPI_SETFONTSMOOTHING = 75
SPI_SETGRIDGRANULARITY = 19
SPI_SETHANDHELD = 78
SPI_SETHIGHCONTRAST = 67
SPI_SETICONMETRICS = 46
SPI_SETICONS = 88
SPI_SETICONTITLELOGFONT = 34
SPI_SETICONTITLEWRAP = 26
SPI_SETKEYBOARDDELAY = 23
SPI_SETKEYBOARDPREF = 69
SPI_SETKEYBOARDSPEED = 11
SPI_SETLANGTOGGLE = 91
SPI_SETLOWPOWERACTIVE = 85
SPI_SETLOWPOWERTIMEOUT = 81
SPI_SETMENUDROPALIGNMENT = 28
SPI_SETMINIMIZEDMETRICS = 44
SPI_SETMOUSE = 4
SPI_SETMOUSEBUTTONSWAP = 33
SPI_SETMOUSEKEYS = 55
SPI_SETMOUSETRAILS = 93
SPI_SETNONCLIENTMETRICS = 42
SPI_SETPENWINDOWS = 49
SPI_SETPOWEROFFACTIVE = 86
SPI_SETPOWEROFFTIMEOUT = 82
SPI_SETSCREENREADER = 71
SPI_SETSCREENSAVEACTIVE = 17
SPI_SETSCREENSAVETIMEOUT = 15
SPI_SETSERIALKEYS = 63
SPI_SETSHOWSOUNDS = 57
SPI_SETSOUNDSENTRY = 65
SPI_SETSTICKYKEYS = 59
SPI_SETTOGGLEKEYS = 53
SPI_SETWORKAREA = 47
End Enum
'\\ Windows Menu related API calls
Public Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function GetMenuCheckMarkDimensions Lib "user32" () As Long
Public Declare Function GetMenuContextHelpId Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function GetMenuDefaultItem Lib "user32" (ByVal hMenu As Long, ByVal fByPos As Long, ByVal gmdiFlags As Long) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Long
Public Declare Function GetMenuItemRect Lib "user32" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal uItem As Long, lprcItem As RECT) As Long
Public Declare Function GetMenuState Lib "user32" (ByVal hMenu As Long, ByVal wID As Long, ByVal wFlags As Long) As Long
Public Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
Public Declare Function SetMenu Lib "user32" (ByVal hWnd As Long, ByVal hMenu As Long) As Long
Public Declare Function SetMenuContextHelpId Lib "user32" (ByVal hMenu As Long, ByVal dw As Long) As Long
Public Declare Function SetMenuDefaultItem Lib "user32" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long
Public Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
Public Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
Public Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
'\\ Sending messages to a window....
Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SendMessageString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lpstrParam As String) As Long
'\\ Windows hooks...
'SetWindowsHookEx
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
'\\ Special structures passed by the hook proc
Public Type CREATESTRUCT
lpCreateParams As Long
hInstance As Long
hMenu As Long
hWndParent As Long
cy As Long
cx As Long
y As Long
x As Long
style As Long
lpszName As Long
lpszClass As Long
ExStyle As Long
End Type
Public Type CBTACTIVATESTRUCT
fMouse As Long
hWndActive As Long
End Type
Public Type CBT_CREATEWND
lpcs As Long 'pointer to CREATESTRUCT
hWndInsertAfter As Long
End Type
Public Type CBT_CREATEWND_FULL
csThis As CREATESTRUCT
hWndInsertAfter As Long
End Type
'\\ Shell execute - running external applications
'\\ Declaration
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'\\ API Error decoding
Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
'\\ Scrollbar messages
Public Enum enScrollMessages
SB_ENDSCROLL = 8
SB_TOP = 6
SB_LINELEFT = 0
SB_LINERIGHT = 1
SB_LINEDOWN = 1
SB_LINEUP = 0
SB_PAGEDOWN = 3
SB_PAGELEFT = 2
SB_PAGERIGHT = 3
SB_PAGEUP = 2
SB_RIGHT = 7
SB_LEFT = 6
SB_THUMBPOSITION = 4
SB_THUMBTRACK = 5
End Enum
'\\ System command messages
Public Enum enSystemCommands
SC_ARRANGE = &HF110
SC_CLOSE = &HF060
SC_HOTKEY = &HF150
SC_HSCROLL = &HF080
SC_KEYMENU = &HF100
SC_MAXIMIZE = &HF030
SC_MINIMIZE = &HF020
SC_MOUSEMENU = &HF090
SC_MOVE = &HF010
SC_NEXTWINDOW = &HF040
SC_PREVWINDOW = &HF050
SC_RESTORE = &HF120
SC_SCREENSAVE = &HF140
SC_SIZE = &HF000
SC_TASKLIST = &HF130
SC_VSCROLL = &HF070
End Enum
'\\ ShowWindow constants
Public Enum enShowWindow
SW_ERASE = &H4
SW_HIDE = 0
SW_INVALIDATE = &H2
SW_MAX = 10
SW_MAXIMIZE = 3
SW_MINIMIZE = 6
SW_NORMAL = 1
SW_OTHERUNZOOM = 4
SW_OTHERZOOM = 2
SW_PARENTCLOSING = 1
SW_PARENTOPENING = 3
SW_RESTORE = 9
SW_SCROLLCHILDREN = &H1
SW_SHOW = 5
SW_SHOWDEFAULT = 10
SW_SHOWMAXIMIZED = 3
SW_SHOWMINIMIZED = 2
SW_SHOWMINNOACTIVE = 7
SW_SHOWNA = 8
SW_SHOWNOACTIVATE = 4
SW_SHOWNORMAL = 1
End Enum
'\\ Window Style
Public Enum enWindowStyles
WS_BORDER = &H800000
WS_CAPTION = &HC00000 ' WS_BORDER Or WS_DLGFRAME
WS_CHILD = &H40000000
WS_CLIPCHILDREN = &H2000000
WS_CLIPSIBLINGS = &H4000000
WS_DISABLED = &H8000000
WS_DLGFRAME = &H400000
WS_EX_ACCEPTFILES = &H10&
WS_EX_DLGMODALFRAME = &H1&
WS_EX_NOPARENTNOTIFY = &H4&
WS_EX_TOPMOST = &H8&
WS_EX_TRANSPARENT = &H20&
WS_GROUP = &H20000
WS_MAXIMIZE = &H1000000
WS_MAXIMIZEBOX = &H10000
WS_MINIMIZE = &H20000000
WS_MINIMIZEBOX = &H20000
WS_OVERLAPPED = &H0&
WS_POPUP = &H80000000
WS_SYSMENU = &H80000
WS_TABSTOP = &H10000
WS_THICKFRAME = &H40000
WS_VISIBLE = &H10000000
WS_VSCROLL = &H200000
End Enum
Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Enum enHWND
HWND_BOTTOM = 1
HWND_BROADCAST = &HFFFF&
HWND_DESKTOP = 0
HWND_NOTOPMOST = -2
HWND_TOP = 0
HWND_TOPMOST = -1
End Enum
Public Enum enSetWindowPos
SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE
SWP_HIDEWINDOW = &H80
SWP_NOACTIVATE = &H10
SWP_NOCOPYBITS = &H100
SWP_NOMOVE = &H2
SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering
SWP_NOREDRAW = &H8
SWP_NOSIZE = &H1
SWP_NOZORDER = &H4
SWP_SHOWWINDOW = &H40
End Enum
'\\ Pointer validation in StringFromPointer
Declare Function IsBadStringPtrByLong Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As Long, ByVal ucchMax As Long) As Long
'\\ Module handles....
Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Type CWPSTRUCT
lParam As Long
wParam As Long
Message As Long
hWnd As Long
End Type
Type CWPRETSTRUCT
lResult As Long
lParam As Long
wParam As Long
Message As Long
hWnd As Long
End Type
Type DEBUGHOOKINFO
hModuleHook As Long
Reserved As Long
lParam As Long
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -