commit 8492ab368bfa9f04279111429ad044daae276b01 Author: j502647092 Date: Mon Jul 27 21:18:33 2015 +0800 初始化项目... Signed-off-by: j502647092 diff --git a/Frm_Tools.bas b/Frm_Tools.bas new file mode 100644 index 0000000..371a617 --- /dev/null +++ b/Frm_Tools.bas @@ -0,0 +1,1085 @@ +Attribute VB_Name = "Frm_Tools" +'#######################################ûؼ˵######################################### + +':ؼ + +':ʵִ͸ƶصȹ + +':201465 + +': + +'λ:Ϻжˮ繤̰װ޹˾ + +''====================================ûؼʹ˵======================================= +'忿Զ:Auto_Hide( As Long, غʾֳ As Long, As Long, [(ѡ)ƶٶ As Long = 1]) +'忿Զ:Auto_Magnet( As Form, As Long,[ѡ״̬]) +'***************************************************************************************************************************** +'Сʱ:Daily_Show( As Form, ʱʱ As Long) +'͸ʱ:Daily_Tpt(ģʽ As Boolean, As Long, ͸ As Integer, ʱʱ As Long) +'***************************************************************************************************************************** +'ȫƶ(ͨƶ):fMove( As Form, Button As Integer, Shift As Integer, X As Single, Y As Single) +'ȫƶ(ͨ):hMove( As Long) +'***************************************************************************************************************************** +'ȡ:GetClassName( As Long) As String +'***************************************************************************************************************************** +'ȡ: GetFedWnd() As Long +'(ͨ):SetFedWnd( As Long) +'***************************************************************************************************************************** +'ȡԭдؼС: GetFrmSize +'ݴСؼС: SetFrmSize +'***************************************************************************************************************************** +'ͨҴ:GetWindowhWnd( As String, As String) As Long +'ͨҴ:GethWndByClass( As String) As Long +'ͨҴ:GethWndByTitle( As String) As Long +'ȡͼ:GetIconhWnd( As Long) As Long +'ȡڴ: GetMouseWindowhWnd() As Long +'***************************************************************************************************************************** +'ȡ(ͨ):GetTitle( As Long) As String +'ô(ͨ):SetTitle( As Long, As String) +'***************************************************************************************************************************** +'̨¼:hWndKeyDown( As Long, As Long, [ģʽ As KeyPressMode = Normal]) +'̨:hWndKeyPress( As Long, As Long, [ģʽ As KeyPressMode = Normal]) +'̨ͷż:hWndKeyUp( As Long, As Long, [ģʽ As KeyPressMode = Normal]) +'ݰ뷵ذϢ:KeyNum2Key( As long) As String +'ɨMakeKeyLparam:( As long,ģʽ As Long) As String +'***************************************************************************************************************************** +'ʾ:InShow( As Long, [ʾģʽ As Boolean = True](TrueʾFalse)) +'ö:InTop( As Long, [ʾģʽ As Boolean = True](TrueöFalseDzö)) +'***************************************************************************************************************************** +'ʹ岻Ϣɲ洰:NoControl( As Long, [ģʽ As Boolean](Mode=TureʾܣFalseʾ)) +'***************************************************************************************************************************** +'ڼͼ:GethWndByClassEx( As Longͼ As Long) +'***************************************************************************************************************************** +'ʱ:Sleep(ʱС As Long[]) +'***************************************************************************************************************************** +'͸:Tpt( As Long, ͸(0-100) As Integer, [Ҫ͸ɫ As Long]) +'#######################################ûؼ˵######################################### + +Option Explicit +Public VisibleT As Boolean +''#########################################ģ麯######################################## +'====================̨======================= +Public Enum KeyPressMode + Normal + System + GameMode +End Enum + +Private Const WM_KEYDOWN As Long = &H100 +Private Const WM_KEYUP As Long = &H101 +Private Const WM_CHAR As Long = &H102 +Private Const WM_SYSKEYDOWN As Long = &H104 +Private Const WM_SYSKEYUP As Long = &H105 + +Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long +Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long +'====================ȡڴ======================= +Private Declare Function WindowFromPoint Lib "user32.dll" (ByVal xPoint As Long, ByVal yPoint As Long) As Long +''================================Ϣ========================================= +Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long +Private Const WM_SETICON As Long = &H80 +''========================================================================= +Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long +Private 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 +''================================弤========================================= +Private Declare Function GetForegroundWindow Lib "user32" () As Long +Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long +''========================================================================= +Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long +Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long +Private Declare Function GetClassNameh Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long +Private Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long +''================================ڲ========================================= +Private 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) +Private Const FRM_TOP = -1 'ö +Private Const FRM_NORMAL = -2 'ͨ +Private Const FRM_NOSIZE = &H1 'ıС +Private Const FRM_NOMOVE = &H2 'ƶ +Private Const FRM_TOPMOST = &H3 'ö +Private Const FRM_NOZEROER = &H4 +Private Const FRM_NOREDRAW = &H8 'ػ +Private Const FRM_NOACTIVATE = &H10 ' +Private Const FRM_FRAMECHANGED = &H20 +Private Const FRM_SHOWWINDOW = &H40 'ʾ +Private Const FRM_HIDEWINDOW = &H80 'ش +Private Const FRM_NOCOPYBITS = &H100 +Private Const FRM_NOOWNERZORDER = &H200 +Private Const FRM_NOSENDCHANGING = &H400 +'========================ȫƶ============================ +Private Declare Function ReleaseCapture Lib "user32" () As Long +Private Const HTCAPTION = 2 +Private Const WM_NCLBUTTONDOWN = &HA1 +'''========================忿Զ============================ +Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long +Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long +Private Type RECT 'ȡλ + Left As Long + Top As Long + Right As Long + Bottom As Long +End Type +Public Enum SetPos + SpTop + SPButton + SpLeft + SPRight +End Enum +Private Type POINTAPI 'ȡλ + X As Long + Y As Long +End Type +Private IsInFrm As Boolean 'ⴰ״ֹ̬˸ +Private Const HWND_TOPMOST = -1 ' +Private Const SWP_NOSIZE = &H1 +Private Const SWP_NOMOVE = &H2 +Private Const HWND_TOP = 0 +Private Const SWP_NOACTIVATE = &H10 +Private Const SWP_SHOWWINDOW = &H40 +Private 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 +Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long +Private Declare Function IsZoomed Lib "user32" (ByVal hwnd As Long) As Long +Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long +'''========================͸============================ +Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long +Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long +Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long +Private Const WS_EX_LAYERED = &H80000 +Private Const WS_EX_TRANSPARENT = &H20& +Private Const WS_EX_TOPMOST = &H8 +Private Const GWL_EXSTYLE = (-20) +Private Const LWA_ALPHA = &H2 +Private Const LWA_COLORKEY = &H1 +'===================================ԲǴ==================================================== +Private Declare Function SetWindowRgn Lib "user32.dll" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long +Private Declare Function CreateRoundRectRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long +Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long +'=================================Sleep======================================== +Private Declare Function timeGetTime Lib "winmm.dll" () As Long +Private Savetime As Double +''================================ݾPID========================================= +Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, ByRef lpdwprocessid As Long) As Long +''================================ϵͳ汾ȡ========================================= +Private Type OSVERSIONINFO + dwOSVersionInfoSize As Long + dwMajorVersion As Long + dwMinorVersion As Long + dwBuildNumber As Long + dwPlatformId As Long + szCSDVersion As String * 128 ' Maintenance string for PSS usage +End Type +Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long +Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long +Private Const SM_CLEANBOOT = 67 +Private Const SM_DEBUG = 22 +Private Const SM_SLOWMACHINE = 73 +Private Const VER_PLATFORM_WIN32s = 0 +Private Const VER_PLATFORM_WIN32_WINDOWS = 1 +Private Const VER_PLATFORM_WIN32_NT = 2 + +Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long +Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long +Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal hIcon As Long) As Long +Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long +''#####################################################ģ##################################################### + +'#############################################ؼģ################################################# +'********************************************************************************************************** +'***SetWindowIcon +'*** ı䴰ICOͼ +'***ֵ( As Long, [ѡ]ͼļ As String, [ѡ]ͼλ As Integer) +'***ֵָPID +'***˵ NULL +'********************************************************************************************************** +Public Sub SetWindowIcon(hwnd As Long, Optional FileName As String, Optional IconIndex As Integer) + Dim m_Icon As Long + Dim hModule As Long + If Len(FileName) = 0 Or Len(Dir(FileName, vbHidden)) = 0 Then + Dim MyPath As String + MyPath = App.Path + If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" + FileName = MyPath & App.EXEName & ".exe" + End If + hModule = GetModuleHandle(FileName) + m_Icon = ExtractIcon(hModule, FileName, IconIndex) + SendMessage hwnd, WM_SETICON, 0, ByVal m_Icon +End Sub + +Public Function GetSystemVer() + Dim myVer As OSVERSIONINFO + Dim q As Long + myVer.dwOSVersionInfoSize = 148 'ȡϵͳ汾 + q& = GetVersionEx(myVer) + GetSystemVer = myVer.dwMajorVersion & "." & myVer.dwMinorVersion +End Function +'********************************************************************************************************** +'***SetRgnWindows +'*** ı䴰ӴС +'***ֵ( As Form,ԵС As Long) +'***ֵָPID +'***˵ NULL +'********************************************************************************************************** +Public Function SetRgnWindows(Frm, Rng As Long) As Long + Dim FRng As Long + Dim w As Long + Dim h As Long + w = ScaleX(Frm.Width, vbTwips, vbPixels) + h = ScaleX(Frm.Height, vbTwips, vbPixels) + FRng = CreateRectRgn(Rng, Rng, w - Rng, h - Rng) + SetRgnWindows = SetWindowRgn(Frm.hwnd, FRng, True) +End Function +'********************************************************************************************************** +'***SetRoundWindows +'*** ı䴰ΪԲǴ +'***ֵ( As Form,ԲǴС As Long) +'***ֵָPID +'***˵ NULL +'********************************************************************************************************** +Public Function SetRoundWindows(Frm, Rng As Long) As Long + Dim FRng As Long + Dim w As Long + Dim h As Long + w = ScaleX(Frm.Width, vbTwips, vbPixels) + h = ScaleX(Frm.Height, vbTwips, vbPixels) + FRng = CreateRoundRectRgn(0, 0, w - 0, h - 0, Rng, Rng) + SetRoundWindows = SetWindowRgn(Frm.hwnd, FRng, True) +End Function +'********************************************************************************************************** +'***GetPidByhWnd +'*** ݾPID +'***ֵ( As Long) +'***ֵָPID +'***˵ NULL +'********************************************************************************************************** +Public Function GetPidByhWnd(ByVal hwnd As Long) As Long + Dim PID As Long + GetWindowThreadProcessId hwnd, PID + GetPidByhWnd = PID +End Function +'********************************************************************************************************** +'***Tpt +'*** ͸ +'***ֵ( As Long, ͸(0-100) As Integer, [Ҫ͸ɫ As Long = -1]) +'***ֵNULL +'***˵ Me.hWnd +'********************************************************************************************************** +Public Sub Tpt(ByVal hwnd As Long, ByVal Range As Integer, Optional ByVal TransColor As Long = -1) + If Range > 100 Then Range = 100 '͸ȴ100Ϊ100 + If Range < 0 Then Range = 0 '͸С0Ϊ0 + Dim rtn As Long + rtn = GetWindowLong(hwnd, GWL_EXSTYLE) 'ȡô״̬ + rtn = rtn Or WS_EX_LAYERED + SetWindowLong hwnd, GWL_EXSTYLE, rtn + If TransColor = -1 Then + SetLayeredWindowAttributes hwnd, 0, Range * 2.55, LWA_ALPHA 'ô͸ + Else + SetLayeredWindowAttributes hwnd, TransColor, Range * 2.55, LWA_COLORKEY 'ɫô͸ + End If +End Sub +'********************************************************************************************************** +'***NoControl +'*** ʹ岻Ϣɲ洰 +'***ֵ( As Long, [ģʽ As Boolean]) +'***ֵNULL +'***˵ Me.hWndMode=TureʾܣFalseʾܡ +'********************************************************************************************************** +Public Sub NoControl(ByVal hwnd As Long, Optional ByVal Mode As Boolean = True) + Dim rtn As Long + rtn = GetWindowLong(hwnd, GWL_EXSTYLE) 'ȡô״̬ + rtn = rtn Or WS_EX_LAYERED + If Mode Then + rtn = rtn Or WS_EX_TRANSPARENT + Else + rtn = rtn And Not WS_EX_TRANSPARENT + End If + SetWindowLong hwnd, GWL_EXSTYLE, rtn +End Sub +'********************************************************************************************************** +'***Daily_Tpt +'*** ͸ʱ +'***ֵ(ģʽ As Boolean, As Long, ͸ As Integer, ʱʱ As Long) +'***ֵNULL +'***˵ Me.hWnd,Mode = True 'ʾ壬Mode = False 'ش +'********************************************************************************************************** +Public Sub Daily_Tpt(ByVal Mode As Boolean, ByVal hwnd As Long, ByVal Range As Integer, ByVal Daily As Long, Optional ByVal AddTpt As Long = 1) +'Mode = True 'ʾ +'Mode = False 'ش + If Daily > 5 Then Daily = 5 'ֹ󣬵ʾ쳣 + If Daily <= 0 Then Daily = 0.1 + Daily = Daily * 10 + Dim Tpti As Integer + If Mode = True Then + Do Until Tpti > Range + Tpti = Tpti + AddTpt + Sleep Daily + Tpt hwnd, Tpti + Loop + Else + Tpti = Range + Do Until Tpti < 0 + Tpti = Tpti - AddTpt + Sleep Daily + Tpt hwnd, Tpti + Loop + End If +End Sub +'********************************************************************************************************** +'***Daily_Show +'*** Сʱ +'***ֵ( As Form, ʱʱ As Long) +'***ֵNULL +'********************************************************************************************************** +Public Sub Daily_Show(ByVal Frm As Form, ByVal Daily As Long) + Dim h As Long + Dim w As Long + Dim i As Long + h = Frm.Height + w = Frm.Width + Frm.Height = 20 + Frm.Width = 20 + For i = 20 To w Step Daily + Sleep 10 + Frm.Width = i + Frm.Refresh + Next + For i = 20 To h Step Daily + Sleep 10 + Frm.Height = i + Frm.Refresh + Next +End Sub +'********************************************************************************************************** +'***InTop +'*** ö +'***ֵ( As Long, [ʾģʽ As Boolean = True](TrueöFalseDzö)) +'***ֵNULL +'***˵ Me.hWnd +'********************************************************************************************************** +Public Sub InTop(ByVal hwnd As Long, Optional ByVal Mode As Boolean = True) + If Mode Then + SetWindowPos hwnd, FRM_TOP, 0, 0, 0, 0, FRM_TOPMOST 'ö + Else + SetWindowPos hwnd, FRM_NORMAL, 0, 0, 0, 0, FRM_TOPMOST 'ö + End If +End Sub +'********************************************************************************************************** +'***InShow +'*** ʾ +'***ֵ( As Long, [ʾģʽ As Boolean = True](TrueʾFalse)) +'***ֵNULL +'***˵ Me.hWnd +'********************************************************************************************************** +Public Sub InShow(ByVal hwnd As Long, Optional ByVal Mode As Boolean = True) + If Mode Then + SetWindowPos hwnd, 0, 0, 0, 0, 0, FRM_SHOWWINDOW Or FRM_TOPMOST 'ʾ + Else + SetWindowPos hwnd, 0, 0, 0, 0, 0, FRM_HIDEWINDOW Or FRM_TOPMOST 'ʾ + End If +End Sub +'********************************************************************************************************** +'***Auto_Hide +'*** ܣ忿Զ +'***ֵ( As Long, غʾֳ As Long, As Long, [(ѡ)ƶٶ As Long = 1]) +'***ֵNULL +'***˵ Me.hWnd +'********************************************************************************************************** +Public Sub Auto_Hide(ByVal Enable As Boolean, Optional ByVal hwnd As Long, Optional ByVal Range As Long, Optional Daily As Long, Optional ByVal MoveInt As Long = 1) + Tim.Enabled = Enable + Tim.Interval = Daily + Tim.Tag = hwnd & " " & Range & " " & MoveInt +End Sub + +Private Sub Tim_Timer() + Dim info + info = Split(Tim.Tag) + Auto_Hide_Load Val(info(0)), Val(info(1)), Val(info(2)) +End Sub + +Private Sub Auto_Hide_Load(ByVal hwnd As Long, ByVal Range As Long, Optional ByVal MoveInt As Long) + Dim P As POINTAPI + Dim F As RECT + Dim T As Long + Dim WinHeight As Long + Dim WinWidth As Long + Dim ScrHeight As Long + Dim ScrWidth As Long + Dim IsTop As Long + IsTop = IsTopmost(hwnd) + GetCursorPos P 'õMOUSEλ + GetWindowRect hwnd, F 'õλ + WinWidth = F.Right - F.Left + WinHeight = F.Bottom - F.Top + ScrHeight = Screen.Height / 15 + ScrWidth = Screen.Width / 15 + If MoveInt <= 0 Then MoveInt = 0 + If IsZoomed(hwnd) = 0 And IsIconic(hwnd) = 0 Then + If P.X >= F.Left And P.X <= F.Right And P.Y >= F.Top And P.Y <= F.Bottom Then + If IsInFrm Then + SetWindowPos hwnd, FRM_TOP, 0, 0, 0, 0, FRM_TOPMOST + If F.Top <= 0 Then + T = F.Top + Do Until T >= 0 'ʾ + If MoveInt = 0 Then T = 0 Else T = T + MoveInt + If T > 0 Then T = 0 + SetWindowPos hwnd, 0, F.Left, T, 0, 0, FRM_NOSIZE + DoEvents + Loop + ElseIf F.Left <= 0 Then 'ʾ + T = F.Left + Do Until T >= 0 + If MoveInt = 0 Then T = 0 Else T = T + MoveInt + If T > 0 Then T = 0 + SetWindowPos hwnd, 0, T, F.Top, 0, 0, FRM_NOSIZE + DoEvents + Loop + ElseIf F.Bottom >= ScrHeight Then 'ʾ + T = F.Bottom + Do Until T <= ScrHeight + If MoveInt = 0 Then T = ScrHeight Else T = T - MoveInt + If T > ScrHeight Then T = ScrHeight + SetWindowPos hwnd, 0, F.Left, T - WinHeight, 0, 0, FRM_NOSIZE + DoEvents + Loop + ElseIf F.Right >= ScrWidth Then 'ʾ + T = F.Right + Do Until T <= ScrWidth + If MoveInt = 0 Then T = ScrWidth Else T = T - MoveInt + If T > ScrWidth Then T = ScrWidth + SetWindowPos hwnd, 0, T - WinWidth, F.Top, 0, 0, FRM_NOSIZE + DoEvents + Loop + End If + IsInFrm = False + End If + Else + If Not IsInFrm Then + SetWindowPos hwnd, FRM_NORMAL, 0, 0, 0, 0, FRM_TOPMOST + If F.Top <= 5 Then + T = F.Top + Do Until T <= Range / 15 - WinHeight 'ش,rangeΪ¶泤 + If MoveInt = 0 Then T = Range / 15 - WinHeight Else T = T - MoveInt + If T < Range / 15 - WinHeight Then T = Range / 15 - WinHeight + SetWindowPos hwnd, 0, F.Left, T, 0, 0, FRM_NOSIZE + DoEvents + Loop + ElseIf F.Left <= 5 Then + T = F.Left + Do Until T <= Range / 15 - WinWidth 'ش + If MoveInt = 0 Then T = Range / 15 - WinWidth Else T = T - MoveInt + If T < Range / 15 - WinWidth Then T = Range / 15 - WinWidth + SetWindowPos hwnd, 0, T, F.Top, 0, 0, FRM_NOSIZE + DoEvents + Loop + ElseIf F.Bottom >= ScrHeight - 5 Then 'ش + T = F.Bottom - WinHeight + Do Until T >= ScrHeight - Range / 15 + If MoveInt = 0 Then T = ScrHeight - Range / 15 Else T = T + MoveInt + If T > ScrHeight - Range / 15 Then T = ScrHeight - Range / 15 + SetWindowPos hwnd, 0, F.Left, T, 0, 0, FRM_NOSIZE + DoEvents + Loop + ElseIf F.Right >= ScrWidth - 5 Then 'ش + T = F.Right - WinWidth + Do Until T >= ScrWidth - Range / 15 + If MoveInt = 0 Then T = ScrWidth - Range / 15 Else T = T + MoveInt + If T > ScrWidth - Range / 15 Then T = ScrWidth - Range / 15 + SetWindowPos hwnd, 0, T, F.Top, 0, 0, FRM_NOSIZE + DoEvents + Loop + End If + IsInFrm = True + End If + End If + End If + If IsTop <> IsTopmost(hwnd) Then SetWindowPos hwnd, IsTop, 0, 0, 0, 0, FRM_TOPMOST +End Sub + +Public Function IsTopmost(hwnd As Long) As Long 'жϴö + Dim Ret As Long, t1 As Long + Ret = GetWindowLong(hwnd, GWL_EXSTYLE) + t1 = Ret Or WS_EX_TOPMOST + IsTopmost = IIF(Ret = t1, -1, -2) +End Function +'------------------------------------Ϊϰ汾-------------------------------------------------------- +'********************************************************************************************************** +'***Auto_Hide +'*** ܣ忿Զ +'***ֵ( As Form, ʱ As Timer, غʾֳ As Long, As Long) +'***ֵNULL +'***˵ ڴмʱTimer¼е(ֶTimerʱֵ) +'********************************************************************************************************** + +'Public Sub Auto_Hide(ByVal Frm As Form, ByVal Tmr As Timer, ByVal Range As Long, ByVal Daily As Long) +' Dim P As POINTAPI +' Dim f As RECT +' Tmr.Enabled = True +' Tmr.Interval = Daily +' GetCursorPos P 'õMOUSEλ +' GetWindowRect Frm.hwnd, f 'õλ +' If Frm.WindowState <> 1 Then +' If P.X >= f.Left And P.X <= f.Right And P.Y >= f.Top And P.Y <= f.Bottom Then +' 'MOUSE ڴ +' If Not IsInFrm Then '֮ǰڴ +' If Frm.Top <= 0 Then +' Do Until Frm.Top >= 0 'ʾ +' Frm.Top = Frm.Top + 1 +' Loop +' ElseIf Frm.Left <= 0 Then 'ʾ +' Do Until Frm.Left >= 0 +' Frm.Left = Frm.Left + 1 +' Loop +' ElseIf Frm.Top + Frm.Height >= Screen.Height Then 'ʾ +' Do Until Frm.Top <= Screen.Height - Frm.Height +' Frm.Top = Frm.Top - 1 +' Loop +' ElseIf Frm.Left + Frm.Width >= Screen.Width Then 'ʾ +' Do Until Frm.Left <= Screen.Width - Frm.Width +' Frm.Left = Frm.Left - 1 +' Loop +' End If +' IsInFrm = True +' End If +' Else +' If IsInFrm Then '֮ǰڴ +' If Frm.Top <= 5 Then +' Do Until Frm.Top <= Range - Frm.Height 'ش,rangeΪ¶泤 +' Frm.Top = Frm.Top - 1 +' Loop +' ElseIf f.Left <= 5 Then +' Do Until Frm.Left <= Range - Frm.Width 'ش +' Frm.Left = Frm.Left - 1 +' Loop +' ElseIf Frm.Top + Frm.Height >= Screen.Height - 5 Then 'ش +' Do Until Frm.Top >= Screen.Height - Range +' Frm.Top = Frm.Top + 1 +' Loop +' ElseIf Frm.Left + Frm.Width >= Screen.Width - 5 Then 'ش +' Do Until Frm.Left >= Screen.Width - Range +' Frm.Left = Frm.Left + 1 +' Loop +' End If +' IsInFrm = False +' End If +' End If +' End If +'End Sub + +'********************************************************************************************************** +'***Auto_Magnet +'*** 忿Զ +'***ֵ( As Form, As Long,[ѡ״̬]) +'***ֵNULL +'***˵ ڴMouseMove¼е +'********************************************************************************************************** +Public Sub Auto_Magnet(ByVal Frm As Form, ByVal Range As Long, Optional ByVal Button As Integer) 'range + Dim P As POINTAPI + GetCursorPos P 'õMOUSEλ + If Button = 1 Then 'õ״̬ǷڱԵ + If P.X = 0 Then Frm.Left = 0 '괦ĻԵֱ + If P.Y = 0 Then Frm.Top = 0 + If P.X = Screen.Width Then Frm.Left = Screen.Width - Frm.Width + If P.Y = Screen.Height Then Frm.Top = Screen.Height - Frm.Height + Else + 'ĻСδĻ⣬ĻȱԵ + If Frm.Left < Range And Frm.Left > 0 Then + Frm.Left = 0 ' + End If + If Frm.Top < Range And Frm.Top > 0 Then + Frm.Top = 0 ' + End If + If Frm.Left + Frm.Width > Screen.Width - Range And Frm.Left + Frm.Width < Screen.Width Then + Frm.Left = Screen.Width - Frm.Width ' + End If + If Frm.Top + Frm.Height > Screen.Height - Range And Frm.Top + Frm.Height < Screen.Height Then + Frm.Top = Screen.Height - Frm.Height ' + End If + ReleaseCapture + End If +End Sub + +'********************************************************************************************************** +'***WindowKiss +'*** (ͨ) +'***ֵ( As Long,ϴ As Long) +'***ֵNULL +'***˵ +'********************************************************************************************************** +'Public Sub WindowKiss(ByVal Enable As Boolean, Optional ByVal BhWnd As Long, Optional ByVal KhWnd As Long, Optional ByVal SetRect As SetPos, Optional ByVal IsIN As Long, Optional ByVal Daily As Long) +' Ktmr.Enabled = Enable +' Ktmr.Interval = Daily +' Ktmr.Tag = BhWnd & " " & KhWnd & " " & SetRect & " " & IsIN +'End Sub +' +'Private Sub Ktmr_Timer() +' On Error Resume Next +' Dim AWK() As String +' AWK = Split(Ktmr.Tag) +' AutoWindowKiss AWK(0), AWK(1), AWK(2), AWK(3) +'End Sub +Public Sub AutoWindowKiss(ByVal BhWnd As Long, ByVal KhWnd As Long, ByVal SetRect As SetPos, ByVal IsIN As Boolean, ByVal IsTop As Boolean) + Dim B As RECT + Dim k As RECT + Dim BH As Long + Dim BW As Long + Dim KH As Long + Dim KW As Long + Dim BHK As Long + Dim BWK As Long + Dim Frm_ST As Long + If IsTop Then Frm_ST = -1 Else Frm_ST = -2 + GetWindowRect BhWnd, B + GetWindowRect KhWnd, k + BH = B.Bottom - B.Top + BW = B.Right - B.Left + KH = k.Bottom - k.Top + KW = k.Right - k.Left + BHK = Abs(BH - KH) / 2 + BWK = Abs(BW - KW) / 2 + Select Case SetRect + Case SpTop + If IsIN Then + SetWindowPos KhWnd, Frm_ST, B.Left + BWK, B.Top, 0, 0, FRM_NOSIZE + Else + SetWindowPos KhWnd, Frm_ST, B.Left + BWK, B.Top - KH, 0, 0, FRM_NOSIZE + End If + Case SPButton + If IsIN Then + SetWindowPos KhWnd, Frm_ST, B.Left + BWK, B.Bottom - KH, 0, 0, FRM_NOSIZE + Else + SetWindowPos KhWnd, Frm_ST, B.Left + BWK, B.Bottom, 0, 0, FRM_NOSIZE + End If + Case SpLeft + If IsIN Then + SetWindowPos KhWnd, Frm_ST, B.Left, B.Top, 0, 0, FRM_NOSIZE + Else + SetWindowPos KhWnd, Frm_ST, B.Left - KW, B.Top, 0, 0, FRM_NOSIZE + End If + Case SPRight + If IsIN Then + SetWindowPos KhWnd, Frm_ST, B.Left - KW, B.Top, 0, 0, FRM_NOSIZE + Else + SetWindowPos KhWnd, Frm_ST, B.Left, B.Top, 0, 0, FRM_NOSIZE + End If + End Select + +End Sub + +'********************************************************************************************************** +'***hMove +'*** ȫƶ(ͨ) +'***ֵ( As Long) +'***ֵNULL +'***˵ ڴMouseDown¼еãMe.hWnd +'********************************************************************************************************** +Public Sub hMove(ByVal hwnd As Long) + ReleaseCapture 'ӵǰ߳еĴͷ겶񣬲ָͨ봦 + SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0& 'ƶ +End Sub +'********************************************************************************************************** +'***fMove +'*** ȫƶ(ͨƶ) +'***ֵ( As Form, Button As Integer, Shift As Integer, X As Single, Y As Single) +'***ֵNULL +'***˵ ڴMouseMove¼еãMe壬ʣµֱButton, Shift, X, Y +'********************************************************************************************************** +Public Sub fMove(Frm As Form, Button As Integer, Shift As Integer, X As Single, Y As Single) + On Error Resume Next + Static nX&, nY& + If Button = 1 Then + Frm.Move Frm.Left - nX + X, Frm.Top - nY + Y + Button = 0 + Else + nX = X + nY = Y + End If +End Sub +'********************************************************************************************************** +'***GetTitle +'*** ȡ(ͨ) +'***ֵ( As Long) +'***ֵ As String +'********************************************************************************************************** +Public Function GetTitle(ByVal hwnd As Long) As String 'õ + Dim StrText As String * 256 'һַָ + Dim cch As Long 'һȡַ + cch = GetWindowText(hwnd, StrText, 256) 'ȡ + GetTitle = Left(StrText, cch) 'ݳȽȡ +End Function +'********************************************************************************************************** +'***SetTitle +'*** ô(ͨ) +'***ֵ( As Long, As String) +'***ֵNULL +'********************************************************************************************************** +Public Sub SetTitle(ByVal hwnd As Long, ByVal TitleStr As String) 'ô + SetWindowText hwnd, TitleStr 'ô +End Sub +'********************************************************************************************************** +'***GetFedWnd +'*** ȡ +'***ֵNULL +'***ֵǰľ As Long +'********************************************************************************************************** +Public Function GetFedWnd() As Long + GetFedWnd = GetForegroundWindow 'õǰ +End Function +'********************************************************************************************************** +'***SetFedWnd +'*** (ͨ) +'***ֵ( As Long) +'***ֵNULL +'********************************************************************************************************** +Public Sub SetFedWnd(ByVal hwnd As Long) + SetForegroundWindow hwnd 'þΪ +End Sub +'##########################################ִؼԭдС############################################# +'********************************************************************************************************** +'***GetFrmSize +'*** ȡԭдؼС +'***ֵNull +'***ֵNULL +'***˵ ڴLoad¼еãҿؼڴ +'********************************************************************************************************** +Public Sub GetFrmSize() 'FormName As Form) + On Error Resume Next + Dim FormName As Form + Set FormName = UserControl.Parent 'ø + Dim obj As Control 'һؼ + FormName.ScaleWidth = 1000 'ôˮƽλ + FormName.ScaleHeight = 1000 'ô崹ֱλ + For Each obj In FormName 'пؼ + obj.Tag = Str(obj.Left) & Str(obj.Top) & Str(obj.Width) & Str(obj.Height) '洢ռλõTag + Next obj + On Error GoTo 0 +End Sub +'********************************************************************************************************** +'***SetFrmSize +'*** ݴСؼС +'***ֵNull +'***ֵNULL +'***˵ ڴResize¼еãҿؼڴ +'********************************************************************************************************** +Public Sub SetFrmSize() 'Optional FormName As Form = UserControl.Parent) + On Error Resume Next + Dim FormName As Form + Dim Pos() As String + Dim obj As Control + Set FormName = UserControl.Parent 'ø + FormName.ScaleWidth = 1000 'ôˮƽλ + FormName.ScaleHeight = 1000 'ô崹ֱλ + For Each obj In FormName 'пؼ + Pos = Split(obj.Tag) ' + obj.Left = Val(Pos(1)) ' + obj.Top = Val(Pos(2)) 'ؼ + obj.Width = Val(Pos(3)) 'λ + obj.Height = Val(Pos(4)) 'С + Next obj + On Error GoTo 0 +End Sub +'##########################################ִؼԭдС############################################# + +'##########################################ھ̨############################################# +'********************************************************************************************************** +'***KeyNum2Key +'*** ݰ뷵ذϢ +'***ֵ( As long) +'***ֵϢ As String +'***˵ +'********************************************************************************************************** +Public Function KeyNum2Key(ByVal KeyNum As Long) As String +'Debug.Print KeyNum + Select Case KeyNum + Case vbKeyLButton: KeyNum2Key = "" + Case vbKeyRButton: KeyNum2Key = "Ҽ" + Case vbKeyCancel: KeyNum2Key = "CANCEL" + Case vbKeyMButton: KeyNum2Key = "м" + Case 5: KeyNum2Key = "չ1" + Case 6: KeyNum2Key = "չ2" + Case vbKeyBack: KeyNum2Key = "˸" '"BACKSPACE" + Case vbKeyTab: KeyNum2Key = "TAB" + Case vbKeyClear: KeyNum2Key = "CLEAR" + Case vbKeyReturn: KeyNum2Key = "ENTER" + Case vbKeyShift: KeyNum2Key = "SHIFT" + Case vbKeyControl: KeyNum2Key = "CTRL" + Case vbKeyMenu: KeyNum2Key = "MENU" + Case vbKeyPause: KeyNum2Key = "PAUSE" + Case vbKeyCapital: KeyNum2Key = "CAPS LOCK" + Case vbKeyEscape: KeyNum2Key = "ESC" + Case vbKeySpace: KeyNum2Key = "SPACEBAR" + Case vbKeyPageUp: KeyNum2Key = "PAGE UP" + Case vbKeyPageDown: KeyNum2Key = "PAGE DN" + Case vbKeyEnd: KeyNum2Key = "END" + Case vbKeyHome: KeyNum2Key = "HOME" + Case vbKeyLeft: KeyNum2Key = "" '"LEFT ARROW" + Case vbKeyUp: KeyNum2Key = "" '"UP ARROW" + Case vbKeyRight: KeyNum2Key = "" '"RIGHT ARROW" + Case vbKeyDown: KeyNum2Key = "" '"DOWN ARROW" + Case vbKeySelect: KeyNum2Key = "SELECT" + Case vbKeyPrint: KeyNum2Key = "PRINT SCREEN" + Case vbKeyExecute: KeyNum2Key = "EXECUTE" + Case vbKeySnapshot: KeyNum2Key = "SNAPSHOT" + Case vbKeyDelete: KeyNum2Key = "DELETE" + Case vbKeyHelp: KeyNum2Key = "HELP" + Case vbKeyNumlock: KeyNum2Key = "NUM LOCK" + Case vbKeyNumpad0: KeyNum2Key = "Num 0" + Case vbKeyNumpad1: KeyNum2Key = "Num 1" + Case vbKeyNumpad2: KeyNum2Key = "Num 2" + Case vbKeyNumpad3: KeyNum2Key = "Num 3" + Case vbKeyNumpad4: KeyNum2Key = "Num 4" + Case vbKeyNumpad5: KeyNum2Key = "Num 5" + Case vbKeyNumpad6: KeyNum2Key = "Num 6" + Case vbKeyNumpad7: KeyNum2Key = "Num 7" + Case vbKeyNumpad8: KeyNum2Key = "Num 8" + Case vbKeyNumpad9: KeyNum2Key = "Num 9" + Case vbKeyMultiply: KeyNum2Key = "MULTIPLICATIONSIGN(*)" + Case vbKeyAdd: KeyNum2Key = "PLUSSIGN(+)" + Case vbKeySeparator: KeyNum2Key = "ENTER" + Case vbKeySubtract: KeyNum2Key = "MINUSSIGN(-)" + Case vbKeyDecimal: KeyNum2Key = "DECIMALPOINT(.)" + Case vbKeyDivide: KeyNum2Key = "DIVISIONSIGN(/)" + Case vbKeyF1: KeyNum2Key = "F1" + Case vbKeyF2: KeyNum2Key = "F2" + Case vbKeyF3: KeyNum2Key = "F3" + Case vbKeyF4: KeyNum2Key = "F4" + Case vbKeyF5: KeyNum2Key = "F5" + Case vbKeyF6: KeyNum2Key = "F6" + Case vbKeyF7: KeyNum2Key = "F7" + Case vbKeyF8: KeyNum2Key = "F8" + Case vbKeyF9: KeyNum2Key = "F9" + Case vbKeyF10: KeyNum2Key = "F10" + Case vbKeyF11: KeyNum2Key = "F11" + Case vbKeyF12: KeyNum2Key = "F12" + Case 91: KeyNum2Key = "Win" + Case 93: KeyNum2Key = "Menu" + Case 160: KeyNum2Key = "SHIFT" + Case 161: KeyNum2Key = "SHIFT" + Case 162: KeyNum2Key = "CTRL" + Case 163: KeyNum2Key = "CTRL" + Case 164: KeyNum2Key = "AIT" + Case 165: KeyNum2Key = "AIT" + + Case 186: KeyNum2Key = ";" + Case 187: KeyNum2Key = "=" + Case 188: KeyNum2Key = "," + Case 189: KeyNum2Key = "-" + Case 190: KeyNum2Key = "." + Case 191: KeyNum2Key = "/" + Case 192: KeyNum2Key = "~" + + Case 219: KeyNum2Key = "[" + Case 220: KeyNum2Key = "\" + Case 221: KeyNum2Key = "]" + Case 222: KeyNum2Key = "'" + Case Else: KeyNum2Key = Chr(KeyNum) + End Select +End Function +'********************************************************************************************************** +'***MakeKeyLparam +'*** ɨ +'***ֵ( As long,ģʽ As Long) +'***ֵɨ As String +'***˵ Ϸеɨ룬ȻЩϷղϢ +'********************************************************************************************************** +Private Function MakeKeyLparam(ByVal VirtualKey As Long, ByVal flag As Long) As Long + Dim S As String + Dim Firstbyte As String 'lparam24-31λ + If flag = WM_KEYDOWN Then 'ǰ¼ + Firstbyte = "00" + Else + Firstbyte = "C0" 'ͷż + End If + Dim Scancode As Long + 'üɨ + + 'Debug.Print "========" & VirtualKey & "=========" + Scancode = MapVirtualKey(VirtualKey, 0) + 'Debug.Print Scancode + Dim Secondbyte As String 'lparam16-23λɨ + Secondbyte = Right("00" & Hex(Scancode), 2) + 'Debug.Print Secondbyte + S = Firstbyte & Secondbyte & "0001" '0001Ϊlparam0-15λʹչϢ + 'Debug.Print "&H" & s + MakeKeyLparam = Val("&H" & S) +End Function +'********************************************************************************************************** +'***hWndKeyDown +'*** ̨¼ +'***ֵ( As Long, As Long, [ģʽ As KeyPressMode = Normal]) +'***ֵNull +'***˵ ں̨° +'********************************************************************************************************** +Public Sub hWndKeyDown(ByVal hwnd As Long, ByVal KeyCode As Long, Optional ByVal PressKeyMode As KeyPressMode = Normal) + Select Case PressKeyMode + Case Normal + PostMessage hwnd, WM_KEYDOWN, KeyCode, 0 'ͷA + Case System + PostMessage hwnd, WM_KEYDOWN, KeyCode, 0 'A + Case GameMode + PostMessage hwnd, WM_KEYDOWN, KeyCode, MakeKeyLparam(KeyCode, WM_KEYDOWN) 'A + End Select +End Sub +'********************************************************************************************************** +'***hWndKeyUp +'*** ̨ͷż +'***ֵ( As Long, As Long, [ģʽ As KeyPressMode = Normal]) +'***ֵNull +'***˵ ں̨ͷŰ +'********************************************************************************************************** +Public Sub hWndKeyUp(ByVal hwnd As Long, ByVal KeyCode As Long, Optional ByVal PressKeyMode As KeyPressMode = Normal) + Select Case PressKeyMode + Case Normal + PostMessage hwnd, WM_KEYUP, KeyCode, 0 'ͷA + Case System + PostMessage hwnd, WM_KEYUP, KeyCode, 0 'ͷA + Case GameMode + PostMessage hwnd, WM_KEYUP, KeyCode, MakeKeyLparam(KeyCode, WM_KEYUP) 'ͷA + End Select +End Sub +'********************************************************************************************************** +'***hWndKeyPress +'*** ̨ +'***ֵ( As Long, As Long, [ģʽ As KeyPressMode = Normal]) +'***ֵNull +'***˵ ں̨ +'********************************************************************************************************** +Public Sub hWndKeyPress(ByVal hwnd As Long, ByVal KeyCode As Long, Optional ByVal PressKeyMode As KeyPressMode = Normal) + Select Case PressKeyMode + Case Normal + PostMessage hwnd, WM_CHAR, KeyCode, 0 'A + Case System + PostMessage hwnd, WM_KEYDOWN, KeyCode, 0 + PostMessage hwnd, WM_KEYUP, KeyCode, 0 + Case GameMode + PostMessage hwnd, WM_KEYDOWN, KeyCode, MakeKeyLparam(KeyCode, WM_KEYDOWN) + PostMessage hwnd, WM_KEYUP, KeyCode, MakeKeyLparam(KeyCode, WM_KEYUP) + End Select +End Sub +'##########################################ھ̨############################################# +'********************************************************************************************************** +'***GetMouseWindowhWnd() +'*** ȡڴ +'***ֵNull +'***ֵ As Long +'***˵ ڻȡ +'********************************************************************************************************** +Public Function GetMouseWindowhWnd() As Long + Dim Point As POINTAPI + GetCursorPos Point + GetMouseWindowhWnd = WindowFromPoint(Point.X, Point.Y) +End Function +'********************************************************************************************************** +'***GetClassName() +'*** ȡ +'***ֵ( As Long) +'***ֵ As String +'***˵ ڻȡ +'********************************************************************************************************** +Public Function GetClassName(ByVal hwnd As Long) As String + Dim StrText As String * 256 + Dim cch As Long + cch = GetClassNameh(hwnd, StrText, 256) + GetClassName = Left(StrText, cch) +End Function +'********************************************************************************************************** +'***GetIconhWnd() +'*** ȡͼ +'***ֵ As Long +'***ֵͼ As Long +'***˵ ڻȡͼ +'********************************************************************************************************** +Public Function GetIconhWnd(ByVal hwnd As Long) As Long + GetIconhWnd = GetClassLong(hwnd, -14) +End Function +'********************************************************************************************************** +'***GetWindowhWnd() +'*** ͨҴ +'***ֵ( As String, As String) +'***ֵҵĴľ As Long +'***˵ ڻȡ +'********************************************************************************************************** +Public Function GetWindowhWnd(ByVal Title As String, ByVal Class As String) As Long + GetWindowhWnd = FindWindow(Class, Title) +End Function +'********************************************************************************************************** +'***GethWndByTitle() +'*** ͨҴ +'***ֵ( As String) +'***ֵҵĴľ As Long +'***˵ ڻȡ +'********************************************************************************************************** +Public Function GethWndByTitle(ByVal Title As String) As Long + GethWndByTitle = FindWindow(vbNullString, Title) +End Function +'********************************************************************************************************** +'***GethWndByTitleEx() +'*** ͨҴ +'***ֵ( As String) +'***ֵҵĴľAs Long +'***˵ ڻȡ +'********************************************************************************************************** +'Public Function GethWndByTitleEx(ByVal Title As String) As Long +' GethWndByTitleEx = FindWindowEx(0, 0, vbNullString, Title) +'End Function +'********************************************************************************************************** +'***GethWndByClass() +'*** ͨҴ +'***ֵ( As String) +'***ֵҵĴľ As Long +'***˵ ڻȡ +'********************************************************************************************************** +Public Function GethWndByClass(ByVal Class As String) As Long + GethWndByClass = FindWindow(Class, vbNullString) +End Function +'********************************************************************************************************** +'***GethWndByClassEx() +'*** ͨҴ +'***ֵ( As String) +'***ֵҵĴľAs Long +'***˵ ڻȡ +'********************************************************************************************************** +Public Function GethWndByClassEx(ByVal Class As String) + Dim hwnd As Long + Dim AllhWnd As String + hwnd = FindWindowEx(0, 0, Class, vbNullString) + Do While hwnd <> 0 + AllhWnd = hwnd & "|" & AllhWnd + hwnd = FindWindowEx(0, 0, Class, vbNullString) + Loop + GethWndByClassEx = Split(AllhWnd, "|") +End Function + +Public Function FindClassEx(ByVal hwnd As Long, ByVal Class As String) + FindClassEx = FindWindowEx(0, hwnd, Class, vbNullString) +End Function +'********************************************************************************************************** +'***GethWndByClassEx() +'*** ڼͼ +'***ֵ( As Longͼ As Long) +'***ֵδ֪ +'***˵ ڼͼ +'********************************************************************************************************** +'''===========================ڼͼ=========================== +Public Function RGBAIcon(ByVal hwnd As Long, ByVal hIcon As Long) As Long + RGBAIcon = SendMessage(hwnd, WM_SETICON, 0, hIcon) +End Function +'********************************************************************************************************** +'***Sleep() +'*** ʱ +'***ֵ(ʱС As Long[]) +'***ֵNull +'***˵ ʱ +'********************************************************************************************************** +Public Sub Sleep(n As Long) + Savetime = timeGetTime + While timeGetTime < Savetime + n + DoEvents + Wend +End Sub +'''===========================ֹıؼС=========================== +Private Sub UserControl_Resize() + UserControl.Parent.Controls(UserControl.Ambient.DisplayName).Visible = False 'Ĭش˿ؼ + UserControl.Height = 240 'Ĭϸ߶ + UserControl.Width = 240 'ĬϿ +End Sub +'#############################################ؼģ################################################# +