⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wndapifuncs.bas

📁 几个不错的VB例子
💻 BAS
📖 第 1 页 / 共 4 页
字号:
    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 + -