Chaine vide dans un programme extérieur

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Chaine vide dans un programme extérieur

Message par Micoute »

Bonjour à tous, je ne comprend pas pourquoi quand j'appelle cette procédure dans un autre programme, il me renvoie une chaine vide.

Code : Tout sélectionner

Procedure GetRegistryValue(hKey, lpSubKey.s, lpValueName.s)
  #KEY_WOW64_64KEY = $100
  
  If RegOpenKeyEx_(hKey, lpSubKey, ulOptions, #KEY_QUERY_VALUE | #KEY_WOW64_64KEY, @phkResult) = #ERROR_SUCCESS
    If RegQueryValueEx_(phkResult, lpValueName, lpReserved, @lpType, #Null, @lpcbData) = #ERROR_SUCCESS
      If lpcbData
        *lpData = AllocateMemory(lpcbData)
        RegQueryValueEx_(phkResult, lpValueName, lpReserved, @lpType, *lpData, @lpcbData)
      EndIf
    EndIf
    RegCloseKey_(phkResult)
  EndIf
  ProcedureReturn *lpData
EndProcedure

Procedure.s CarteGraphique() ;Détermine la carte graphique installée
  Global CarteGraphique.s
  lpSubKey.s = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\WinSAT"
  *lpData = GetRegistryValue(#HKEY_LOCAL_MACHINE, lpSubKey, "PrimaryAdapterString")
  CarteGraphique = PeekS(*lpData) : FreeMemory(*lpData)
  ProcedureReturn CarteGraphique
EndProcedure

Debug CarteGraphique()
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Chaine vide dans un programme extérieur

Message par Ar-S »

Salut Micoute,
Tu peux être plus explicite ?
En lançant le code j'ai bien la bonne CG qui apparaît. Tu entends quoi par :
quand j'appelle cette procédure dans un autre programme
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Chaine vide dans un programme extérieur

Message par falsam »

Peut être que la clé PrimaryAdapterString n'existe pas dans sa base de registre. Windows 10 peut etre ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Chaine vide dans un programme extérieur

Message par Ar-S »

Elle existe bien sur le pc que j'utilise en ce moment. Elle est bien dans

Code : Tout sélectionner

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinSAT
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Chaine vide dans un programme extérieur

Message par falsam »

Cheztoi oui Ar-s. Aprés une longue recherche (Ctrl+F) de la clé PrimaryAdapterString sur un de mes pc sous Windows 10, la clé PrimaryAdapterString n'existe pas. D'ou cette erreur.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Chaine vide dans un programme extérieur

Message par Ar-S »

As tu une clé indiquant le nom de ta CG dans WinSAT ?
Peut-être que c'est lié aux cartes ATI ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Chaine vide dans un programme extérieur

Message par falsam »

Ar-S a écrit :As tu une clé indiquant le nom de ta CG dans WinSAT ?
Peut-être que c'est lié aux cartes ATI ?
WinSAT existe bien dans ma base de registre mais je n'ai pas d'information sur le nom de ma carte vidéo qui est une nvidia.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Chaine vide dans un programme extérieur

Message par Ar-S »

Mon hypothèse ATI se confirme, faudrait d'autres retours.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Chaine vide dans un programme extérieur

Message par Micoute »

Ma carte est aussi une NVIDIA et j'ai retrouvé son nom dans le registre HKEY_LOCALE_MACHINE\SOFTWARE\MICROSOFT\WINDOW NT\\CurrentVersion\WinSAT\PrimaryAdapterString

Quand je teste ma procédure dans mon fichier à inclure, le résultat est bon, mais si j'appelle ma procédure à partir d'un IncludeFile, ça me renvoie une chaine vide.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Chaine vide dans un programme extérieur

Message par falsam »

Si je teste ton code tel quel, j'ai une IMA. ça veut dire que ta procédure pour obtenir un nom de carte vidéo n'est pas universelle en tout cas.

Quand à la façon de l'utiliser depuis un include je ne vois pas pourquoi ça ne fonctionnerait pas.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Chaine vide dans un programme extérieur

Message par Ar-S »

Micoute tu devrais regarder du coté des WMI
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Chaine vide dans un programme extérieur

Message par Micoute »

Merci à tous pour votre aide qui m'a été très précieuse et effectivement avec les WMi, tous prêts mâchés par falsam, ce fut du gâteau !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre