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

📄 updaterunstart.bas

📁 guan yu pai ke xi tong de ruan jian
💻 BAS
字号:
Attribute VB_Name = "UpdateRunStart"
Private Declare Function GetDesktopWindow Lib "user32" () 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 SendMessage Lib "user32" Alias "SendMessageA" (ByVal HWND As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetFocus Lib "user32" (ByVal HWND 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) As Long
Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
Private Const HWND_TOP = 0
Private Const SW_NORMAL = 1
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const WM_CLEAR = &H303
Private Const WM_CLOSE = &H10
Private Const WM_DESTROY = &H2
Private Const WM_DESTROYCLIPBOARD = &H307
Private Const WM_MDICREATE = &H220
Private Const WM_MDIDESTROY = &H221
Private Const WM_NCDESTROY = &H82
Private Const WM_POWER = &H48
Private Const WM_QUIT = &H12
Private Const SWP_SHOWWINDOW = &H40
'注册表键值。
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005
Sub Main()
On Error Resume Next
    Dim MainProgFrm As Boolean '更新开始时主程序是否处于活动状态。
    If App.PrevInstance = True Then Exit Sub '防止重复启动升级程序。
    MainProgFrm = MainWinFind '查找主程序窗口
    If MainProgFrm = True Then MainWinClose  '试图关闭已经启动的主程序。
    UpdateFile.Show 1 '更新程序。
    If MainProgFrm = True Then MainWinRun '如果先前主程序处于活动状态。则更新后自动打开。
End Sub
Public Function MainWinClose(Optional ByVal TitleStr As String = "翰林排课", Optional ByVal WinClass As String = "ThunderRT6Main") As Boolean
    Dim HWND As Long
    MainWinClose = False
    HWND = FindWindowEx(0, 0, WinClass, TitleStr) '"ThunderRT6Main"是VB6的窗口类
    If HWND = 0 Then Exit Function
    '将窗体显示在最前面,等待关闭,只有关闭之后才进行下一步操作。
    SetWindowPos HWND, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW
    SendMessage HWND, WM_CLOSE, 0, 0
    HWND = FindWindowEx(0, 0, WinClass, TitleStr) '"ThunderRT6Main"是VB6的窗口类
    If HWND <> 0 Then MainWinClose = True '返回非零值表示失败。
End Function
Public Function MainWinFind(Optional ByVal TitleStr As String = "翰林排课", Optional ByVal WinClass As String = "ThunderRT6Main") As Boolean
    If FindWindowEx(0, 0, WinClass, TitleStr) <> 0 Then MainWinFind = True Else MainWinFind = False
End Function
Public Function MainWinRun(Optional ByVal TitleStr As String = "翰林排课.exe") As Boolean
    Dim ProgFileName As String
    ProgFileName = App.Path & "\" & TitleStr
    If MainWinFind = False Then WinExec ProgFileName, SW_NORMAL
End Function

⌨️ 快捷键说明

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