PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Clé du SE Windows
Clé du SE Windows
Iniciado por infos, jul., 26 2005 6:33 PM - 3 respostas
Publicado em julho, 26 2005 - 6:33 PM
Bonjour,
Je dois gérer un parc informatique et je voudrais stocker en clair la clé Windows ayant permis l'installation du système d'exploitation sur le poste en cours dans un fichier, pour cela soit je lis la base de registre mais je tombe sur une clé (REG-BINARY) ou existe-t-il une API, sinon quelqu'un a -t-il une autre solution ?
MERCI
Publicado em julho, 27 2005 - 5:04 PM
Bonjour essaye cette fonction :
en parametre le nom de l'ordinateur defaut la machine locale
sur un pc-W2Kpro ca roule même si je demande le numéro d'une machine XPpro

FUNCTION GetLicenceNumber(pComputerName=NetNomMachine())

objWMIService est un objet Automation "MSScriptControl.ScriptControl"
ProgrammeVbs est une chaîne
ResultatVbs est une chaîne

ProgrammeVbs = "Function GetLicenceNumber(ComputerName)" + CRLF
ProgrammeVbs += "On Error Resume Next" + CRLF
ProgrammeVbs += "strComputer = ComputerName" +CRLF
ProgrammeVbs += "strResult = "+Caract(34)+Caract(34) + CRLF
ProgrammeVbs += "Set objWMIService = GetObject("+Caract(34)+"winmgmts:\\"+Caract(34)+" & strComputer & "+Caract(34)+"\root\cimv2"+Caract(34)+")"+CRLF
ProgrammeVbs += "Set colItems = objWMIService.ExecQuery("+Caract(34)+"Select * from Win32_OperatingSystem"+Caract(34)+",,48)"+CRLF
ProgrammeVbs += "For Each objItem in colItems" + CRLF
ProgrammeVbs += "strResult = objItem.SerialNumber" + CRLF
ProgrammeVbs += "Next"+CRLF
ProgrammeVbs += "GetLicenceNumber = strResult" +CRLF
ProgrammeVbs += "End Function"

objWMIService>>Language("VBScript")
objWMIService>>Reset()

WHEN EXCEPTION IN
objWMIService>>AddCode(ProgrammeVbs)
DO
Erreur("Erreur dans le programme vbs...")
RENVOYER ""
END

ResultatVbs = ""

WHEN EXCEPTION IN
ResultatVbs = objWMIService>>Eval("GetLicenceNumber("+Caract(34)+pComputerName+Caract(34)+")")
DO
Erreur("Erreur d'execution du programme vbs")
RENVOYER ""
END

IF ResultatVbs<>"" THEN ResultatVbs = ResultatVbs[[1 sur Taille(ResultatVbs)-2]]

RENVOYER ResultatVbs
Publicado em julho, 27 2005 - 5:21 PM
si tu veux en plus simple pour le poste local
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId
Publicado em agosto, 01 2005 - 10:57 PM
Bonjour,
Je te remercie pour tes réponses, mais cela ne correspond pas à la question, c'est la clé d'installation du systéme d'exploitation c'est une suite de 5 blocs de 5 caractères intitulé Product Key et qui se retrouve sur l'étiquette Microsoft accolé (pas toujours) sur la machine, enfin c'est la clé que l'on saisi quand on installe windows.

J'ai malgré tout testé ta fonction c'est parfait, quant à la seconde elle n'est pas toujours vrai puisque l'emplacement varie, je ne sais pas pourquoi, sur ma machine elle ne se voit pas à cet emplacement de la base de registre.

Si tu avais la réponse, je t'en remercie encore.

dans l'attente