想通过java查找开机启动快捷方式所在目录,这个目录在注册表有配置
所以通过查找注册表可以得到这个目录
具体代码如下:
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
public class GetRegistryTest {
private static final String REGQUERY_UTIL = "reg query ";
private static final String REGSTR_TOKEN = "REG_SZ";
//Common Startup为注册表项的名称
private static final String STRART_UP = REGQUERY_UTIL +
"\"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\""
+ " /v \"Common Startup\"";
public static String getFolderPath() {
try {
Process process = Runtime.getRuntime().exec(STRART_UP);
StreamReader reader = new StreamReader(process.getInputStream());
reader.start();
process.waitFor();
reader.join();
String result = reader.getResult();
int p = result.indexOf(REGSTR_TOKEN);
if (p == -1)
return null;
return result.substring(p + REGSTR_TOKEN.length()).trim();
}
catch (Exception e) {
return null;
}
}
static class StreamReader extends Thread {
private InputStream is;
private StringWriter sw;
StreamReader(InputStream is) {
this.is = is;
sw = new StringWriter();
}
public void run() {
try {
int c;
while ((c = is.read()) != -1)
sw.write(c);
}
catch (IOException e) { ; }
}
String getResult() {
return sw.toString();
}
}
public static void main(String s[]) {
System.out.println("开机启动快捷方式所在目录 : "
+ getFolderPath());
}
}