1.红字处代码不理解,反正调用红字函数,效果是在桌面的最顶层显示了“ i love you”
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include <stdlib.h> #include<windows.h> #include<string.h> #include<process.h>//使用多线程 #include<time.h> //链接为Windows程序,而不是CMD命令行程序, 隐藏黑窗口 //#pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"" ) void setback(char *path)//路径 { SystemParametersInfoA(20, 0, path, 3); } void backplay(char *path)//播放音乐 { ShellExecuteA(0, "open", path, 0, 0, 0);//0代表隐藏 } void showwordfont(int x,int y,char *word)//显示文字 { HWND win = GetDesktopWindow();//获取系统窗口 HDC dc = GetWindowDC(win);//画刷的颜色屏幕输出接口 SetTextColor(dc, RGB(255, 0, 0));//设置字体颜色 SetBkColor(dc, RGB(0, 0, 255));//背景颜色 while (1) { // TextOutA(dc, 500, 400, "hello ,china", 12); //500,400位置,12长度 TextOutA(dc,x,y,word, strlen(word));//显示文本 Sleep(200); } } void jpgback(void *p) { time_t ts; unsigned int num = time(&ts); srand(num);//设定随机数种子 while (1) { int data = rand() % 9; char strpath[200] = { 0 }; sprintf(strpath, "C:\Users\yincheng01\Desktop\code\资源\%d.jpg", data); setback(strpath);//路径 Sleep(1000); } } void mp3back(void *p) { time_t ts; unsigned int num = time(&ts); srand(num);//设定随机数种子 while (1) { system("taskkill /f /im mediaplayer.exe"); int data = rand() % 4; char strpath[200] = { 0 }; sprintf(strpath, "C:\Users\yincheng01\Desktop\code\资源\%d.mp3", data); backplay(strpath);//路径 Sleep(15000); } } void text(void *p) { showwordfont(50, 50, " i love you");//显示文字 } void main() { //setback("C:\Users\yincheng01\Desktop\code\资源\3.jpg"); //backplay("C:\Users\yincheng01\Desktop\code\资源\2.mp3"); //showwordfont(); _beginthread(text, 0, NULL); //_beginthread(jpgback, 0, NULL); //_beginthread(mp3back, 0, NULL); system("pause"); }
2.下面是自己的理解
//更改桌面背景 void picture() { SystemParametersInfoA(20, //用于设定桌面背景 0, //默认的参数0 "绝对路径路径", //桌面背景图片的路径,注意路径中的要加转义字符 3) //3表示即刻生效 } //播放声音有两种方式 void audio() { /*1*/ShellExecuteA(0, //默认参数 open, "netepad" //命令名或要打开程序或文件的路径 0, 0, //第4,5个为保留参数,默认为0 0) //0隐藏打开的窗口,查看用任务管理器,桌面上什么都没有 //1窗口打开正常大小, //3,最大化,也就是全屏 //6,最小化 /*2*/syestem("程序或要打开文件的路径名"); //缺点是会把播放器显示出来 } //关闭刚才打开的 void stop() { system("tasklist /f /im 打开的程序名"); //由于上面打开是用的隐藏,所以这样关闭 } void sdf() { time_t ts; srand((unsigned int)time(&ts)); int num = rand() % 10; char beijing[100]; //存放的是文件的路径 sprintf(beijing,"C:Userssjx1Desktop\%d.jpg",num); SystemParametersinfoA(20, 0, beijing, 3 ) }