Я использую OSHI для включения сведений об устройстве в журналы игры. Однако проблема в том, что использование
new SystemInfo().getHardware().getGraphicsCards()
возвращает все видеокарты
Graphics Card 1:
Graphics Card Name:Intel(R) HD Graphics 4000, VideoController1
Graphics Card Vendor: Intel Corporation
Graphics Card VRAM: 2.0 GB
Graphics Card Version Info: 10.18.10.5059
Graphics Card 2:
Graphics Card Name:Intel(R) HD Graphics 530, VideoController2
Graphics Card Vendor: Intel Corporation
Graphics Card VRAM: 1.0 GB
Graphics Card Version Info: 26.20.100.7870
Graphics Card 3:
Graphics Card Name:NVIDIA GeForce GT 520, VideoController3
Graphics Card Vendor: NVIDIA
Graphics Card VRAM: 2.0 GB
Graphics Card Version Info: 23.21.13.9135
Graphics Card 4:
Graphics Card Name:NVIDIA GeForce GT 640, VideoController4
Graphics Card Vendor: NVIDIA
Graphics Card VRAM: 2.0 GB
Graphics Card Version Info: 27.21.14.5671
Я знаю, что моя основная видеокарта — NVIDIA GeForce GT 640, однако, учитывая, что эти логи будут присылаться другими, эти «знания» вряд ли будут полезны. Так как же мне получить основные видеокарты?
И почему у меня 4 видеокарты? насколько мне известно, HD Graphics 4000 — это моя встроенная графика, а NVIDIA GeForce GT 640 — это установленная мной видеокарта, дополнительных видеокарт у меня нет.
Вот MRE, который вы можете запустить, чтобы проверить себя
import java.util.List;
import oshi.SystemInfo;
import oshi.hardware.GraphicsCard;
public class Main {
public static void main(String[] args) {
List graphcisCards = new SystemInfo().getHardware().getGraphicsCards();
int graphicsCardNumber = 1;
for(GraphicsCard graphicsCard : graphcisCards) {
System.out.println("Graphics Card " + graphicsCardNumber + ":\n" + format(graphicsCard));
graphicsCardNumber++;
}
}
private static String format(GraphicsCard graphicsCard) {
double memoryAsGB = graphicsCard.getVRam() / 1073741824;
String string = "";
string += " Graphics Card Name:" + graphicsCard.getName() + ", " + graphicsCard.getDeviceId() + "\n";
string += " Graphics Card Vendor: " + graphicsCard.getVendor() + "\n";
string += " Graphics Card VRAM: " + memoryAsGB + " GB\n";
string += " Graphics Card Version Info: " + graphicsCard.getVersionInfo() + "\n";
return string;
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... using-oshi