想通过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()); } }