Как получить основную видеокарту с помощью OSHIJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как получить основную видеокарту с помощью OSHI

Сообщение Anonymous »

Я использую 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»