#include <AFX.H>
#include <COMMCTRL.H>
#include <iostream.h>
int main()
{
HWND hStatus=::FindWindow("Shell_TrayWnd",NULL); //得到任务栏句柄
if (hStatus==NULL)
{
cout<<"Get Shell_TrayWnd error!\n";
return -1;
}
HWND hNotify=FindWindowEx(hStatus,NULL,"TrayNotifyWnd",NULL); //右下角区域
if (hNotify==NULL)
{
cout<<"Get TrayNotifyWnd error!\n";
return -1;
}
HWND hNotify1=FindWindowEx(hNotify,NULL,"SysPager",NULL);
if (hNotify==NULL)
{
cout<<"Get SysPager error!\n";
return -1;
}
HWND hNotify1_0=FindWindowEx(hNotify1,NULL,"ToolBarWindow32",NULL);//右下角区域(不包括时间)
if (hNotify1_0==NULL)
{
cout<<"Get ToolBarWindow32 error!\n";
return -1;
}
//-------------------以上是得到任务栏右下脚一块地方的句柄
DWORD pid = 0;
GetWindowThreadProcessId(hNotify1_0,&pid);
if (pid==NULL)
{
cout<<"Get pid error!\n";
return -1;
}
HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_ALL_ACCESS,true,pid);
if (hProcess==NULL)
{
cout<<"Get hd error!\n";
return -1;
}
::SendMessage(hNotify1_0,WM_PAINT ,NULL,NULL);
CRect rect;
::GetWindowRect(hNotify1_0,&rect);
::InvalidateRect(hNotify1_0,&rect,false);
int iNum=::SendMessage(hNotify1_0,TB_BUTTONCOUNT ,NULL,NULL); //获取任务栏上图标个数
unsigned long n = 0;
TBBUTTON *pButton = new TBBUTTON;
CString strInfo = _T("");
wchar_t name[256] = {0};
TBBUTTON BButton;
unsigned long whd,proid;
CString x;
for(int i=0; i<iNum; i++)
{
::SendMessage(hNotify1_0,TB_GETBUTTON,i,(LPARAM)(&BButton));
ReadProcessMemory(hProcess,&BButton,pButton,sizeof(TBBUTTON),&n);
if (pButton->iString != 0xffffffff)
{
try
{
ReadProcessMemory(hProcess,(void *)pButton->iString,name,255,&n);
}
catch(...)
{
}
strInfo.Format("%d : %s\n",i+1,CString(name));
TRACE(strInfo);
cout<<strInfo<<endl;
}
try
{
whd=0;
ReadProcessMemory(hProcess,(void *)pButton->dwData,&whd,4,&n);
}
catch(...)
{
}
proid=NULL;
GetWindowThreadProcessId((HWND)whd,&proid);
if(proid==NULL)
::SendMessage(hNotify1_0,TB_DELETEBUTTON,i,0);
}
delete pButton;
return 0;
}相关推荐
易语言刷新重置清除系统托盘图标
找了好久,结束外部程序进程后,残留在系统托盘的图标不消失,用这个就简单多了,调用一下就可以,易语言刷新重置清除系统托盘图标,之前用的办法很麻烦,要重启explorer或者模拟鼠标操作一下
Windows关闭程序托盘图标不能消失的原因
应用程序操作托盘图标是通过windows的委托来处理的,也就是应用程序对系统说“我要添加一个图标”,于是任务栏就多了个图标,程序退出时对系统说“把我的图标删除了”,任务栏才会消除图标。 直接砍掉一个进程,那个程序异常退出,还未来得及说“把我的图标删除了”,所以任务栏图标不会立刻消失。 所以,只要正常关闭程序,就不会出现托盘图标不能消失的情况。
wsl + vscode 离线配置 ERROR: Faild to download https://update.code.visualstudio.com
很多情况下是没有现成的VS Code Server程序的,需要手动下载。记住上面的Commit ID,可以通过下面的链接下载 vscode-server-linux-x64.tar.gz。然后将vscode-server-linux-x64.tar.gz上传在服务器上的$HOME/.vscode-server/bin文件夹中,解压。在wsl中下载不了 vscode 的核心。运行下面两行命令,建立空的$HOME/.vscode-server/bin文件夹。重新运行 wsl与vs的链接即可。
任务栏自动弹出(win系统任务栏自动隐藏且微信有新消息时)
任务栏自动弹出(win系统任务栏自动隐藏且微信有新消息时)
Ubuntu中 vsftpd 的安装与配置 (详细介绍)
简介 vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。 vsftpd是 UNIX 操作系统中的一个开源的、免费的 FTP 服务软件。具有以下特点: 安全性高 轻小易用 支持系统用户匿名用户和虚拟用户的权限验证和相关操作 安装步骤如下: 1.将此命令复制到终端 sudo apt-get install vsftpd 2.安装完成后启动VSFTP
电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建
电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建
C# 程序关闭托盘图标不会自动消失
C# 程序关闭托盘图标不会自动消失 c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失必须将鼠标移到图标上面时才能消失?请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束),windows系统好多程序都会这样。 网上搜索后大家说法不一,如下: 1、这个就这样,很多程序都...
STM32F407驱动OV2640摄像头:从SCCB协议到I2C模拟的保姆级避坑指南
本文详细介绍了STM32F407驱动OV2640摄像头的完整流程,重点解析SCCB协议与I2C的关键差异,并提供GPIO模拟实现方案。通过实战案例和调试技巧,帮助开发者避开常见陷阱,实现稳定的图像采集功能。
Windows 11任务栏拖放功能终极修复指南:轻松恢复消失的拖拽操作
Windows 11的发布带来了全新的界面设计,但同时也让许多用户发现了一个令人困扰的问题:任务栏上的拖放功能竟然消失了!这个看似微小的改变却严重影响了日常工作效率。Windows11DragAndDropToTaskbarFix正是为解决这一痛点而生的轻量级修复工具,它能够在不修改系统核心设置的情况下,完美恢复任务栏的拖放功能。 ## 为什么Windows 11取消了拖放功能? 微软在Win
01 AUTOSAR CP标准文档阅读指南
01 AUTOSAR CP标准文档阅读指南
PyTorch ModelNet点云数据集加载实战:从下载到Dataset类完整实现
在三维视觉与点云处理领域,数据集是算法研发的基石。ModelNet作为三维物体分类的基准数据集,其地位类似于图像领域的MNIST,是入门和评估模型性能的通用标准。理解其数据格式与加载原理,是进行点云分类、分割等任务的关键前置步骤。通过PyTorch的Dataset类,开发者可以构建高效的数据管道,将原始点云文件转换为神经网络可直接处理的张量格式,这一过程涉及数据采样、归一化、特征组装等核心操作,直接影响模型的训练效率和最终性能。本文聚焦于ModelNet10/40数据集,详细解析其目录结构,并提供一套稳健的
3步颠覆窗口管理:RBTray系统托盘化完全指南
你是否也曾经历过这样的场景:任务栏被十几个窗口图标占满,寻找特定窗口如同大海捞针?工作时需要临时隐藏敏感窗口却找不到合适的工具?RBTray这款开源工具将彻底改变你的窗口管理方式,让系统托盘成为高效工作的新空间。 ## 发现窗口管理的隐藏痛点 当你同时打开IDE、浏览器、聊天软件和文档时,任务栏是否经常变成一片混乱的图标海洋?频繁在多个窗口间切换是否降低了你的工作效率?传统的最小化功能只是将窗
小工匠聊架构-分布式场景下的并发幂等性常见的解决方案
Pre 我们来回顾下单体时代 单体时代,应用部署在一台主机上,可以使用JVM级别的锁来控制并发请求 。 随着应用规模的不断扩大,集群化或者微服务化的分布式部署越来越普及,每个应用都是一个单独的JVM应用,所以单体时代的这种处理方式已经无法满足当前架构下的业务需求了。 JVM级别的锁已经无法满足跨进程之间访问控制了,进而演化出来了分布式锁。 分布式锁 能否解决幂等性问题? 分布式锁解决什么问题? 简言之: 解决跨进程间无法共享本地资源的问题 ,解决的是分布式场景下并发访问的问题。 为什么需要确保并发.
ExplorerPatcher 安装配置实战教程:3分钟恢复 Windows 10 任务栏,附3套预设直接抄
还在为 Windows 11 居中的任务栏、塞满推荐卡的开始菜单和变成宫格图的 Alt+Tab 感到别扭吗?ExplorerPatcher 是一款开源的 Windows 界面定制工具,能在不改动系统本身的前提下,把 Windows 11 的任务栏、开始菜单和窗口切换器恢复成熟悉的 Windows 10 风格。 ## ⚡ 快速上手:下载、安装、验证一次讲清 安装包存放在项目官方 Releases
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
计算机显示时间怎么设置在哪里设置方法,电脑不显示日期和时间怎么设置不了怎么办...
1.电脑不要显示时间怎么设置电脑不要显示时间可按以下设置:方法一:隐藏任务栏①右键单击任务栏,选“属性”;②在弹出的“任务栏和开始菜单”对话框中,找到“自动隐藏任务栏”将其“勾”选,然后点“确定”按钮,完成设置。这样只要不下拉鼠标显现出任务栏,就不会显示时间。方法二:关闭时间的系统图标①右键单击任务栏,选“属性”;②点击“任务栏和开始菜单”对话框中通知区域框里的“自定义”按钮,打开“通知区域图标”...
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
ExplorerPatcher 5分钟上手:Windows 11 换回左对齐任务栏 + Win10 开始菜单
上个月帮一个用了八年 Windows 10 的同事升 Win11,他第一句话是"我的任务栏怎么跑到中间去了"。我花十分钟给他装好 ExplorerPatcher,任务栏回到左边,开始菜单换回 Win10 的样式。这里有个反直觉的点:这个工具没有改动任何一个系统文件,它是"住"在 explorer.exe 进程内部干活的,卸载干净后系统就恢复原样。 ## 📦 五步跑通:从安装到换回 Win10
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
3步装回经典任务栏:ExplorerPatcher免费完整指南
刚升级 Windows 11,任务栏跑到屏幕中间飘着,开始菜单变成了一整面磁贴墙,Alt+Tab 也切成了一格格小方块,找东西反而慢半拍? ExplorerPatcher 这个开源工具能把三样东西一次换回 Windows 10 的样子:3 步装完、改动即时生效、全程免费。 ## ⚡ 快速上手:3步完成经典任务栏恢复 ### 第1步:下载对应架构的安装包 - **操作**:去项目 Releas
ExplorerPatcher终极上手指南:一步步找回Windows 10经典界面
升级到Windows 11后,你是不是也有过这样的瞬间:鼠标习惯性移向左下角,想点开那个熟悉的开始菜单,迎面却是居中的图标和陌生的毛玻璃面板,操作节奏瞬间被打乱。其实你不必强迫自己适应新界面——**ExplorerPatcher**这款开源的Windows 11界面定制工具,能把任务栏、开始菜单、Alt+Tab挨个换回Windows 10的样子。读完这篇教程,你会从下载、安装、首配到救场全程走一遍
ExplorerPatcher新手指南:3步让Windows 11找回Win10界面
Windows 11 把任务栏挪到了屏幕中间,开始菜单换成了居中磁贴加"推荐"区,对很多从 Windows 10 用过来的用户来说,第一反应就是不适应。ExplorerPatcher 就是解决这个问题的免费开源工具,它通过给资源管理器打补丁,把 Windows 11 的任务栏、开始菜单、Alt+Tab 切换器换回 Windows 10 的经典样式,同时保留系统全部新功能。下面这份指南会告诉你:它适
网卡损坏导致的几种常见故障
内容提要:网卡损坏导致的几种常见故障,局域网数据传输都是通过网卡设备来完成的,所以网卡设备的工作状态与局域网的传输性能息息相关。随着时间的推移,网卡设备很容易发生硬件损坏,从而引发各式各样的网络故障;那么在遇到网络故障时,我们该如何才能快速地识别出故障原因是网卡损坏了、网线不通了,还是其他网络设备有问题了呢? 局域网数据传输都是通过网卡设备来完成的,所以网卡设备的工作状态与局域网的传输性
基于Python与Tkinter实现非侵入式桌面通知系统
进程间通信(IPC)是操作系统实现不同进程数据交换的核心机制,其原理在于通过共享内存、消息传递或管道等技术,实现进程间的协同工作。在桌面应用开发领域,IPC技术为构建轻量级、可集成的自动化工具提供了基础。其技术价值在于能够将后台脚本、批处理任务或监控程序的状态信息,以非阻塞、低资源占用的方式,实时反馈给用户界面。一个典型的应用场景是,开发一个常驻系统托盘的桌面通知中心,它通过TCP套接字等IPC方式接收外部进程的告警信息,并以优雅、非模态的窗口形式展示,从而避免打断用户当前的工作流。本文正是基于这一思路,详
用Scratch模拟Windows 7:图形化编程中的系统交互与事件驱动实践
事件驱动编程是图形化界面和现代软件交互的核心原理,它通过响应用户操作(如点击、拖动)来触发特定功能模块的执行。在工程实践中,理解事件驱动有助于构建响应迅速、模块清晰的应用程序。Scratch作为一款面向初学者的图形化编程工具,其广播消息、克隆体等机制为学习事件驱动和状态管理提供了直观的沙箱。通过模拟Windows 7桌面环境这样的综合项目,开发者可以深入实践如何用积木块映射系统核心交互,例如用克隆体管理多窗口实例、用广播实现模块间通信。这种将复杂系统解构为可视化逻辑模块的方法,不仅深化了对编程范式的理解,也
DirectX加速不可用?从诊断到修复的完整解决方案
DirectX是微软开发的一套多媒体编程接口,它作为应用程序与显卡硬件之间的桥梁,负责将图形渲染指令翻译成硬件能理解的命令。其核心原理是通过硬件加速功能,将复杂的3D图形计算任务从CPU卸载到专用的GPU上执行,从而大幅提升图形处理效率与性能。这项技术的核心价值在于为游戏开发、专业3D设计、视频播放等应用提供了统一、高效且稳定的底层图形支持。在实际应用场景中,无论是运行大型3D游戏、进行CAD建模,还是播放高清视频,DirectX硬件加速都至关重要。当系统出现“DirectX加速不可用或已禁用”的提示时,通
wermgr.exe文件丢失怎么办?五种免费安全修复方法详解
在Windows系统中,系统文件丢失是常见故障之一,其中wermgr.exe作为Windows错误报告管理器,负责收集程序崩溃信息,一旦缺失便会引发弹窗报错。理解系统文件的作用与丢失原因,是高效修复的前提。SFC和DISM是Windows内置的系统文件修复工具,通过扫描和恢复组件存储,可解决大多数文件缺失问题;若仍无效,可从官方镜像提取或使用安全软件隔离区还原。这些方法不仅适用于wermgr.exe,也适用于其他系统文件损坏场景。本文结合工程实践,梳理了从验证文件状态到分级修复的完整流程,帮助用户在无需第三
4820



被折叠的 条评论
为什么被折叠?



