Skip to content

VBMAN.ToolsWindow - 窗口操作对象

概述

VBMAN.ToolsWindow 提供了 Windows 窗口操作功能,包括窗口置顶、切换、激活等。

方法

TopMost

设置窗口置顶状态

vb
Public Sub TopMost(ByVal hWnd As Long, Optional Cancel As Boolean)

参数:

  • hWnd - 窗口句柄
  • Cancel - 是否取消置顶(默认 False,即设置为置顶)

示例:

vb
' 设置当前窗体置顶
VBMAN.ToolsWindow.TopMost Me.hWnd

' 取消置顶
VBMAN.ToolsWindow.TopMost Me.hWnd, True

SwitchToThis

切换到指定窗口

vb
Public Sub SwitchToThis(ByVal hWnd As Long, Optional IsAltTab As Boolean = True)

参数:

  • hWnd - 窗口句柄
  • IsAltTab - 是否模拟 Alt+Tab 切换(默认 True)

示例:

vb
' 切换到记事本
Dim hWnd As Long
hWnd = FindWindow("Notepad", vbNullString)
If hWnd <> 0 Then
    VBMAN.ToolsWindow.SwitchToThis hWnd
End If

ActiveForm

强制激活窗口(模拟 Alt 键绕过限制)

vb
Public Sub ActiveForm(ByVal hWnd As Long)

参数:

  • hWnd - 窗口句柄

说明:

  • 通过模拟 Alt 键按下绕过系统限制
  • 建议在 Form_LostFocus 事件中使用,可实现永不失焦效果

示例:

vb
' 在 Form_LostFocus 事件中强制保持焦点
Private Sub Form_LostFocus()
    VBMAN.ToolsWindow.ActiveForm Me.hWnd
End Sub

' 激活指定窗口
VBMAN.ToolsWindow.ActiveForm hWnd

综合示例

示例1: 置顶窗口

vb
Private Sub CheckTopMost_Click()
    If CheckTopMost.Value = vbChecked Then
        VBMAN.ToolsWindow.TopMost Me.hWnd
        CheckTopMost.Caption = "取消置顶"
    Else
        VBMAN.ToolsWindow.TopMost Me.hWnd, True
        CheckTopMost.Caption = "窗口置顶"
    End If
End Sub

示例2: 切换并激活窗口

vb
Private Sub BringWindowToFront()
    ' 查找窗口(需要声明 FindWindow API)
    Dim targetHwnd As Long
    targetHwnd = FindWindow(vbNullString, "目标窗口标题")
    
    If targetHwnd <> 0 Then
        ' 先切换
        VBMAN.ToolsWindow.SwitchToThis targetHwnd
        ' 再激活
        VBMAN.ToolsWindow.ActiveForm targetHwnd
    Else
        MsgBox "未找到目标窗口"
    End If
End Sub

示例3: 模态窗口效果

vb
Private Sub ShowModalEffect()
    ' 禁用主窗体
    Me.Enabled = False
    
    ' 显示子窗体
    Form2.Show
    
    ' 确保子窗体在最前
    VBMAN.ToolsWindow.TopMost Form2.hWnd
End Sub

' 在 Form2 关闭时恢复
Private Sub Form2_Unload(Cancel As Integer)
    Form1.Enabled = True
    VBMAN.ToolsWindow.TopMost Form1.hWnd, True
End Sub

最佳实践

  1. 慎用强制激活: ActiveForm 会强制夺取焦点,可能影响用户体验
  2. 检查句柄: 操作前检查窗口句柄是否有效
  3. 置顶使用: 置顶窗口应提供明显的取消置顶方式
  4. 资源释放: 程序退出前取消置顶,避免残留状态

VB6及其LOGO版权为微软公司所有