java操作注册表实现开机启动


        用java程序如何实现开机启动呢?因为java并没有像C一样有哪些已经写好了的API给你自由调用,那么我们怎么样才能用java来实现注册表的修改呢?我想到了两种方案:

        方案一、我们可以调用C的方法,这里就用到了JNI(java native interface)。

        方案二、可以用cmd命令行,在cmd命令行里面有一个reg命令,百度一下reg命令或在cmd里面输入“reg /? ”你就可以详细的知道该怎么做了。

        JNI这里就不说了,因为这个以前我写过。主要说下第二种方案。

        首先要明白在java里面怎么运行一个cmd命令行,这个查下API文档即可有这么一个静态方法java.lang.Runtime,Runtime调用方法Runtime.getRuntime().exec(String ags)。

        然后我们来讨论下reg命令,修改注册表命令“reg add regkey /v appName /t re_sz /d path /f ”其中regkey是注册表的某一个节点(例如:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run),appName是注册项名字,reg_sz注册项数据类型,path应用程序路径。

public void changeStart(boolean isStartAtLogon) throws IOException{  
	String regKey = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";  
	String AppName = "MyApplication";
	String Path = "\"C:\\MyApplication.exe\"";
	Runtime.getRuntime().exec( "reg " + ( isStartAtLogon ? "add " : "delete " ) + regKey + " /v " + AppName + ( isStartAtLogon ? " /t reg_sz /d " + Path : " /f"));
} 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章