用java将bing每日壁纸设置为win7壁纸

news/2024/12/5 5:47:36/

原文:用java将bing每日壁纸设置为win7壁纸

源代码下载地址:http://www.zuidaima.com/share/1550463716592640.htm

之前发表了“用java将bing每日壁纸设置为win7壁纸”,看了评论后就决定将这个想法在win7上实现。

其实在win7上的实现和在ubuntu上的实现并没有很大的区别,前面解析xml和下载图片是一样的,区别是后面设置壁纸。

win7下设置壁纸的代码有点麻烦,没有linux直接调用命令那样好用。后来在设置开机启动项的时候发现,运行这个jar文件的顺序会先于启动网络服务,于是我用一个do...while来解决这个问题(具体见main函数的代码)。

编译这个程序需要用到jna.jar包和jna-platform.jar包。

建议将其编译打包成可执行jar文件,然后点击开始菜单----“所有程序”-----“启动”右键选“打开”,将jar文件拖入到打开的文件夹,这样每天开机的时候壁纸就能自动换了~~

package com.zuidaima;import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import com.sun.jna.Native;
import com.sun.jna.platform.win32.WinDef.UINT_PTR;
import com.sun.jna.win32.*;/**
*@author www.zuidaima.com
**/
public class MyWallpaper {public static void main(String[] argc) throws ParserConfigurationException, SAXException, IOException{MyWallpaper wallpaper = new MyWallpaper();do{String path = wallpaper.getThePath();wallpaper.downLoadWallpaper(path);wallpaper.settingWallpaper();}while(wallpaper.isConnect()!=true);}public interface SPI extends StdCallLibrary {long SPI_SETDESKWALLPAPER = 20;long SPIF_UPDATEINIFILE = 0x01;long SPIF_SENDWININICHANGE = 0x02;SPI INSTANCE = (SPI) Native.loadLibrary("user32", SPI.class, new HashMap<Object, Object>() {{put(OPTION_TYPE_MAPPER, W32APITypeMapper.UNICODE);put(OPTION_FUNCTION_MAPPER, W32APIFunctionMapper.UNICODE);}});boolean SystemParametersInfo(UINT_PTR uiAction,UINT_PTR uiParam,String pvParam,UINT_PTR fWinIni);}public boolean isConnect() throws IOException{Runtime runtime = Runtime.getRuntime();Process process = runtime.exec("ping www.baidu.com");InputStream is = process.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);if(br.readLine()==null){//System.out.println("The network is wrong!");return false;}else{//System.out.println("The network is well");return true;}}public String getThePath() throws ParserConfigurationException, SAXException, IOException{//getting the path of the bing jpg picture via analysis xmlDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder();Document document = builder.parse("http://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=8");document.normalize(); String relativePath =document.getElementsByTagName("url").item(0).getTextContent();String path ="http://www.bing.com/"+relativePath;return path;}public void downLoadWallpaper(String path) throws IOException{//download the jpg fileURL url = new URL(path);DataInputStream dis = new DataInputStream(url.openStream());FileOutputStream fos = new FileOutputStream(new File("C:\\wallpaper.jpg"));byte[] buffer = new byte[1024];int length;while((length=dis.read(buffer))>0){	fos.write(buffer,0,length);}dis.close();fos.close();}public void settingWallpaper(){String localpath = "C:\\wallpaper.jpg";SPI.INSTANCE.SystemParametersInfo(new UINT_PTR(SPI.SPI_SETDESKWALLPAPER), new UINT_PTR(0), localpath, new UINT_PTR(SPI.SPIF_UPDATEINIFILE | SPI.SPIF_SENDWININICHANGE));}
}





http://www.ppmy.cn/news/168003.html

相关文章

win7用html做桌面,win7系统怎么制作主题桌面 win7系统制作主题桌面方法

我们在使用win7系统的过程当中&#xff0c;有一个个性化设置&#xff0c;在这里我们能够将壁纸或者主题换成我们喜欢的类型&#xff0c;当然如果你想的话&#xff0c;还可以自己制作桌面主题&#xff0c;那么win7系统怎么制作主题桌面呢?今天为大家分享win7系统制作主题桌面的…

win7与linux切换,Windows 7停更后不想用Win10?教你直接换上Linux再战

2020年1月14日&#xff0c;微软正式宣告 Windows 7 系统停止更新&#xff0c;官方停止技术支持、软件更新和安全问题的修复&#xff0c;说白了就是停服&#xff0c;再用 Windows 7 系统没人管你了。盗版我们就不说了&#xff0c;现在正版用户是越来越多了&#xff0c;没人管真的…

C++基础(二) —— 参数

文章目录 1 带形参默认值的函数2 内联inline3 函数重载多态 4 const用法&#xff1a;const修饰的量常出现的错误 4 引用引用和指针的区别传值传引用传指针左值引用右值引用 4 const指针引用引用指针实例 7 new、delete和malloc、freenew、deletemalloc、free 1 带形参默认值的函…

win7 桌面html,极品壁纸再一张:Windows7桌面就是我的家

Win7之家( www.win7china.com)&#xff1a;极品壁纸再一张&#xff1a;Windows7桌面就是我的家 那几张壁纸是个书柜和书桌&#xff0c;摆上你桌面的一些常用图标&#xff0c;很是耍酷。在本文的下方还有上次的那个壁纸的回顾。 好吧&#xff0c;今天再来推荐一张极品壁纸&#…

Win7和Win10实用批处理命令

win7手动设置ip批处理命令需管理员运行 netsh interface ip set address name=“本地连接” source=static addr=192.168.1.160 mask=255.255.255.0 gateway=192.168.1.1 win10手动设置ip批处理命令需管理员运行 netsh interface ip set address “以太网 2” static 192.168.…

最新windows7系统下载

经常有朋友找小编要windows7系统下载了&#xff0c;这么看来大家肯定都非常喜欢这款系统了&#xff0c;那么我们到底要去哪里下载呢?其实下载方法还是蛮简单的&#xff0c;下面小编就给大家带来windows7系统下载吧。 一、系统之家ghost win7 x64 旗舰版更新详情&#xff1a; ☉…

win7美化_Win10桌面美化实用软件推荐

不知道各位小伙伴们有没有遇到过这样的问题&#xff0c;自己电脑中的文件和APP越来越多&#xff0c;桌面上几乎被各种word&#xff0c;excel等文件覆盖的满满当当&#xff0c;要找到自己需要的文件总要花上不少功夫&#xff0c;多来几次简直一天换一副眼镜的节奏。 但自从我用上…

win7仿linux主题,linuxmint 16 cinnamon模仿win7/win8主题

搞了一天&#xff0c;终于差不多完成了模仿win7/win8风格的linuxmint哦&#xff5e;&#xff01; 之前在百度找过类似的教程&#xff0c;在教程中我看到了一个noobslab网站&#xff0c;点击进去发现这是一个关于linux 的网站&#xff0c;网站的风格我还是非常喜欢的&#xff0c…