vb, 隐藏桌面及其他项目

该博客主要展示了用VB语言实现的一系列功能。通过声明多个API函数,可获取任务栏、开始按钮等窗口句柄,实现窗口的隐藏与显示。还设置了热键Ctrl+Alt+A,同时具备恢复所有窗口、邮件跳转等功能,是一个实用的VB编程示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

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 ShowWindow Lib "user32" (ByVal hwnd As Long, _
        ByVal nCmdShow 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

Const WM_SETHOTKEY = &H32
Const HOTKEYF_SHIFT = &H1
Const HOTKEYF_CONTROL = &H2
Const HOTKEYF_ALT = &H4

 

'定义窗口以及子窗口的类名
Const sTrayWindow = "Shell_TrayWnd"
Const sTrayNotify = "TrayNotifyWnd"
Const sStartButton = "Button"
Const sAppSwitchBar = "ReBarWindow32"
Const sAppSwitch = "MSTaskSwWClass"
Const sAppIcon = "ToolbarWindow32"
Const sTrayClock = "TrayClockWClass"
Const sDesktopIcon = "ShellDll_DefView"
Const sProgman = "Progman"

Const SW_SHOW = 5
Const SW_HIDE = 0

Dim wnd As Long

Private Sub chkWnd_Click(Index As Integer)
    Dim i As Integer
   
    '获得任务栏的窗口句柄
    wnd = FindWindow(sTrayWindow, vbNullString)
   
    Select Case Index
        Case 0
        Case 1
            '根据任务栏窗口句柄获得子窗口的句柄
            wnd = FindWindowEx(wnd, 0, sStartButton, vbNullString)
        Case 2
            wnd = FindWindowEx(wnd, 0, sTrayNotify, vbNullString)
        Case 3
            wnd = FindWindowEx(wnd, 0, sAppSwitchBar, vbNullString)
            wnd = FindWindowEx(wnd, 0, sAppSwitch, vbNullString)
        Case 4
            wnd = FindWindowEx(wnd, 0, sTrayNotify, vbNullString)
            wnd = FindWindowEx(wnd, 0, sTrayClock, vbNullString)
        Case 5
            '获取桌面的窗口句柄
            wnd = FindWindow(sProgman, vbNullString)
            wnd = FindWindowEx(wnd, 0, sDesktopIcon, vbNullString)
        Case 6
            wnd = FindWindowEx(wnd, 0, sAppSwitchBar, vbNullString)
            wnd = FindWindowEx(wnd, 0, sAppIcon, vbNullString)
        Case Else
            wnd = 0
    End Select
   
    If chkWnd(Index).Value = 1 Then
        ShowWindow wnd, SW_HIDE
    Else
        ShowWindow wnd, SW_SHOW
    End If
End Sub

Private Sub Command1_Click()
    Dim i As Integer
   
    '清除所有的选项并恢复所有窗口
    For i = 0 To 6
        chkWnd(i).Value = 0
        chkWnd_Click (i)
    Next i
End Sub

Private Sub Command2_Click()
Form1.WindowState = 1
End Sub

Private Sub Form_Load()
Dim l As Long
    Dim wHotkey As Long
    '设置热键为Ctrl+Alt+A
    wHotkey = (HOTKEYF_ALT Or HOTKEYF_CONTROL) * 256 + vbKeyA
    l = SendMessage(Me.hwnd, WM_SETHOTKEY, wHotkey, 0)


    chkWnd(0).Caption = "隐藏任务栏"
    chkWnd(1).Caption = "隐藏开始按钮"
    chkWnd(2).Caption = "隐藏任务栏图标"
    chkWnd(3).Caption = "隐藏程序按钮"
    chkWnd(4).Caption = "隐藏任务栏时钟"
    chkWnd(5).Caption = "隐藏桌面图标"
    chkWnd(6).Caption = "隐藏快速运行图标"
    Command1.Caption = "恢复所有窗口"
    Command2.Caption = "确定"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Command1_Click
End Sub

Private Sub Label2_Click()
Const WEB = "mailto:wgscd@126.com"
   Dim perjump As Integer ' hyperjumphy
    perjump = ShellExecute(0&, vbNullString, WEB, vbNullString, vbNullString, vbNormalFocus)

End Sub
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值