Working on a revamped graphics card detection for the QT, this seems to be more accurate... Test with my Clevo Laptop with dual gfx (which i can't seem to switch manually? ) Code: Primary Adaptor Name : Intel{R} HD Graphics 4600 {1 GB} Primary Adaptor Info : Resolution: 1920x1080, Driver Date: 25.21.14.1634 , Driver Vers: N/A Secondary Adaptor Name : NVIDIA GeForce GTX 860M {2 GB} As i can't switch between the gfx cards (internal Intel & Nvidia) i am hoping it gets the primary / secondary ones in the right order. I followed m$ documents to get the information using a different WMIC call ( wmic path win32_videocontroller ) this did present a little problem with SET /A due to 32-bit errors, so used a bit of Vbs to convert the RAM values. Work is on going....
Update on QT's Grfx detection. Code: Using just laptop screen, no external screen connected - Intel Gfx is in use, Nvidia is not. Adaptor 1 Info : Intel{R} HD Graphics 4600 [Active] | VRAM: 1 GB | Resolution: 1920x1080 | Bpp: 32 Adaptor 1 Other Data : Driver Date: 2018-08-16 | Driver Vers: 20.19.15.5058 Adaptor 2 Info : NVIDIA GeForce GTX 860M [Inactive] | VRAM: 2 GB Adaptor 2 Other Data : Driver Date: 2018-10-10 | Driver Vers: 25.21.14.1634 Using laptop screen, external screen connected (either HDMI or VGA port): Adaptor 1 Info : Intel{R} HD Graphics 4600 [Active] | VRAM: 1 GB | Resolution: 1920x1080 | Bpp: 32 Adaptor 1 Other Data : Driver Date: 2018-08-16 | Driver Vers: 20.19.15.5058 Adaptor 2 Info : NVIDIA GeForce GTX 860M [Active] | VRAM: 2 GB | Resolution: 1920x1080 | Bpp: 32 Adaptor 2 Other Data : Driver Date: 2018-10-10 | Driver Vers: 25.21.14.1634 In my case the laptop by default, (if no external monitor is connected), uses the Intel processor, when i connect the screen to the HDMI or VGA port then the NVidia one is also activated. It seems that the Intel one is used for standard display stuff and if gaming or anything that needs rendering things done then the Nvidia becomes 'active' to do the extra work required. All appears to be controlled via a 'software switch' - unless the laptop has a physical switch to change the graphics over?, (Some Sony laptops had this switch). Even via the 'Nvidia Control Panel' changing from 'Auto' to 'High-performance Nvidia Processor', (with or without a reboot), made no difference. Yet connecting the external screen enabled it. I am guessing if the device has a AMD GPU instead of Nvidia then the results would be the same... Either way it is what it is. Notice i not showing the colors, this is because the number is in uint64 and conversion is problematic so left that alone. I could just show the raw value but it would not mean much! Note the higher performance Gfx adaptor will remain active even if you disconnect the external display, until a system reboot, (logging out and back in does not appear to turn it off!). The new routine appears to work for all supported OS's.
My Asus ROG G750JM Laptop with Intel HD Graphics 4600 (1 GB) and Nvidia GeForce GTX 860M (2 GB) functions exactly as you stated above... When I purchased this Laptop in 2014, I incorrectly assumed that the user would actually have TOTAL control of which Graphics adapter to use, but that is not the case..
88-T2 appears to have NAILED IT... I like the way you report this info... Good job (As Always)... ================================================[ Graphics Information ]================================================ Adaptor 1 Info : NVIDIA GeForce GTX 860M [Inactive] | VRam: 2 GB : Video Ram may also include any assigned shared memory. Adaptor 2 Info : Intel{R} HD Graphics 4600 [Active] | VRam: 1 GB Adaptor 2 Other Data : Resolution: 1920x1080 | Bpp: 32 | Driver Date: 2016-11-10 | Driver Vers: 20.19.15.4549 : Video Ram may also include any assigned shared memory. =============================================[ Network Adaptor Information ]=============================================
Query Tool v88.0 has been uploaded, 2nd post download link, password and hashes updated. Spoiler: QTv88.0 Summary A quick fire release. + Using a new routine to detect the Graphics Adaptor(s), if it is Active or not, the VRam amount, Bits Per Pixel, resolution, also the Driver date and Driver version, (if the adaptor is Active). Sadly no Colors information at the moment as correctly parsing the 64 bit result is problematic. A note about VRam amount(s) this may also include any assigned shared system RAM in use. WMIC does not split this amount from the GPU's onboard memory so it is assigned all together. To find out the individual amounts you will need to use another program to determine that information. Vista/Server 2008 may not show the graphics data in full or some parts may be missing this is due to that OS's strange kernel calls and results. + Slight code tidy up to remove redundant code and external script/exe files, makes the QT slightly smaller in filesize.
interesting it not showing the 3GB for Nvidia... ( native or even shared memory ). I am wondering if wmic is not pulling the data correctly. Code: wmic path win32_videocontroller where "DeviceID LIKE 'VideoController1'" get description, adapterram /value Is part of the code i use to retrieve the data. Copy/paste that into a command prompt (or Pshell) not need admin rights. Does it still show less than 3xxxxxxxxx ?
After I copy your code to cmd shell (no pshell): Code: AdapterRAM=-1073741824 Description=NVIDIA GeForce GTX 780 ...and "yes". There is "-" (minus) before digits. In PShell: Code: Invalid GET Expression.
hmm i think that is why, as i remove the minus. Seems like i have to work out how to recalculate when the minus is showing... I wish m$ gave more details when a number goes over a limit or not! But it odd as my 1050ti has 4GB native ram and it shows as: Code: AdapterRAM=4293918720 Description=NVIDIA GeForce GTX 1050 Ti
it must be a glitch in WMIC as it not over 1TB which i think is the max limit It be a while before a Gfx card has 1TB ram (hopefully) as m$ will be a bit shafted
I've check it twice: in SIW (System Information for Windows) and in HWiNFO64 my GeForce has 3Gb of RAM. So wimc in Windows 7 is buggy or shows invalid values.
i am unsure as i not found anything in m$ doc's/website data to say there is a problem. But as usual there is always one area something not work right with any OS. Vista being one weird one where wmic calls are very erratic at times! Other programs use C# etc that can interrogate the video card direct, wmic is a 'middle man' as far as i know and can only read what it is given from a device.