一个恶搞小程序,随机在桌面上生成小图标

在刷视频的时候看到这些就想着自己能不能写一个

#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、如果你要改,建议三个就一起改了,建议还是不改。图个乐就行的😁

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java提供了一个Random类来生成随机数,可以用这个类来生成随机小图标。具体实现流程如下: 1. 定义一个JFrame对象来作为桌面应用的主窗口。 2. 通过JFrame对象的setIconImage()方法来设置应用的小图标。这个方法需要传入一个Image对象,我们可以通过Java自带的ImageIO类来读取一张图片,然后转换成Image对象。 3. 在生成随机数的时候,可以使用Random类的nextInt()方法来生成一个0到n-1的随机整数,其中n是图片的数量。 4. 根据生成随机数来选择一张图片作为应用的小图标。 以下是一个示例代码: ```java import java.awt.Image; import java.io.File; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.swing.JFrame; public class RandomIcon { public static void main(String[] args) throws IOException { JFrame frame = new JFrame("Random Icon"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 读取所有图片文件 File folder = new File("icons"); File[] files = folder.listFiles(); Image[] images = new Image[files.length]; for (int i = 0; i < files.length; i++) { images[i] = ImageIO.read(files[i]); } // 随机选择一张图片作为图标 Random random = new Random(); int index = random.nextInt(images.length); Image icon = images[index]; frame.setIconImage(icon); frame.setSize(200, 200); frame.setVisible(true); } } ``` 在这个例子中,我们将所有的图片文件放在一个名为icons的文件夹中,然后通过File类和ImageIO类来读取这些文件并转换成Image对象。接着,通过Random类来生成一个随机的整数,然后根据这个整数来选择一张图片作为应用的小图标。最后,调用JFrame对象的setIconImage()方法来设置小图标

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值