为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 隐藏或显示托盘图标

隐藏或显示托盘图标

2018-03-19 7页 doc 29KB 10阅读

用户头像

is_447713

暂无简介

举报
隐藏或显示托盘图标隐藏或显示托盘图标 隐藏或显示托盘图标.txt逆风的方向,更适合飞翔。我不怕万人阻挡,只怕自己投降。你发 怒一分钟,便失去60分钟的幸福。忙碌是一种幸福,让我们没时间体会痛苦;奔波是一种快 乐,让我们真实地感受生活;疲惫是一种享受,让我们无暇空虚。生活就像"呼吸""呼"是为出 一口气,"吸"是为争一口气。'声明定义 Option Explicit Private Const WM_USER = &H400 Private Const TB_BUTTONCOUNT = (WM_USER + 24) Private Co...
隐藏或显示托盘图标
隐藏或显示托盘图标 隐藏或显示托盘图标.txt逆风的方向,更适合飞翔。我不怕万人阻挡,只怕自己投降。你发 怒一分钟,便失去60分钟的幸福。忙碌是一种幸福,让我们没时间体会痛苦;奔波是一种快 乐,让我们真实地感受生活;疲惫是一种享受,让我们无暇空虚。生活就像"呼吸""呼"是为出 一口气,"吸"是为争一口气。'声明定义 Option Explicit Private Const WM_USER = &H400 Private Const TB_BUTTONCOUNT = (WM_USER + 24) Private Const TB_HIDEBUTTON = (WM_USER + 4) Private Const TB_GETBUTTONTEXTA = (WM_USER + 45) Private Const TB_AUTOSIZE = (WM_USER + 33) Private Const MEM_COMMIT = &H1000 Private Const MEM_RESERVE = &H2000 Private Const MEM_RELEASE = &H8000 Private Const PAGE_READWRITE = &H4 Private Const PROCESS_VM_OPERATION = (&H8) Private Const PROCESS_VM_READ = (&H10) Private Const PROCESS_VM_WRITE = (&H20) 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 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 VirtualAllocEx Lib "kernel32.dll" (ByVal hProcess As Long, lpAddress As Any, ByRef dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long Private Declare Function VirtualFreeEx Lib "kernel32.dll" (ByVal hProcess As Long, lpAddress As Any, ByRef dwSize As Long, ByVal dwFreeType As Long) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long 'Form窗体 '需要的控件:Command1,Command2,Command3,ListBox Private Sub Command1_Click() '隐藏指定图标 Dim pIdExplorer As Long, hwnd2 As Long, hExplorer As Long, lpIconText As Long Dim i As Integer Dim BtnCount As Integer Dim IconText As String hwnd2 = FindWindow("Shell_TrayWnd", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "TrayNotifyWnd", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "SysPager", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "ToolbarWindow32", vbNullString) GetWindowThreadProcessId hwnd2, pIdExplorer hExplorer = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pIdExplorer) lpIconText = VirtualAllocEx(ByVal hExplorer, ByVal 0&, Len(IconText), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE) BtnCount = SendMessage(hwnd2, TB_BUTTONCOUNT, 0, 0) Dim lLen As Long, sBuff As String For i = 0 To BtnCount - 1 IconText = Space$(256) lLen = SendMessage(hwnd2, TB_GETBUTTONTEXTA, i, ByVal lpIconText) ReadProcessMemory hExplorer, ByVal lpIconText, ByVal IconText, Len(IconText), 0 If lLen <> -1 Then IconText = Left$(IconText, InStr(1, IconText, Chr$(0)) - 1) If IconText = List1.List(List1.ListIndex) Then ' 替换为需要隐藏的图标名称: 就是鼠标放在图标上时显示的文字 SendMessage hwnd2, TB_HIDEBUTTON, i, ByVal True SendMessage hwnd2, TB_AUTOSIZE, 0, 0 End If Next VirtualFreeEx hExplorer, lpIconText, Len(IconText), MEM_RELEASE CloseHandle hExplorer End Sub Private Sub Command2_Click() '显示指定图标 Dim pIdExplorer As Long, hwnd2 As Long, hExplorer As Long, lpIconText As Long Dim i As Integer Dim BtnCount As Integer Dim IconText As String hwnd2 = FindWindow("Shell_TrayWnd", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "TrayNotifyWnd", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "SysPager", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "ToolbarWindow32", vbNullString) GetWindowThreadProcessId hwnd2, pIdExplorer hExplorer = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pIdExplorer) lpIconText = VirtualAllocEx(ByVal hExplorer, ByVal 0&, Len(IconText), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE) BtnCount = SendMessage(hwnd2, TB_BUTTONCOUNT, 0, 0) Dim lLen As Long, sBuff As String For i = 0 To BtnCount - 1 IconText = Space$(256) lLen = SendMessage(hwnd2, TB_GETBUTTONTEXTA, i, ByVal lpIconText) ReadProcessMemory hExplorer, ByVal lpIconText, ByVal IconText, Len(IconText), 0 If lLen <> -1 Then IconText = Left$(IconText, InStr(1, IconText, Chr$(0)) - 1) If IconText = List1.List(List1.ListIndex) Then ' ' 替换为需要隐藏的图标 名称:就是鼠标放在图标上时显示的文字 SendMessage hwnd2, TB_HIDEBUTTON, i, ByVal False SendMessage hwnd2, TB_AUTOSIZE, 0, 0 End If Next VirtualFreeEx hExplorer, lpIconText, Len(IconText), MEM_RELEASE CloseHandle hExplorer End Sub Private Sub Command3_Click() '刷新图标列表 List1.Clear Dim pIdExplorer As Long, hwnd2 As Long, hExplorer As Long, lpIconText As Long Dim i As Integer Dim BtnCount As Integer Dim IconText As String hwnd2 = FindWindow("Shell_TrayWnd", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "TrayNotifyWnd", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "SysPager", vbNullString) hwnd2 = FindWindowEx(hwnd2, 0, "ToolbarWindow32", vbNullString) GetWindowThreadProcessId hwnd2, pIdExplorer hExplorer = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pIdExplorer) lpIconText = VirtualAllocEx(ByVal hExplorer, ByVal 0&, Len(IconText), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE) BtnCount = SendMessage(hwnd2, TB_BUTTONCOUNT, 0, 0) Dim lLen As Long, sBuff As String For i = 0 To BtnCount - 1 IconText = Space$(256) lLen = SendMessage(hwnd2, TB_GETBUTTONTEXTA, i, ByVal lpIconText) ReadProcessMemory hExplorer, ByVal lpIconText, ByVal IconText, Len(IconText), 0 If lLen <> -1 Then IconText = Left$(IconText, InStr(1, IconText, Chr$(0)) - 1) List1.AddItem IconText Next VirtualFreeEx hExplorer, lpIconText, Len(IconText), MEM_RELEASE CloseHandle hExplorer End Sub Private Sub Form_Load() Command3_Click Command1_Click End Sub
/
本文档为【隐藏或显示托盘图标】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索