32位程序在64位系统下隐藏托盘图标
来源:互联网 发布:mysql的触发器 编辑:程序博客网 时间:2024/05/23 19:19
网上有很多代码,多是在32位系统下正常,64位系统则无法隐藏系统图标,分析发现原因如下。
原因:64位系统下Explorer.exe是64位的,访问其进程时结构体数据与32位系统有所差异,导致读取数据错误。
解决:按64位系统内结构读取数据赋值,结构如下:
#define SYSTEM64#ifdef SYSTEM64#define TBBUTTONEX _TBBUTTON64#else#define TBBUTTONEX _TBBUTTON#endif#ifdef SYSTEM64#define TRAYDATAEX _TRAYDATA64#else#define TRAYDATAEX _TRAYDATA32#endiftypedef struct _TBBUTTON64 {int iBitmap;int idCommand;BYTE fsState;BYTE fsStyle;BYTE bReserved[6]; // padding for alignmentPVOID64 dwData;PVOID64 iString;} TBBUTTON64;struct _TRAYDATA32 { HWND hWnd; UINT uID; UINT uCallbackMessage; DWORD Reserved1[2]; HICON hIcon; DWORD Reserved2[3]; TCHAR szExePath[MAX_PATH]; TCHAR szTip[128]; } TRAYDATA32; struct _TRAYDATA64 { PVOID64 hWnd; //HWND 64位 8字节UINT uID; UINT uCallbackMessage; DWORD Reserved1[2]; PVOID64 hIcon; //HICON 64位 8字节DWORD Reserved2[4]; TCHAR szExePath[MAX_PATH]; TCHAR szTip[128]; } TRAYDATA64;
0 0
- 32位程序在64位系统下隐藏托盘图标
- 在32位系统下编译64位程序
- 在32位系统下编译64位程序
- premake 在64位Ubuntu系统下编译32位GCC程序
- 64位系统下用32位程序
- 32位程序在64位系统部署注意事项
- 64位?32位?32位程序如何在64位linux下运行?
- 在64位linux下编译出32位程序
- 在64位linux下编译32位程序
- 在64位linux下编译32位程序
- Windows 32位程序在64位操作系统下运行
- 在64位linux下编译32位程序
- 在64位linux下编译32位程序
- 在64位linux下编译32位程序
- 在64位linux下编译32位程序
- 在64位系统下编译32位汇编程序
- 用SAP2007DIAPI开发的程序,在32位系统下好用,64位系统下不好用的对策
- 64位系统运行32位程序
- 通过透明度执行幻灯片
- Android实践 -- Android Wi-Fi 直连 传输数据
- 华为OJ2417合法
- SwipeRefreshLayout设置刷新圆圈距离顶部的距离
- html执行顺序的坑(附例子)
- 32位程序在64位系统下隐藏托盘图标
- listview源码解析
- 2016 年最受欢迎的编程语言是什么?
- 从零开始学C++之对象的使用(二):四种对象生存期和作用域、static 用法总结
- 御泥坊的购物车单选、全选,改变数量
- 用labview实现有趣字符串 图画
- Matlab 入门级函数<一>
- ios developer tiny share-20161017
- 9 javascript JSON