?? modmain.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 + -