[R]Récuperer les modèles de cartes graphique.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

[R]Récuperer les modèles de cartes graphique.

#1

Message par someonescripting »

Bonjour,

Encore besoin d'un petit coup de main.
Toujours pour mon script, je crée une fenêtre qui affiche les informations système comme le processeur, la RAM, etc.
Il me récupère également le modèle de la carte graphique installé dans l’ordinateur.

Mon problème est le suivant, sur les ordinateurs récent (en particulier les portables), il y a bien souvent 2 cartes graphiques, la Intel et la NVIDIA/AMD.
J'utilise la fonction suivante (trouvé sur le forum anglais de mémoire) :

Code : Tout sélectionner

Func _GetGraphicCardModel() ;Récupère le modèle de la carte graphique.
	Local $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
	Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DisplayConfiguration", "WQL", 0x10 + 0x20)
	If IsObj($colItems) then
		For $objItem In $colItems
			Local $Output = $objItem.DeviceName
		Next
	Endif
Return $Output
EndFunc
Lorsque je lance le tout, en fonction des PC, il me retourne soit la NVIDIA soit la INTEL (alors que les deux sont installé et activé). Serait il possible d'avoir une fonction qui me retournerais la carte graphique intégré (INTEL) et une autre pour la carte graphique normal (NVIDIA/AMD)?

Merci pour votre aide !
Modifié en dernier par someonescripting le dim. 12 juil. 2020 17:18, modifié 1 fois.
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..]Récuperer les modèles de cartes graphique.

#2

Message par walkson »

Bonjour,
Je pense que ce code devrait convenir https://www.autoitscript.com/forum/topi ... ent-209498
(surtout sélectionnez la partie qui vous intéresse sinon ça va être long :P )
Sinon pour récupérer du WMI https://www.autoitscript.com/forum/file ... t-o-matic/
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..]Récuperer les modèles de cartes graphique.  

#3

Message par someonescripting »

Merci @walkson.

Du coup j'ai juste un peu modifier la fonctions pour que celle ci renvoie toutes les cartes graphiques ainsi que leur quantité de mémoire.

Code : Tout sélectionner

Func _GetGraphicCardModel() ;Récupère le modèle de la carte graphique et leur quantité de mémoire.
	; https://docs.microsoft.com/fr-fr/windows/win32/cimwin32prov/win32-videocontroller?redirectedfrom=MSDN
	Local $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
	Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", 0x10 + 0x20)
	Local $Output

	If IsObj($colItems) then
		For $objItem In $colItems
			$Output = $Output & @CRLF & $objItem.Caption & " (" & Int( _UINT($objItem.AdapterRAM) /( 1024000000 ) ) & "Go)"
		Next
	Endif

	Return $Output
EndFunc

Func _UINT($INT) ;Cast une valeur numérique en entier non signé.
    Local $tUINT = DllStructCreate("UINT")
    DllStructSetData($tUINT, 1, $INT)
    Return DllStructGetData($tUINT, 1)
EndFunc   ;==>_UINTFunc
(Impossible d'aller sur le lien pour le script'o'matic, j'ai ce message lors du chargement de la page : Your request has been blocked.)
Un bon informaticien, est un informaticien fainéant !
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R]Récuperer les modèles de cartes graphique.

#4

Message par walkson »

Bizarre, je n'ai aucun problème
Essayez ceci https://www.autoitscript.com/forum/file ... aysupport/
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R]Récuperer les modèles de cartes graphique.

#5

Message par mikell »

Question (pour jc, éventuellement)
Est-ce que ça ne suffit pas ?
$Output = $Output & @CRLF & $objItem.Caption & " (" & Int($objItem.AdapterRAM/1024^3) & " Go)"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R]Récuperer les modèles de cartes graphique.

#6

Message par jchd »

Bah ça doit fonctionner, de plus 1 Go c'est bien ça. Mais j'aurais au moins laissé 1 à 2 décimales, des fois que la taille soit intermédiaire.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [R]Récuperer les modèles de cartes graphique.

#7

Message par someonescripting »

Re.

@mikell, @jchd, oui j'y ai penser entre temps et j'ai décider de l'afficher en Mo plutôt qu'en Go :

Code : Tout sélectionner

Func _GetGraphicCardModel() ;Récupère le(s) modèle(s) de(s) carte(s) graphique(s).
	; https://docs.microsoft.com/fr-fr/windows/win32/cimwin32prov/win32-videocontroller?redirectedfrom=MSDN
	Local $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
	Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", 0x10 + 0x20)
	Local $Output

	If IsObj($colItems) then
		For $objItem In $colItems
			$Output = $Output & @CRLF & "- " & $objItem.Caption & " (" & Int( _UINT($objItem.AdapterRAM) / 1024 / 1024 ) & " Mo)"
		Next
	Endif

	Return $Output
EndFunc ;_GetGraphicCardModel
Ce qui nous donne ceci en complet :
SYSINFO.jpg
SYSINFO.jpg (41.66 Kio) Vu 3624 fois
(Par contre je ne comprend pas pourquoi la carte Intel me renvoie "1024" alors que je n'ai alloué que 64Mo dans le bios ..., testé aussi avec 256Mo alloué et idem.)

Edit : Je vais retirer l'affichage de la VRAM car sur les cartes récentes avec plus de 4Go de VRAM, WMI ne renvoie que 4Go (alors que ma 980Ti en dispose de 6, cela serait dû au fait que WMI renvoie un "uint32" pour "AdpaterRAM" et ne peu donc gérer plus de 4Go (si j'ai bien tout compris).
Un bon informaticien, est un informaticien fainéant !
Répondre