@Sergey K.は答えとして、これを行う方法がいくつかあります。これらのうちの1つはdxdiag
ツールを使用しています(明らかにWindows上でのみ動作します)。具体的にはdxdiag /t
の亜種です。これは出力を特定のファイルにリダイレクトします。
public static void main(String[] args) {
try {
String filePath = "./foo.txt";
// Use "dxdiag /t" variant to redirect output to a given file
ProcessBuilder pb = new ProcessBuilder("cmd.exe","/c","dxdiag","/t",filePath);
System.out.println("-- Executing dxdiag command --");
Process p = pb.start();
p.waitFor();
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line;
System.out.println(String.format("-- Printing %1$1s info --",filePath));
while((line = br.readLine()) != null){
if(line.trim().startsWith("Card name:") || line.trim().startsWith("Current Mode:")){
System.out.println(line.trim());
}
}
} catch (IOException | InterruptedException ex) {
ex.printStackTrace();
}
}
生成されたファイルは次のようになります:
、出力は次のようになります。 - 実行
次に、あなたが必要な情報を取得するために、そのファイルを処理することができますdxdiagコマンド -
- 印刷./foo.txt info -
カード名:Intel(R)HD G raphicsファミリー
現在のモード:1366 x 768(32ビット)(60Hz)