SWTだとWindowレジストリアクセスできるらしい
自分では試していないけどメモ。
最後のサンプルは衝撃的です。Windowsのレジストリにアクセスして、DirectXのバージョンを取得するというものです。 /** * SWTを用いた Javaからレジストリをアクセスするサンプルプログラム。 */ import java.io.StringWriter; import org.eclipse.swt.internal.win32.OS; import org.eclipse.swt.internal.win32.TCHAR; /** * SWTを用いて Java言語から レジストリへのアクセスを行います。<br> * ここではDirectXのバージョンを取得するサンプルとなっています。 * * @author 渡辺義則 */ public class SwtSampleReg { /** * SWTを用いた Javaからレジストリにアクセスして DirectXのバージョンを取得するサンプル */ static void process() { final String entry = "SOFTWARE\\Microsoft\\DirectX"; final int[] hKey = new int[1]; try { int rc = OS.RegOpenKeyEx(OS.HKEY_LOCAL_MACHINE, new TCHAR( OS.CP_INSTALLED, entry, true), 0, 0xF003F/* KEY_ALL_ACCESS */, hKey); if (rc != 0) { throw new IllegalArgumentException("RegOpenKeyExの呼び出しに失敗しました。" + formatMessage(rc)); } TCHAR buf = new TCHAR(OS.CP_INSTALLED, 256); final int[] len = new int[] { 256 }; rc = OS.RegQueryValueEx(hKey[0], new TCHAR(OS.CP_INSTALLED, "Version", true), 0, null, buf, len); if (rc != 0) { throw new IllegalArgumentException( "RegQueryValueExの呼び出しに失敗しました。" + formatMessage(rc)); } System.out.println("レジストリ上のDirectXのバージョンは[" + buf.toString(0, buf.strlen()) + "]です。"); } finally { if (hKey[0] != 0) OS.RegCloseKey(hKey[0]); } } // 後半省略
情報元:SWTを用いた JavaからWin32APIへのアクセス サンプル
ただのJavaでやる方法はなさそうで安心しました(IEのプロキシの情報とか勝手に抜いて外部と通信できるのか、気になって調べてました)。