2016-06-15 19 views
2

現在実行中のGPU(専用または統合)を特定するためのPythonスクリプトを作成しようとしています。私はそれまでdxdiagを実行し、各gpuデバイスのモードの出力を解析することでこれを動作させることができましたが、これは長すぎます。誰でもdxdiagがこの情報をどのように取得するのか知っていますか? Windows管理ツールを使用して情報を取得する方法はありますか?どんな助けもありがとうございます。WMIを通じて実行されているGPUを特定します

おかげ

答えて

1

DXDiag最もはおそらくWMIテーブルからデータを取り出し私はそれを確認する必要があります。

wmic PATH Win32_VideoController GET Adapterram 

あなたが探している情報を提供します。詳細な情報が必要な場合は、以下のコマンドを実行してください。

wmic PATH Win32_VideoController 

そして、あなたはGPU名

wmic PATH Win32_VideoController GET Name 

更新

より良く理解するための例を追加したい場合。 deviceidと下記の表の間にマップし、情報を得ることができます。

instance of Win32_VideoController 
{ 
    AdapterCompatibility = "Intel Corporation"; 
    AdapterDACType = "Internal"; 
    AdapterRAM = 1073741824; 
    Availability = 3; 
    Caption = "Intel(R) HD Graphics 4600"; 
    ConfigManagerErrorCode = 0; 
    ConfigManagerUserConfig = FALSE; 
    CreationClassName = "Win32_VideoController"; 
    CurrentBitsPerPixel = 32; 
    CurrentHorizontalResolution = 1920; 
    CurrentNumberOfColors = "4294967296"; 
    CurrentNumberOfColumns = 0; 
    CurrentNumberOfRows = 0; 
    CurrentRefreshRate = 59; 
    CurrentScanMode = 4; 
    CurrentVerticalResolution = 1080; 
    Description = "Intel(R) HD Graphics 4600"; 
    DeviceID = "VideoController1"; 
    DitherType = 0; 
    DriverDate = "20150911000000.000000-000"; 
    DriverVersion = "20.19.15.4285"; 
    InfFilename = "oem79.inf"; 
    InfSection = "iHSWD_w10"; 
    InstalledDisplayDrivers = "igdumdim64.dll,igd10iumd64.dll,igd10iumd64.dll,igd12umd64.dll,igdumdim32,igd10iumd32,igd10iumd32,igd12umd32"; 
    MaxRefreshRate = 75; 
    MinRefreshRate = 50; 
    Monochrome = FALSE; 
    Name = "Intel(R) HD Graphics 4600"; 
    PNPDeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10"; 
    Status = "OK"; 
    SystemCreationClassName = "Win32_ComputerSystem"; 
    SystemName = "---------"; 
    VideoArchitecture = 5; 
    VideoMemoryType = 2; 
    VideoModeDescription = "1920 x 1080 x 4294967296 colors"; 
    VideoProcessor = "Intel(R) HD Graphics Family"; 
}; 




instance of Win32_PnPEntity 
{ 
    Caption = "Intel(R) HD Graphics 4600"; 
    ClassGuid = "{4d36e968-e325-11ce-bfc1-08002be10318}"; 
    CompatibleID = {"PCI\\VEN_8086&DEV_0412&REV_06", "PCI\\VEN_8086&DEV_0412", "PCI\\VEN_8086&CC_030000", "PCI\\VEN_8086&CC_0300", "PCI\\VEN_8086", "PCI\\CC_030000", "PCI\\CC_0300"}; 
    ConfigManagerErrorCode = 0; 
    ConfigManagerUserConfig = FALSE; 
    CreationClassName = "Win32_PnPEntity"; 
    Description = "Intel(R) HD Graphics 4600"; 
    DeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10"; 
    HardwareID = {"PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06", "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C", "PCI\\VEN_8086&DEV_0412&CC_030000", "PCI\\VEN_8086&DEV_0412&CC_0300"}; 
    Manufacturer = "Intel Corporation"; 
    Name = "Intel(R) HD Graphics 4600"; 
    PNPClass = "Display"; 
    PNPDeviceID = "PCI\\VEN_8086&DEV_0412&SUBSYS_18E5103C&REV_06\\3&11583659&0&10"; 
    Present = TRUE; 
    Service = "igfx"; 
    Status = "OK"; 
    SystemCreationClassName = "Win32_ComputerSystem"; 
    SystemName = "-------"; 
}; 
+0

はMaxRefreshRate = 0を除いて、1つのGPUは、他の上で実行されているWin32_VideoControllerの出力との間には差はないように思えるとGPU使用しないためのMinRefreshRateはありません。これは唯一の方法ですか? DxDiagにあるような、ある種のソートモード値があると思っていました。 – draB1

+0

「GPUが他のGPUと競合している」ということは何を意味するのかよく分かりません。私は例を使って答えを更新しました。また、すべての情報についてWMIに依存することができます。それが役に立てば幸い。 –

+0

dxdiagを実行すると、デバイスとして表示されているGPU(統合Intel、専用Nvidia)を両方見ることができます。現在実行中のGPUの現在の表示モードは、1920x1080 32bit 60hzと表示され、他のGPUはn/aとして表示されます。上記のWMIコマンドを実行すると、現在使用されているGPUの識別フィールドはありません。 MaxRefreshRateを除いて、GPUが動作しているか、動作していないときは、すべてのフィールドが同じです。 – draB1

関連する問題