在刷视频的时候看到这些就想着自己能不能写一个
#include <Windows.h>
#include <stdio.h>
#include <time.h>
int main()
{
HINSTANCE hInstance = LoadLibrary(TEXT("shell32.dll"));
HWND hwnd = GetDesktopWindow();
HDC hdc = GetWindowDC(hwnd);
// 定义一个图标数组,用于存储提取的图标句柄
HICON icons[100];
// 提取图标,从第 0 个图标开始,一共提取 10 个图标
int numIcons = ExtractIconEx(TEXT("shell32.dll"), 0, icons, NULL, 100);
//获取主屏幕的宽和高
int w = GetSystemMetrics(SM_CXSCREEN);
int h = GetSystemMetrics(SM_CYSCREEN);
// 释放加载的 DLL
FreeLibrary(hInstance);
int x = 1000;
while (x--) //别改为x或1让程序一直执行的😁
{
for (int i = 0; i < 100; i++)
{
//800+200不改为w变量
//600+200不改为h变量
DrawIcon(hdc, rand()%800+200, rand()%600+200, icons[i]);
}
}
getchar();
return 0;
}
windows的默认图标都是放在一些dll和exe中的,不是单独以.ico格式出现,所以这里使用了shell32.dll中的,因为这个了里面的比较多。
在DrawIcon(hdc, rand()%800+200, rand()%600+200, icons[i]);,的第二个参和第三个参是位置x和y,可以随意修改。上面给的代码时把图标的生成位置限定在了一个较小的区域内容。
提醒:
1、建议不要把800+200改为w变量
2、建议不要把600+200改为h变量
3、建议不要把x--改为x或1
4、如果你要改,建议三个就一起改了,建议还是不改。图个乐就行的😁