1.用DOS命令向注册表[HKEY_LOCAL_MACHINE]\Software\Microsoft\Windows\CurrentVersion\Run添加值
2.Ja对Windows注册表进行增删查
方法一、
点击Windows键,输入cmd,然后右键选择以管理员身份运行;
方法二、
1、首先 Win+R – regedit;
2、找到以下位置HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,新建一个字符串值,命名为”c:\windows\system32\cmd.exe”,一般我们的系统都安装在C盘吧,然后右键–修改 – 数值数据写入“RUNASADMIN”,确定 !
用DOS命令向注册表[HKEY_LOCAL_MACHINE]\Software\Microsoft\Windows\CurrentVersion\Run添加值
一、"regedit.exe"是Windows系统的注册表编辑器。
二、启动系统配置实用程序
三、控制系统服务,如果您无法在开始菜单中找到组件,可以打开本地服务
四、当
Windows
在非正常关机后重新启动时,禁止在特定卷上自动运行
chkdsk。如果使用
chkdsk
/f
安排了在下一次系统重新启动时在活动卷上运行
chkdsk,则也可以使用
chkntfs
来取消安排
chkdsk。
Ja对Windows注册表进行增删查
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v 123.exe /d "D:\Program Files\123.exe"
前一个 123.exe可以自己任意改名,但如果有空格,需要用引号引起来。
代码描述
用ja对windows注册表进行编辑是一个比较困难的任务 因为ja的平台无关性 但是ja提供了Runtime类 它允许把原始的mand命令直接发生送给OS 所以可以通过这个类来实现对注册表简单有效的管理
这里允许的基本功能是添加 删除和查询注册表信息 根据key查询出value和type分别存放在不同的变量中
//主要的方法
add(String location String key String type String value);
delete(String location String key);
query(String location String key);
//查询消息用到的方法
getKey() => 检索的key名
getValue() => 根据key得到的value
getType() => 根据key得到的数据类型 (REG_SZ REG_BINARY 等)
调用方法
例:
public static void main(String[] args) {
try {
RegKeyManager rkm = new RegKeyManager();
// 位系统的注册表目录
// rkm query( HKEY_LOCAL_MACHINE\\SOFARE\\Wow Node\\Tencent\\QQ Install );
// 位系统的注册表目录
rkm query( HKEY_LOCAL_MACHINE\\SOFARE\\Tencent\\QQ Install );
System out println( KEY: + rkm getKey() + DATA TYPE: + rkm getType() + DATA VALUE: + rkm getValue());
// rkm add( HKEY_LOCAL_MACHINE\\SOFARE\\Tencent\\QQ TESTING REG_SZ VALUE DATA );
// rkm delete( HKEY_LOCAL_MACHINE\\SOFARE\\Tencent\\QQ TESTING );
} catch (Exception e) {
e printStackTrace();
}
}
注: 位系统注册表路径是不同的上面的代码实现了在qq的注册表路径下查询出qq的安装路径(对于获取QQ的安装路径前段时间写过一篇类似的文章 如果你感兴趣的话可以参看JAVA通过注册表获取软件的安装路径) 在安装路径下添加一个注册表信息 然后删除添加的信息
package languageexpress ja;
import ja io *;
public class RegKeyManager {
private final String TYPES[] = { SZ BINARY DWORD QWORD DWORD_LITTLE_ENDIAN QWORD_LITTLE_ENDIAN DWORD_BIG_ENDIAN EXPAND_SZ LINK MULTI_SZ NONE RESOURCE_LIST };
private String type = value = key = ;
protected void query(String loc String k) throws Exception {
Process p = Runtime getRuntime() exec( reg QUERY \ + loc + \ /v \ + k + \ );
BufferedReader in = new BufferedReader( new InputStreamReader( p getInputStream() ) );
String out = ;
while ( ( out = in readLine() ) != null ) {
if (out matches( ( *)\\s+REG_( *) )) { break; }
}
in close();
String str[] = out split( );
int b = ;
for (int a= ; a < str length; a++) {
if ( str[a] replace( ) matches( \\S+ ) ) {
switch (b) {
case : key = str[a]; break;
case : type = str[a]; break;
case : value = str[a]; break;
}
b++;
}
}
}
protected String getKey() { return key; }
protected String getType() { return type; }
protected String getValue() { return value; }
protected boolean add(String loc String name String dType String value) throws Exception {
boolean p = false valid = false;
for (int a = ; a < TYPES length; a++) {
if (dType equalsIgnoreCase( REG_ + TYPES[a])) { valid = true; break; }
}
if ( valid ) {
Process p = Runtime getRuntime() exec( reg ADD \ + loc + \ /v \ + name + \ /t \ + dType + \ /d \ + value + \ );
BufferedReader in = new BufferedReader( new InputStreamReader( p getInputStream() ) );
String out = ;
while ( (out = in readLine() ) != null ) {
if (out equalsIgnoreCase( The operation pleted successfully )) { p = true; }
}
in close();
}
return p;
}
protected boolean delete(String loc String key) throws Exception {
boolean p = false;
Process p = Runtime getRuntime() exec( reg DELETE \ + loc + \ /v \ + key + \ /f );
BufferedReader in = new BufferedReader( new InputStreamReader( p getInputStream() ) );
String out = ;
while ( ( out = in readLine() ) != null ) {
if (out equalsIgnoreCase( The operation pleted successfully )) { p = true; }
}
in close();
return p;
}
lishixinzhi/Article/program/Ja/hx/201311/26615