应该是不同的系统 不同的架构 已经变的不能直接操作了
[C] 纯文本查看 复制代码 #include <windows.h>
#include <stdio.h>
// 回调函数,用于枚举每个窗口
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) {
// 检查窗口是否可见并且显示在任务栏上
if (IsWindowVisible(hwnd)) {
// 获取窗口的扩展样式
LONG exStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
// 获取窗口的样式
LONG style = GetWindowLong(hwnd, GWL_STYLE);
// 检查窗口是否有WS_EX_APPWINDOW样式且没有WS_EX_TOOLWINDOW样式
if ((exStyle & WS_EX_APPWINDOW) && !(exStyle & WS_EX_TOOLWINDOW)) {
// 如果满足条件,增加计数器
*(int*)lParam += 1;
}
}
return TRUE;
}
int main() {
int count = 0;
// 枚举所有顶级窗口
EnumWindows(EnumWindowsProc, (LPARAM)&count);
printf("任务栏图标数量: %d\n", count);
return 0;
} |