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

📄 modmain.bas

📁 dFreeze Window Manager.zip
💻 BAS
字号:
Attribute VB_Name = "modMain"
Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function ChildWindowFromPoint& Lib "user32" (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long)
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Sub CopyMemoryNotifyIconData Lib "kernel32" Alias "RtlMoveMemory" (Destination As NOTIFYICONDATA, ByVal Source As Long, ByVal Length As Long)
Public Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As Long
Public Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Public Declare Function EnableWindow& Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long)
Public Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function ExitWindowsEx& Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long)
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal dwMessage As Long) As Integer
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetForegroundWindow Lib "user32" () As Long
Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function GetTickCount Lib "kernel32" () As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Declare Function IsBadReadPtrNotifyIconData Lib "kernel32" Alias "IsBadReadPtr" (ByVal lp As Long, ByVal ucb As Long) As Long
Public Declare Function IsBadWritePtrNotifyIconData Lib "kernel32" Alias "IsBadWritePtr" (ByVal lp As Long, ByVal ucb As Long) As Long
Public Declare Function IsWindowEnabled Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function IsWindowUnicode Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
Public Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Public Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
Public Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Public Declare Function Sendmessagebynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Public Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetWindowLongApi Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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 Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long
Public Declare Function UpdateWindow& Lib "user32" (ByVal hwnd As Long)
Public Declare Function WindowFromPoint Lib "user32.dll" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Public Const HWND_NOTOPMOST = -2
Public Const HWND_TOPMOST = -1
Public Const MAX_PATH& = 260
Public Const SW_HIDE = 0
Public Const SW_Maximize = 3
Public Const SW_Minimize = 6
Public Const SW_SHOW = 5
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const FLAGS = SWP_NOSIZE Or SWP_NOMOVE
Public Const HTCAPTION = 2
Public Const SW_Normal = 1
Public Const WM_CLOSE = &H10
Public Const WM_GETTEXT = &HD
Public Const TXT_LEN = 100
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_MOUSEMOVE = &H200
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_RBUTTONDBLCLK = &H206
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const GW_CHILD = 5
Public Const GW_HWNDFIRST = 0
Public Const GW_HWNDNEXT = 2
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOREDRAW = &H8
Public Const SWP_NOZORDER = &H4
Public Const SWP_HIDEWINDOW = &H80
Public Const WM_SETTEXT = &HC
Public Const WM_CHAR = &H102
Public Const WM_CLEAR = &H303
Public Const EM_SETPASSWORDCHAR = &HCC
Public Const EM_GETPASSWORDCHAR = &HD2
Public Const EN_CHANGE = &H300
Public Const MF_BYPOSITION = &H400&
Public Const MF_ENABLED = &H0&
Public Const MF_DISABLED = &H2&

Public Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szexeFile As String * MAX_PATH
End Type

Public Type POINTAPI
    X As Long
    Y As Long
End Type

Public Type NOTIFYICONDATA
   cbSize As Long
   hwnd As Long
   uId As Long
   uFlags As Long
   uCallBackMessage As Long
   hIcon As Long
   szTip As String * 64
End Type

Public Enum enGetWindowLong
    GWL_EXSTYLE = (-20)
    GWL_HINSTANCE = (-6)
    GWL_HWNDPARENT = (-8)
    GWL_ID = (-12)
    GWL_STYLE = (-16)
    GWL_USERDATA = (-21)
    GWL_WNDPROC = (-4)
End Enum

Dim nid As NOTIFYICONDATA
Public CreatedOK As Boolean
Public WndProcOld As Long

Global OldProcAddress As Long
Global EasterEgg1 As Boolean
Global EasterEgg2 As Boolean
Global EasterEgg3 As Boolean
Global StartMin As Boolean
Global DontRemove As Boolean
Global RefreshD As Boolean
Global clSoundFiles As New Collection
Global APPCap As String
Public Sub EnableMenu(hMenu As Long, Enabled As Boolean)
Dim lNumItems As Long
Dim lCounter As Long
    lNumItems = GetMenuItemCount(hMenu)
    If lNumItems > -1 Then
        For lCounter = 0 To lNumItems
            If Enabled = True Then EnableMenuItem hMenu, lCounter, MF_BYPOSITION + MF_ENABLED
            If Enabled = False Then EnableMenuItem hMenu, lCounter, MF_BYPOSITION + MF_DISABLED
            EnableSubMenu hMenu, lCounter, Enabled
        Next
    End If
End Sub
Public Sub EnableSubMenu(hMenu As Long, lItemPosition As Long, Enabled As Boolean)
Dim hSubMenu As Long
hSubMenu = GetSubMenu(hMenu, lItemPosition)
If Not hSubMenu = 0 Then
    EnableMenu hSubMenu, Enabled
End If
End Sub
Public Sub EnumerateChildren(hWndParent As Long, Which As Integer)
Dim hWndChild As Long

hWndChild = GetWindow(hWndParent, GW_CHILD Or GW_HWNDFIRST)

Do While hWndChild <> 0
    If Which = 1 Then Sendmessagebynum hWndChild, EM_SETPASSWORDCHAR, 0&, 0&
    If Which = 2 Then EnableWindow hWndChild, 1
    If Which = 3 Then
        R$ = Right((Str(hWndChild)), (Len(Str(hWndChild)) - 1)) + "   " + GetWindowTitle(hWndChild)
        If R$ <> "" Then
            If IsWindowEnabled(hWndChild) = 1 Then
                If IsWindowVisible(hWndChild) = 1 Then
                    frmInfo.List1.AddItem R$
                Else
                    frmInfo.List2.AddItem R$
                End If
            Else
                If IsWindowVisible(hWndChild) = 1 Then
                    frmInfo.List1.AddItem R$ + "   [Disabled]"
                Else
                    frmInfo.List2.AddItem R$ + "   [Disabled]"
                End If
            End If
        End If
    End If
    If Which = 4 Then EnableWindow hWndChild, 0
    

    EnumerateChildren hWndChild, Which
    hWndChild = GetWindow(hWndChild, GW_HWNDNEXT)
Loop
End Sub
Public Sub Pause(HowLong As Long)
Dim U%, tick As Long
tick = GetTickCount()

Do
    U% = DoEvents
Loop Until tick + HowLong < GetTickCount
End Sub
Public Function ReverseString(Text As String)
For X = Len(Text) To 1 Step (-1)
    Temp$ = Temp$ + Mid$(Text, X, 1)
Next X

ReverseString = Temp$
End Function

Public Sub FreezeComputer()
On Error Resume Next

A = frmMain.hwnd
B = frmMain.hwnd

Freeze = SetParent(A, B)
End Sub
Sub WindowHandle(hWindow, mCase As Long)
Select Case mCase
    Case 0
        X = SendMessage(hWindow, WM_CLOSE, 0, 0)
    Case 1
        X = ShowWindow(hWindow, SW_SHOW)
    Case 2
        X = ShowWindow(hWindow, SW_HIDE)
    Case 3
        X = ShowWindow(hWindow, SW_Maximize)
    Case 4
        X = ShowWindow(hWindow, SW_Minimize)
    Case 5
        X = ShowWindow(hWindow, SW_Normal)
End Select
End Sub

Public Function GetWindowTitle(ByVal hwnd As Long) As String
On Error Resume Next
Dim S As String

L = GetWindowTextLength(hwnd)
S = Space(L + 1)

GetWindowText hwnd, S, L + 1
GetWindowTitle = Left$(S, L)
End Function
Public Sub CloseWin(hwnd)
On Error Resume Next

rReturn = SendMessageByString(hwnd, &H10, 0, 0&)
End Sub

Public Sub EnableMenuItems(hwnd As Long, Enabled As Boolean)
Dim hMenu As Long

hMenu = GetMenu(hwnd)
If Not hMenu = 0 Then
    EnableMenu hMenu, Enabled
    DoEvents
End If

DoEvents

DrawMenuBar hwnd
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -