#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的委托来处理的,也就是应用程序对系统说“我要添加一个图标”,于是任务栏就多了个图标,程序退出时对系统说“把我的图标删除了”,任务栏才会消除图标。 直接砍掉一个进程,那个程序异常退出,还未来得及说“把我的图标删除了”,所以任务栏图标不会立刻消失。 所以,只要正常关闭程序,就不会出现托盘图标不能消失的情况。
战舰V3移植CANopenNode并驱动电机全流程
第三部分是电机的对象字典(也就是节点的OD)中的索引,长度2个字节。索引发送的是小段模式,比如这一部分为0X40 0X60,实际操作的索引地址为0X6040。第一部分是COB-ID,长度1个字节,电机的node-ID默认为0x01,所以报文ID一直是601。第五部分是要写入的数据,数据发送的时候是小端模式,低字节数据先发送,长度由第二部分决定。配置定时器6,时间为1ms,根据公式计算得到参数PSC取72-1,ARR取1000-1。第二部分是CMD,长度1个字节,其实就是数据部分的长度,
任务栏自动弹出(win系统任务栏自动隐藏且微信有新消息时)
任务栏自动弹出(win系统任务栏自动隐藏且微信有新消息时)
MCGS触摸屏Modbus TCP通讯实战:从寄存器写入到字符串处理的完整代码解析
本文详细解析了MCGS触摸屏通过Modbus TCP协议实现寄存器写入和字符串处理的完整代码,涵盖单寄存器写入、多寄存器写入及字符串传输等核心技术。文章还提供了MCGS组态环境中的实战配置步骤和常见问题排查方法,帮助开发者快速掌握工业自动化通讯的关键技术。
BQ4050开发进阶(二):Protections参数优化策略与实战解析
本文深入解析了BQ4050电池管理芯片中Protections参数的优化策略与实战方法。针对电压、电流、温度等核心保护功能,详细阐述了如何根据具体电芯特性、负载场景和环境因素,精细调整CUV、COV、OCC/OCD等阈值与延时,以在确保电池绝对安全的前提下,实现极致的用户体验与系统可靠性。
C# 程序关闭托盘图标不会自动消失
C# 程序关闭托盘图标不会自动消失 c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失必须将鼠标移到图标上面时才能消失?请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束),windows系统好多程序都会这样。 网上搜索后大家说法不一,如下: 1、这个就这样,很多程序都...
DRAM知识整理系列(三):部分时序参数整理
一、tCL-tRCD-tRP-tRAS(第一时序) 内存是根据行和列寻址的,当请求触发后,最初是tRAS(Active to precharge Delay),预充电后,内存才真正开始初始化RAS(Row Address Strobe)。一旦tRAS激活后,RAS开始进行需要数据的寻址。首先是行地址,然后初始化tRCD(RAS to CAS Delay),周期结束,接着通过CAS(Column Address Strobe)访问所需数据的十六进制地址。其中,从CAS开始到CAS结束,就是CAS延迟(即t
Windows 11任务栏拖放功能终极修复指南:轻松恢复消失的拖拽操作
Windows 11的发布带来了全新的界面设计,但同时也让许多用户发现了一个令人困扰的问题:任务栏上的拖放功能竟然消失了!这个看似微小的改变却严重影响了日常工作效率。Windows11DragAndDropToTaskbarFix正是为解决这一痛点而生的轻量级修复工具,它能够在不修改系统核心设置的情况下,完美恢复任务栏的拖放功能。 ## 为什么Windows 11取消了拖放功能? 微软在Win
实战:GMTSAR软件处理陆探一号SAR数据
摘要:陆探一号(LT-1)是我国首组L波段差分干涉SAR卫星星座,具备全天候多极化成像能力,主要服务于自然资源监测等领域。文章详细介绍了其轨道参数(607km太阳同步轨道)和传感器技术指标(5种成像模式)。同时阐述了开源InSAR处理软件GMTSAR的安装方法(基于Ubuntu系统)及实验流程,包括数据准备、DEM生成和干涉处理步骤,特别说明了轨道数据缺失时的MATLAB插值处理方法。该研究为国产SAR卫星数据处理提供了技术参考。
安卓 实现灯光闪过效果
有个小需求,给按钮加一个灯光划过的效果,这样的需求一般有UI,肯定就找UI了要个gif图不就完事了,可是这次没有,好久自己做一个嘛。Web端的大佬实现很快,到安卓这边呢,百度一搜发现诶?怎么没有,好吧自己来一个 一切动效相关的不给图看都是耍流氓 所以俺不能这么干啊,OK!直接上效果图,再来解释下怎么实现的 效果就是这样子,怎么实现呢? 从图分析下,就是一个光写着重左边移动要右边循环嘛,这有啥难的?? 来看一看我的第一版,第二版 这是个什么?????一点都不像啊? 赶紧再问了问Web端大佬,噢,加了一个
3步颠覆窗口管理:RBTray系统托盘化完全指南
你是否也曾经历过这样的场景:任务栏被十几个窗口图标占满,寻找特定窗口如同大海捞针?工作时需要临时隐藏敏感窗口却找不到合适的工具?RBTray这款开源工具将彻底改变你的窗口管理方式,让系统托盘成为高效工作的新空间。 ## 发现窗口管理的隐藏痛点 当你同时打开IDE、浏览器、聊天软件和文档时,任务栏是否经常变成一片混乱的图标海洋?频繁在多个窗口间切换是否降低了你的工作效率?传统的最小化功能只是将窗
【verilog语法详解:从入门到精通】
Verilog语法详解:从入门到精通 摘要:本文系统讲解Verilog硬件描述语言的核心语法与应用。Verilog作为数字电路设计标准,具有并行执行、硬件映射和层次化三大特点。文章从基础语法框架入手,详细介绍了模块定义、端口类型(input/output/inout)声明规范,以及线网型(wire)和寄存器型(reg)两种核心数据类型的区别与应用场景。重点讲解了组合逻辑(assign连续赋值)和时序逻辑(always块)的实现方式,包括阻塞赋值(=)与非阻塞赋值(<=)的关键差异。此外,还涵盖了参数(
ExplorerPatcher 安装配置实战教程:3分钟恢复 Windows 10 任务栏,附3套预设直接抄
还在为 Windows 11 居中的任务栏、塞满推荐卡的开始菜单和变成宫格图的 Alt+Tab 感到别扭吗?ExplorerPatcher 是一款开源的 Windows 界面定制工具,能在不改动系统本身的前提下,把 Windows 11 的任务栏、开始菜单和窗口切换器恢复成熟悉的 Windows 10 风格。 ## ⚡ 快速上手:下载、安装、验证一次讲清 安装包存放在项目官方 Releases
【异常】Claude Code 第三方API 400报错(thinking type should be enabled or disabled)解决方案
摘要: Claude Code接入第三方API端点时出现400参数错误,主要因新版默认启用的Adaptive Thinking功能与旧版接口参数格式不兼容(需thinking: {type: "adaptive"},但第三方仅支持布尔值)。解决方案为修改本地settings.json配置文件,添加"CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1"环境变量并重启客户端,即可恢复思考模式功能。Adaptive Th
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
计算机显示时间怎么设置在哪里设置方法,电脑不显示日期和时间怎么设置不了怎么办...
1.电脑不要显示时间怎么设置电脑不要显示时间可按以下设置:方法一:隐藏任务栏①右键单击任务栏,选“属性”;②在弹出的“任务栏和开始菜单”对话框中,找到“自动隐藏任务栏”将其“勾”选,然后点“确定”按钮,完成设置。这样只要不下拉鼠标显现出任务栏,就不会显示时间。方法二:关闭时间的系统图标①右键单击任务栏,选“属性”;②点击“任务栏和开始菜单”对话框中通知区域框里的“自定义”按钮,打开“通知区域图标”...
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
ExplorerPatcher 5分钟上手:Windows 11 换回左对齐任务栏 + Win10 开始菜单
上个月帮一个用了八年 Windows 10 的同事升 Win11,他第一句话是"我的任务栏怎么跑到中间去了"。我花十分钟给他装好 ExplorerPatcher,任务栏回到左边,开始菜单换回 Win10 的样式。这里有个反直觉的点:这个工具没有改动任何一个系统文件,它是"住"在 explorer.exe 进程内部干活的,卸载干净后系统就恢复原样。 ## 📦 五步跑通:从安装到换回 Win10
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
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



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



