任务栏托盘不消失的问题-有启发

macdowsOS Tool UI:将Windows桌面打造成macOS风格的完整指南 桌面美化是许多Windows用户提升日常使用体验的常见需求,而将Windows界面改造成macOS风格,更是兼顾了视觉统一与软件生态兼容的实用选择。这类改造通常依赖多个独立组件的配合,例如主题引擎、图标包、任务栏调整和停靠栏(Dock)工具,而一体化开源美化工具则把这些分散的配置集中到统一入口中,降低了上手门槛和冲突风险。本文从桌面美化的核心概念讲起,解释其工作原理、技术价值以及适合的场景,再自然过渡到macdowsOS Tool UI这一热门开源项目,围绕环境准备、模块拆解、安装配置、自定义技巧与故障排查 阅读详情
通过找出该图标所对应的进程ID,如果该ID为NULL则删除该图标.

#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;
}


TrayIcon系统图标闪动 关于托盘程序的一个图标连续闪动的超简单程序。 立即下载

相关推荐

易语言刷新重置清除系统托盘图标

找了好久,结束外部程序进程后,残留在系统托盘的图标不消失,用这个就简单多了,调用一下就可以,易语言刷新重置清除系统托盘图标,之前用的办法很麻烦,要重启explorer或者模拟鼠标操作一下

Windows关闭程序托盘图标不能消失的原因

应用程序操作托盘图标是通过windows的委托来处理的,也就是应用程序对系统说“我要添加一个图标”,于是任务栏就多了个图标,程序退出时对系统说“把我的图标删除了”,任务栏才会消除图标。 直接砍掉一个进程,那个程序异常退出,还未来得及说“把我的图标删除了”,所以任务栏图标不会立刻消失。 所以,只要正常关闭程序,就不会出现托盘图标不能消失的情况。

不歪的专栏 4820

战舰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个字节,其实就是数据部分的长度,

qq_50526837的博客 3045

任务栏自动弹出(win系统任务栏自动隐藏且微信有新消息时)

任务栏自动弹出(win系统任务栏自动隐藏且微信有新消息时)

hhy的博客 3628

MCGS触摸屏Modbus TCP通讯实战:从寄存器写入到字符串处理的完整代码解析

本文详细解析了MCGS触摸屏通过Modbus TCP协议实现寄存器写入和字符串处理的完整代码,涵盖单寄存器写入、多寄存器写入及字符串传输等核心技术。文章还提供了MCGS组态环境中的实战配置步骤和常见问题排查方法,帮助开发者快速掌握工业自动化通讯的关键技术。

study的专栏 755

BQ4050开发进阶(二):Protections参数优化策略与实战解析

本文深入解析了BQ4050电池管理芯片中Protections参数的优化策略与实战方法。针对电压、电流、温度等核心保护功能,详细阐述了如何根据具体电芯特性、负载场景和环境因素,精细调整CUV、COV、OCC/OCD等阈值与延时,以在确保电池绝对安全的前提下,实现极致的用户体验与系统可靠性。

rgv234567的博客 481

C# 程序关闭托盘图标不会自动消失

C# 程序关闭托盘图标不会自动消失 c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失必须将鼠标移到图标上面时才能消失?请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束),windows系统好多程序都会这样。 网上搜索后大家说法不一,如下: 1、这个就这样,很多程序都...

weixin_30414635的博客 689

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

不吃鱼的猫的博客 7万+

Windows 11任务栏拖放功能终极修复指南:轻松恢复消失的拖拽操作

Windows 11的发布带来了全新的界面设计,但同时也让许多用户发现了一个令人困扰的问题:任务栏上的拖放功能竟然消失了!这个看似微小的改变却严重影响了日常工作效率。Windows11DragAndDropToTaskbarFix正是为解决这一痛点而生的轻量级修复工具,它能够在不修改系统核心设置的情况下,完美恢复任务栏的拖放功能。 ## 为什么Windows 11取消了拖放功能? 微软在Win

gitblog_00217的博客 519

实战:GMTSAR软件处理陆探一号SAR数据

摘要:陆探一号(LT-1)是我国首组L波段差分干涉SAR卫星星座,具备全天候多极化成像能力,主要服务于自然资源监测等领域。文章详细介绍了其轨道参数(607km太阳同步轨道)和传感器技术指标(5种成像模式)。同时阐述了开源InSAR处理软件GMTSAR的安装方法(基于Ubuntu系统)及实验流程,包括数据准备、DEM生成和干涉处理步骤,特别说明了轨道数据缺失时的MATLAB插值处理方法。该研究为国产SAR卫星数据处理提供了技术参考。

一个RSer的博客 1034

安卓 实现灯光闪过效果

有个小需求,给按钮加一个灯光划过的效果,这样的需求一般有UI,肯定就找UI了要个gif图不就完事了,可是这次没有,好久自己做一个嘛。Web端的大佬实现很快,到安卓这边呢,百度一搜发现诶?怎么没有,好吧自己来一个 一切动效相关的不给图看都是耍流氓 所以俺不能这么干啊,OK!直接上效果图,再来解释下怎么实现的 效果就是这样子,怎么实现呢? 从图分析下,就是一个光写着重左边移动要右边循环嘛,这有啥难的?? 来看一看我的第一版,第二版 这是个什么?????一点都不像啊? 赶紧再问了问Web端大佬,噢,加了一个

SummerCloudXT的博客 1378

3步颠覆窗口管理:RBTray系统托盘化完全指南

你是否也曾经历过这样的场景:任务栏被十几个窗口图标占满,寻找特定窗口如同大海捞针?工作时需要临时隐藏敏感窗口却找不到合适的工具?RBTray这款开源工具将彻底改变你的窗口管理方式,让系统托盘成为高效工作的新空间。 ## 发现窗口管理的隐藏痛点 当你同时打开IDE、浏览器、聊天软件和文档时,任务栏是否经常变成一片混乱的图标海洋?频繁在多个窗口间切换是否降低了你的工作效率?传统的最小化功能只是将窗

gitblog_00274的博客 219

【verilog语法详解:从入门到精通】

Verilog语法详解:从入门到精通 摘要:本文系统讲解Verilog硬件描述语言的核心语法与应用。Verilog作为数字电路设计标准,具有并行执行、硬件映射和层次化三大特点。文章从基础语法框架入手,详细介绍了模块定义、端口类型(input/output/inout)声明规范,以及线网型(wire)和寄存器型(reg)两种核心数据类型的区别与应用场景。重点讲解了组合逻辑(assign连续赋值)和时序逻辑(always块)的实现方式,包括阻塞赋值(=)与非阻塞赋值(<=)的关键差异。此外,还涵盖了参数(

m0_58476824的博客 4684

ExplorerPatcher 安装配置实战教程:3分钟恢复 Windows 10 任务栏,附3套预设直接抄

还在为 Windows 11 居中的任务栏、塞满推荐卡的开始菜单和变成宫格图的 Alt+Tab 感到别扭吗?ExplorerPatcher 是一款开源的 Windows 界面定制工具,能在不改动系统本身的前提下,把 Windows 11 的任务栏、开始菜单和窗口切换器恢复成熟悉的 Windows 10 风格。 ## ⚡ 快速上手:下载、安装、验证一次讲清 安装包存放在项目官方 Releases

gitblog_01081的博客 764

【异常】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

奶爸的编程之路,也就一周冷个三天 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

计算机显示时间怎么设置在哪里设置方法,电脑不显示日期和时间怎么设置不了怎么办...

1.电脑不要显示时间怎么设置电脑不要显示时间可按以下设置:方法一:隐藏任务栏①右键单击任务栏,选“属性”;②在弹出的“任务栏和开始菜单”对话框中,找到“自动隐藏任务栏”将其“勾”选,然后点“确定”按钮,完成设置。这样只要不下拉鼠标显现出任务栏,就不会显示时间。方法二:关闭时间的系统图标①右键单击任务栏,选“属性”;②点击“任务栏和开始菜单”对话框中通知区域框里的“自定义”按钮,打开“通知区域图标”...

weixin_39947314的博客 9171

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ExplorerPatcher 5分钟上手:Windows 11 换回左对齐任务栏 + Win10 开始菜单

上个月帮一个用了八年 Windows 10 的同事升 Win11,他第一句话是"我的任务栏怎么跑到中间去了"。我花十分钟给他装好 ExplorerPatcher,任务栏回到左边,开始菜单换回 Win10 的样式。这里有个反直觉的点:这个工具没有改动任何一个系统文件,它是"住"在 explorer.exe 进程内部干活的,卸载干净后系统就恢复原样。 ## 📦 五步跑通:从安装到换回 Win10

gitblog_00712的博客 945

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

gitblog_00379的博客 944

ExplorerPatcher终极上手指南:一步步找回Windows 10经典界面

升级到Windows 11后,你是不是也有过这样的瞬间:鼠标习惯性移向左下角,想点开那个熟悉的开始菜单,迎面却是居中的图标和陌生的毛玻璃面板,操作节奏瞬间被打乱。其实你不必强迫自己适应新界面——**ExplorerPatcher**这款开源的Windows 11界面定制工具,能把任务栏、开始菜单、Alt+Tab挨个换回Windows 10的样子。读完这篇教程,你会从下载、安装、首配到救场全程走一遍

gitblog_00973的博客 1084

ExplorerPatcher新手指南:3步让Windows 11找回Win10界面

Windows 11 把任务栏挪到了屏幕中间,开始菜单换成了居中磁贴加"推荐"区,对很多从 Windows 10 用过来的用户来说,第一反应就是不适应。ExplorerPatcher 就是解决这个问题的免费开源工具,它通过给资源管理器打补丁,把 Windows 11 的任务栏、开始菜单、Alt+Tab 切换器换回 Windows 10 的经典样式,同时保留系统全部新功能。下面这份指南会告诉你:它适

gitblog_00759的博客 230

网卡损坏导致的几种常见故障

内容提要:网卡损坏导致的几种常见故障,局域网数据传输都是通过网卡设备来完成的,所以网卡设备的工作状态与局域网的传输性能息息相关。随着时间的推移,网卡设备很容易发生硬件损坏,从而引发各式各样的网络故障;那么在遇到网络故障时,我们该如何才能快速地识别出故障原因是网卡损坏了、网线不通了,还是其他网络设备有问题了呢?   局域网数据传输都是通过网卡设备来完成的,所以网卡设备的工作状态与局域网的传输性

axl19530209的专栏 8702

基于Python与Tkinter实现非侵入式桌面通知系统

进程间通信(IPC)是操作系统实现不同进程数据交换的核心机制,其原理在于通过共享内存、消息传递或管道等技术,实现进程间的协同工作。在桌面应用开发领域,IPC技术为构建轻量级、可集成的自动化工具提供了基础。其技术价值在于能够将后台脚本、批处理任务或监控程序的状态信息,以非阻塞、低资源占用的方式,实时反馈给用户界面。一个典型的应用场景是,开发一个常驻系统托盘的桌面通知中心,它通过TCP套接字等IPC方式接收外部进程的告警信息,并以优雅、非模态的窗口形式展示,从而避免打断用户当前的工作流。本文正是基于这一思路,详

weixin_34195142的博客 407

用Scratch模拟Windows 7:图形化编程中的系统交互与事件驱动实践

事件驱动编程是图形化界面和现代软件交互的核心原理,它通过响应用户操作(如点击、拖动)来触发特定功能模块的执行。在工程实践中,理解事件驱动有助于构建响应迅速、模块清晰的应用程序。Scratch作为一款面向初学者的图形化编程工具,其广播消息、克隆体等机制为学习事件驱动和状态管理提供了直观的沙箱。通过模拟Windows 7桌面环境这样的综合项目,开发者可以深入实践如何用积木块映射系统核心交互,例如用克隆体管理多窗口实例、用广播实现模块间通信。这种将复杂系统解构为可视化逻辑模块的方法,不仅深化了对编程范式的理解,也

weixin_33766805的博客 408

DirectX加速不可用?从诊断到修复的完整解决方案

DirectX是微软开发的一套多媒体编程接口,它作为应用程序与显卡硬件之间的桥梁,负责将图形渲染指令翻译成硬件能理解的命令。其核心原理是通过硬件加速功能,将复杂的3D图形计算任务从CPU卸载到专用的GPU上执行,从而大幅提升图形处理效率与性能。这项技术的核心价值在于为游戏开发、专业3D设计、视频播放等应用提供了统一、高效且稳定的底层图形支持。在实际应用场景中,无论是运行大型3D游戏、进行CAD建模,还是播放高清视频,DirectX硬件加速都至关重要。当系统出现“DirectX加速不可用或已禁用”的提示时,通

weixin_34161083的博客 567

wermgr.exe文件丢失怎么办?五种免费安全修复方法详解

在Windows系统中,系统文件丢失是常见故障之一,其中wermgr.exe作为Windows错误报告管理器,负责收集程序崩溃信息,一旦缺失便会引发弹窗报错。理解系统文件的作用与丢失原因,是高效修复的前提。SFC和DISM是Windows内置的系统文件修复工具,通过扫描和恢复组件存储,可解决大多数文件缺失问题;若仍无效,可从官方镜像提取或使用安全软件隔离区还原。这些方法不仅适用于wermgr.exe,也适用于其他系统文件损坏场景。本文结合工程实践,梳理了从验证文件状态到分级修复的完整流程,帮助用户在无需第三

weixin_29294395的博客 331
上一篇: LINK : fatal error LNK1123: 转换到 COFF 若干思考
下一篇: setwindowpos详解
小人物2014
博客等级 码龄19年 66粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值