PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Numero du disque dur
Numero du disque dur
Iniciado por ARAB, fev., 09 2005 10:52 PM - 16 respostas
Publicado em fevereiro, 09 2005 - 10:52 PM
Salut tout le monde

j'aimerai recupérer la serie du dique dur sous Windev et je trouvé que fdisqueinfo

mais elle me retourne "21354652" un autre serie que selui de la commande DOS VOl "2ER-52GZ6"

qlq peux mme dire ou je peux recupérer le serial ???????


Merci d'avance
Publicado em fevereiro, 10 2005 - 9:06 AM
Salut,

Ci-dessous, voici le code que j'ai trouvé sur :
http://centrewd.free.fr/…

// Obtenir le numéro de série du disque
lpRootPathName est une chaîne ASCIIZ sur 255
lpVolumeNameBuffer est une chaîne ASCIIZ sur 100
nVolumeNameSize est un entier
lpVolumeSerialNumber est un entier
lpFileSysNameBuf est une chaîne ASCIIZ sur 255
nFileSystemNameSize est un entier
RetVal est un entier
NumSerie est une chaîne
lpRootPathName = "c:\"
nVolumeNameSize = 100
nFileSystemNameSize = 100
// Ce code vous est offert par Beaussier en ligne
RetVal = AppelDLL32("kernel32", "GetVolumeInformationA", ...
&lpRootPathName, &lpVolumeNameBuffer, nVolumeNameSize, ...
&lpVolumeSerialNumber, 0, 0, &lpFileSysNameBuf, nFileSystemNameSize)
//Conversion de la valeur hexadecimale
NumSerie = Gauche(NumériqueVersChaine(lpVolumeSerialNumber, "X"), 4)+...
"-" + Droite(NumériqueVersChaine(lpVolumeSerialNumber, "X"), 4)
Info(NumSerie)

A+
Fabrice



"ARAB" <ibr195@yahoo.fr> wrote in message news:420a6d3b$1@news.pcsoft.fr...

Salut tout le monde

j'aimerai recupérer la serie du dique dur sous Windev et je trouvé que
fdisqueinfo

mais elle me retourne "21354652" un autre serie que selui de la commande
DOS VOl "2ER-52GZ6"

qlq peux mme dire ou je peux recupérer le serial ???????


Merci d'avance
Publicado em fevereiro, 10 2005 - 11:03 AM
Essaie ça :

NumériqueVersChaine(Val(fDisqueInfo("C:",fdNumeroDeSerie)),"12X")
Publicado em fevereiro, 10 2005 - 11:11 AM
il doit bien y avoir un douzaine de personnes ayant déja demande comment
avoir le numserie du disque dur sur ce NG... il faudrait voir à faire
quelques recherche beaucoup de question reviennent toutes les 2 semaines.

"Fabrice De Weerd" <f.deweerd@databasemanagement.be> a écrit dans le message
de news:420afe2e$1@news.pcsoft.fr...

Salut,

Ci-dessous, voici le code que j'ai trouvé sur :
http://centrewd.free.fr/…

// Obtenir le numéro de série du disque
lpRootPathName est une chaîne ASCIIZ sur 255
lpVolumeNameBuffer est une chaîne ASCIIZ sur 100
nVolumeNameSize est un entier
lpVolumeSerialNumber est un entier
lpFileSysNameBuf est une chaîne ASCIIZ sur 255
nFileSystemNameSize est un entier
RetVal est un entier
NumSerie est une chaîne
lpRootPathName = "c:\"
nVolumeNameSize = 100
nFileSystemNameSize = 100
// Ce code vous est offert par Beaussier en ligne
RetVal = AppelDLL32("kernel32", "GetVolumeInformationA", ...
&lpRootPathName, &lpVolumeNameBuffer, nVolumeNameSize, ...
&lpVolumeSerialNumber, 0, 0, &lpFileSysNameBuf, nFileSystemNameSize)
//Conversion de la valeur hexadecimale
NumSerie = Gauche(NumériqueVersChaine(lpVolumeSerialNumber, "X"), 4)+...
"-" + Droite(NumériqueVersChaine(lpVolumeSerialNumber, "X"), 4)
Info(NumSerie)

A+
Fabrice



"ARAB" <ibr195@yahoo.fr> wrote in message

news:420a6d3b$1@news.pcsoft.fr...

Salut tout le monde

j'aimerai recupérer la serie du dique dur sous Windev et je trouvé que
fdisqueinfo

mais elle me retourne "21354652" un autre serie que selui de la

commande
DOS VOl "2ER-52GZ6"

qlq peux mme dire ou je peux recupérer le serial ???????


Merci d'avance


Publicado em fevereiro, 11 2005 - 11:37 AM
Bonjour,

Attention, quelle que soit la méthode employée :

- fDiskInfo
- Celle de Fabrice,
- Celle de Hubert,

Le numéro retourné (qui est d'ailleurs le même mais avec une notation
diférente dans les 3 cas) n'est pas le numéro de série du disque, mais le N°
de volume de la partition verifiée.
Hors le N° de volume peut être modifié en toute simplicité.

Au passage si quelqu'un connait une méthode pour lire le N° de série
physique d'un HD , je suis preneur, mais il semble que cela ne soit pas
possible, ce N° ne figurant (sauf erreur de ma part) que sur l'étiquette du
disque.

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com
Publicado em fevereiro, 11 2005 - 8:55 PM
Oui bien Vue Ms Jean-Claude

Moi aussi cé ce que je veux :(

Prsque j'aimerai proteger mon projet
Publicado em fevereiro, 12 2005 - 1:40 PM
J'ai lu quelque part mais je ne sais plus où que l'on peut créer des
requêtes WMI pour interroger les composants hards d'un PC ... à méditer

ARAB wrote:


Salut tout le monde

j'aimerai recupérer la serie du dique dur sous Windev et je trouvé que
fdisqueinfo

mais elle me retourne "21354652" un autre serie que selui de la commande
DOS VOl "2ER-52GZ6"

qlq peux mme dire ou je peux recupérer le serial ???????


Merci d'avance
Publicado em fevereiro, 12 2005 - 10:17 PM
vous ne pouvez pas etre plus précis :(
Publicado em fevereiro, 14 2005 - 1:04 PM
Bonjour
voir 1°
http://www.secretswindows.com/index.php…
et utiliser la function suivante qui se sert de
"MSScriptControl.ScriptControl" Activex de M$



PROCEDURE GetDisqueInfo(pComputerName=NetNomMachine())

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

ProgrammeVbs += "Function InfoDisque(ComputerName)"+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_DiskDrive"+Caract(34)+",,48)"+CRLF
ProgrammeVbs += "For Each objItem in colItems"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.DeviceID & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.PNPDeviceID & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.Model & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.MediaType & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.InterfaceType &
chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.Size & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.TotalCylinders &
chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.TotalHeads & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.TotalSectors & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.TotalTracks & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.TracksPerCylinder &
chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.SectorsPerTrack &
chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.BytesPerSector &
chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.Partitions & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.Status & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.MediaLoaded & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.SCSIBus & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.SCSILogicalUnit &
chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.SCSIPort & chr(9)"+CRLF
ProgrammeVbs += "strResult = strResult & objItem.SCSITargetId & chr(13) &
chr(10)"+CRLF
ProgrammeVbs += "Next"+CRLF
ProgrammeVbs += "InfoDisque = strResult"+CRLF
ProgrammeVbs += "End Function"+CRLF

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("InfoDisque("+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

"SP&B" <spetb_no_spam@tiscali.fr> a écrit dans le message de
news:420c7337$1@news.pcsoft.fr...

Bonjour,

Attention, quelle que soit la méthode employée :

- fDiskInfo
- Celle de Fabrice,
- Celle de Hubert,

Le numéro retourné (qui est d'ailleurs le même mais avec une notation
diférente dans les 3 cas) n'est pas le numéro de série du disque, mais le


de volume de la partition verifiée.
Hors le N° de volume peut être modifié en toute simplicité.

Au passage si quelqu'un connait une méthode pour lire le N° de série
physique d'un HD , je suis preneur, mais il semble que cela ne soit pas
possible, ce N° ne figurant (sauf erreur de ma part) que sur l'étiquette

du
disque.

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com

Publicado em fevereiro, 17 2005 - 1:17 PM
Bonjour,

Je vous remercie de ces informations.

Toutefois, je n'arrive pas a utiliser cette procédure en raison des erreurs
suivantes :

1°/
Cette ligne objWMIService>>RAZ() provoque l'erreur suivante :
Vous avez appelé la méthode Automation 'RAZ'.
Erreur 80020006, Nom inconnu

2°/
Ensuite, si j'enlève la ligne RAZ(), cette partie de code :
WHEN EXCEPTION IN
ResultatVbs =
objWMIService>>Eval("InfoDisque("+Charact(34)+ComputerName+Charact(34)+")")
DO
Error("Erreur d'execution du programme vbs")
RESULT ""
END
provoque une erreur d'exécution (Nota : la valeur de pComputerName est
correcte).

Le passage au débogueur MS Visual studio me donne l'erreur :
SWbemObjectSet : Erreur non spécifiée
sur la ligne : << For Each objItem in colItems >> du code

Function InfoDisque(ComputerName)
strComputer = ComputerName
strResult = ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer &"\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select* from Win32_DiskDrive",,48)
For Each objItem in colItems
strResult = strResult & objItem.DeviceID & chr(9)
strResult = strResult & objItem.PNPDeviceID & chr(9)
strResult = strResult & objItem.Model & chr(9)
strResult = strResult & objItem.MediaType & chr(9)
strResult = strResult & objItem.InterfaceType &chr(9)
strResult = strResult & objItem.Size & chr(9)
strResult = strResult & objItem.TotalCylinders &chr(9)
strResult = strResult & objItem.TotalHeads & chr(9)
strResult = strResult & objItem.TotalSectors & chr(9)
strResult = strResult & objItem.TotalTracks & chr(9)
strResult = strResult & objItem.TracksPerCylinder &chr(9)
strResult = strResult & objItem.SectorsPerTrack &chr(9)
strResult = strResult & objItem.BytesPerSector &chr(9)
strResult = strResult & objItem.Partitions & chr(9)
strResult = strResult & objItem.Status & chr(9)
strResult = strResult & objItem.MediaLoaded & chr(9)
strResult = strResult & objItem.SCSIBus & chr(9)
strResult = strResult & objItem.SCSILogicalUnit &chr(9)
strResult = strResult & objItem.SCSIPort & chr(9)
strResult = strResult & objItem.SCSITargetId & chr(13) &chr(10)
Next
InfoDisque = strResult
End Function

Auriez-vous un début de piste à me donner ?

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com
Publicado em fevereiro, 17 2005 - 3:28 PM
Bonjour,
pourriez vous enregistrer dans le fichier Win32_DiskDrive.vbs le contenu
suivant :

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive",,48)

For Each objItem in colItems

Wscript.Echo"Availability : " & objItem.Availability
Wscript.Echo"BytesPerSector : " & objItem.BytesPerSector
Wscript.Echo"Capabilities : " & objItem.Capabilities
Wscript.Echo"CapabilityDescriptions : " &
objItem.CapabilityDescriptions
Wscript.Echo"Caption : " & objItem.Caption
Wscript.Echo"CompressionMethod : " & objItem.CompressionMethod
Wscript.Echo"ConfigManagerErrorCode : " &
objItem.ConfigManagerErrorCode
Wscript.Echo"ConfigManagerUserConfig : " &
objItem.ConfigManagerUserConfig
Wscript.Echo"CreationClassName : " & objItem.CreationClassName
Wscript.Echo"DefaultBlockSize : " & objItem.DefaultBlockSize
Wscript.Echo"Description : " & objItem.Description
Wscript.Echo"DeviceID : " & objItem.DeviceID
Wscript.Echo"ErrorCleared : " & objItem.ErrorCleared
Wscript.Echo"ErrorDescription : " & objItem.ErrorDescription
Wscript.Echo"ErrorMethodology : " & objItem.ErrorMethodology
Wscript.Echo"Index : " & objItem.Index
Wscript.Echo"InstallDate : " & objItem.InstallDate
Wscript.Echo"InterfaceType : " & objItem.InterfaceType
Wscript.Echo"LastErrorCode : " & objItem.LastErrorCode
Wscript.Echo"Manufacturer : " & objItem.Manufacturer
Wscript.Echo"MaxBlockSize : " & objItem.MaxBlockSize
Wscript.Echo"MaxMediaSize : " & objItem.MaxMediaSize
Wscript.Echo"MediaLoaded : " & objItem.MediaLoaded
Wscript.Echo"MediaType : " & objItem.MediaType
Wscript.Echo"MinBlockSize : " & objItem.MinBlockSize
Wscript.Echo"Model : " & objItem.Model
Wscript.Echo"Name : " & objItem.Name
Wscript.Echo"NeedsCleaning : " & objItem.NeedsCleaning
Wscript.Echo"NumberOfMediaSupported : " &
objItem.NumberOfMediaSupported
Wscript.Echo"Partitions : " & objItem.Partitions
Wscript.Echo"PNPDeviceID : " & objItem.PNPDeviceID
Wscript.Echo"PowerManagementCapabilities : " &
objItem.PowerManagementCapabilities
Wscript.Echo"PowerManagementSupported : " &
objItem.PowerManagementSupported
Wscript.Echo"SCSIBus : " & objItem.SCSIBus
Wscript.Echo"SCSILogicalUnit : " & objItem.SCSILogicalUnit
Wscript.Echo"SCSIPort : " & objItem.SCSIPort
Wscript.Echo"SCSITargetId : " & objItem.SCSITargetId
Wscript.Echo"SectorsPerTrack : " & objItem.SectorsPerTrack
Wscript.Echo"Size : " & objItem.Size
Wscript.Echo"Status : " & objItem.Status
Wscript.Echo"StatusInfo : " & objItem.StatusInfo
Wscript.Echo"SystemCreationClassName : " &
objItem.SystemCreationClassName
Wscript.Echo"SystemName : " & objItem.SystemName
Wscript.Echo"TotalCylinders : " & objItem.TotalCylinders
Wscript.Echo"TotalHeads : " & objItem.TotalHeads
Wscript.Echo"TotalSectors : " & objItem.TotalSectors
Wscript.Echo"TotalTracks : " & objItem.TotalTracks
Wscript.Echo"TracksPerCylinder : " & objItem.TracksPerCylinder

Next


Puis avec Démarrer Exécuter CMD, allez dans le répertoire ou vous l'avez
enregistré puis lancez le script "Win32_DiskDrive"
et donnez moi le résultat des courses.......




"SP&B" <spetb_no_spam@tiscali.fr> a écrit dans le message de
news:421473c8$1@news.pcsoft.fr...

Bonjour,

Je vous remercie de ces informations.

Toutefois, je n'arrive pas a utiliser cette procédure en raison des

erreurs
suivantes :

1°/
Cette ligne objWMIService>>RAZ() provoque l'erreur suivante :
Vous avez appelé la méthode Automation 'RAZ'.
Erreur 80020006, Nom inconnu

2°/
Ensuite, si j'enlève la ligne RAZ(), cette partie de code :
WHEN EXCEPTION IN
ResultatVbs =

objWMIService>>Eval("InfoDisque("+Charact(34)+ComputerName+Charact(34)+")")
DO
Error("Erreur d'execution du programme vbs")
RESULT ""
END
provoque une erreur d'exécution (Nota : la valeur de pComputerName est
correcte).

Le passage au débogueur MS Visual studio me donne l'erreur :
SWbemObjectSet : Erreur non spécifiée
sur la ligne : << For Each objItem in colItems >> du code

Function InfoDisque(ComputerName)
strComputer = ComputerName
strResult = ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer &"\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select* from Win32_DiskDrive",,48)
For Each objItem in colItems
strResult = strResult & objItem.DeviceID & chr(9)
strResult = strResult & objItem.PNPDeviceID & chr(9)
strResult = strResult & objItem.Model & chr(9)
strResult = strResult & objItem.MediaType & chr(9)
strResult = strResult & objItem.InterfaceType &chr(9)
strResult = strResult & objItem.Size & chr(9)
strResult = strResult & objItem.TotalCylinders &chr(9)
strResult = strResult & objItem.TotalHeads & chr(9)
strResult = strResult & objItem.TotalSectors & chr(9)
strResult = strResult & objItem.TotalTracks & chr(9)
strResult = strResult & objItem.TracksPerCylinder &chr(9)
strResult = strResult & objItem.SectorsPerTrack &chr(9)
strResult = strResult & objItem.BytesPerSector &chr(9)
strResult = strResult & objItem.Partitions & chr(9)
strResult = strResult & objItem.Status & chr(9)
strResult = strResult & objItem.MediaLoaded & chr(9)
strResult = strResult & objItem.SCSIBus & chr(9)
strResult = strResult & objItem.SCSILogicalUnit &chr(9)
strResult = strResult & objItem.SCSIPort & chr(9)
strResult = strResult & objItem.SCSITargetId & chr(13) &chr(10)
Next
InfoDisque = strResult
End Function

Auriez-vous un début de piste à me donner ?

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com

Publicado em fevereiro, 17 2005 - 8:39 PM
> pourriez vous enregistrer dans le fichier Win32_DiskDrive.vbs le contenu

Puis avec Démarrer Exécuter CMD, allez dans le répertoire ou vous l'avez
enregistré puis lancez le script "Win32_DiskDrive"
et donnez moi le résultat des courses.......


Bonsoir,

Cela fonctionne parfaitement.

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com
Publicado em fevereiro, 18 2005 - 3:30 PM
Bonjour, SP&B
toutes tes commandes WMI fonctionnent avec WinDev9 depuis la version 90025k.
Il n'est aucunement nécessaire d'utiliser VBS

j'ai ecrit un petit projet disponible ici :
http://www.wdforge.org/modules/news/article.php…

Aujourd'hui j'en suis à plus de 400 requêtes différentes.

[DrCharly93] www.wdforge.org

SP&B a écrit :
Bonjour,

Je vous remercie de ces informations.

Toutefois, je n'arrive pas a utiliser cette procédure en raison des erreurs
suivantes :

1°/
Cette ligne objWMIService>>RAZ() provoque l'erreur suivante :
Vous avez appelé la méthode Automation 'RAZ'.
Erreur 80020006, Nom inconnu

2°/
Ensuite, si j'enlève la ligne RAZ(), cette partie de code :
WHEN EXCEPTION IN
ResultatVbs =
objWMIService>>Eval("InfoDisque("+Charact(34)+ComputerName+Charact(34)+")")
DO
Error("Erreur d'execution du programme vbs")
RESULT ""
END
provoque une erreur d'exécution (Nota : la valeur de pComputerName est
correcte).

Le passage au débogueur MS Visual studio me donne l'erreur :
SWbemObjectSet : Erreur non spécifiée
sur la ligne : << For Each objItem in colItems >> du code

Function InfoDisque(ComputerName)
strComputer = ComputerName
strResult = ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer &"\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select* from Win32_DiskDrive",,48)
For Each objItem in colItems
strResult = strResult & objItem.DeviceID & chr(9)
strResult = strResult & objItem.PNPDeviceID & chr(9)
strResult = strResult & objItem.Model & chr(9)
strResult = strResult & objItem.MediaType & chr(9)
strResult = strResult & objItem.InterfaceType &chr(9)
strResult = strResult & objItem.Size & chr(9)
strResult = strResult & objItem.TotalCylinders &chr(9)
strResult = strResult & objItem.TotalHeads & chr(9)
strResult = strResult & objItem.TotalSectors & chr(9)
strResult = strResult & objItem.TotalTracks & chr(9)
strResult = strResult & objItem.TracksPerCylinder &chr(9)
strResult = strResult & objItem.SectorsPerTrack &chr(9)
strResult = strResult & objItem.BytesPerSector &chr(9)
strResult = strResult & objItem.Partitions & chr(9)
strResult = strResult & objItem.Status & chr(9)
strResult = strResult & objItem.MediaLoaded & chr(9)
strResult = strResult & objItem.SCSIBus & chr(9)
strResult = strResult & objItem.SCSILogicalUnit &chr(9)
strResult = strResult & objItem.SCSIPort & chr(9)
strResult = strResult & objItem.SCSITargetId & chr(13) &chr(10)
Next
InfoDisque = strResult
End Function

Auriez-vous un début de piste à me donner ?

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com

Publicado em fevereiro, 18 2005 - 4:20 PM
Et si on n'a pas la 9 mais que la 8 cette méthode fonctionne nikel sur un
reseau de plusieur 100 de pc/serveur
et je manage tout avec !
"[DrCharly93]" <drcharly@wdforge.org> a écrit dans le message de
news:4215e44f@news.pcsoft.fr...

Bonjour, SP&B
toutes tes commandes WMI fonctionnent avec WinDev9 depuis la version

90025k.
Il n'est aucunement nécessaire d'utiliser VBS

j'ai ecrit un petit projet disponible ici :
http://www.wdforge.org/modules/news/article.php…

Aujourd'hui j'en suis à plus de 400 requêtes différentes.

[DrCharly93] www.wdforge.org

SP&B a écrit :
Bonjour,

Je vous remercie de ces informations.

Toutefois, je n'arrive pas a utiliser cette procédure en raison des

erreurs
suivantes :

1°/
Cette ligne objWMIService>>RAZ() provoque l'erreur suivante :
Vous avez appelé la méthode Automation 'RAZ'.
Erreur 80020006, Nom inconnu

2°/
Ensuite, si j'enlève la ligne RAZ(), cette partie de code :
WHEN EXCEPTION IN
ResultatVbs =

objWMIService>>Eval("InfoDisque("+Charact(34)+ComputerName+Charact(34)+")")
DO
Error("Erreur d'execution du programme vbs")
RESULT ""
END
provoque une erreur d'exécution (Nota : la valeur de pComputerName est
correcte).

Le passage au débogueur MS Visual studio me donne l'erreur :
SWbemObjectSet : Erreur non spécifiée
sur la ligne : << For Each objItem in colItems >> du code

Function InfoDisque(ComputerName)
strComputer = ComputerName
strResult = ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer

&"\root\cimv2")
> > Set colItems = objWMIService.ExecQuery("Select* from
Win32_DiskDrive",,48)
For Each objItem in colItems
strResult = strResult & objItem.DeviceID & chr(9)
strResult = strResult & objItem.PNPDeviceID & chr(9)
strResult = strResult & objItem.Model & chr(9)
strResult = strResult & objItem.MediaType & chr(9)
strResult = strResult & objItem.InterfaceType &chr(9)
strResult = strResult & objItem.Size & chr(9)
strResult = strResult & objItem.TotalCylinders &chr(9)
strResult = strResult & objItem.TotalHeads & chr(9)
strResult = strResult & objItem.TotalSectors & chr(9)
strResult = strResult & objItem.TotalTracks & chr(9)
strResult = strResult & objItem.TracksPerCylinder &chr(9)
strResult = strResult & objItem.SectorsPerTrack &chr(9)
strResult = strResult & objItem.BytesPerSector &chr(9)
strResult = strResult & objItem.Partitions & chr(9)
strResult = strResult & objItem.Status & chr(9)
strResult = strResult & objItem.MediaLoaded & chr(9)
strResult = strResult & objItem.SCSIBus & chr(9)
strResult = strResult & objItem.SCSILogicalUnit &chr(9)
strResult = strResult & objItem.SCSIPort & chr(9)
strResult = strResult & objItem.SCSITargetId & chr(13) &chr(10)
Next
InfoDisque = strResult
End Function

Auriez-vous un début de piste à me donner ?

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com

Publicado em fevereiro, 18 2005 - 6:28 PM
J'ai spécifié la version 90025k je suis désolé
Avec la version 8 j'ai été amené à développer une dll en dotnet pour que
cela fonctionne.

il faut savoir que le WMI est très vaste et que même avec mes 400
requêtes je suis loin de tout avoir exploré.
Je suis d'ailleurs en ce moment sur la manipulation à distance des bases
de registres.

[DrCharly93] www.wdforge.org

Philippe Pasquali a écrit :
Et si on n'a pas la 9 mais que la 8 cette méthode fonctionne nikel sur un
reseau de plusieur 100 de pc/serveur
et je manage tout avec !
"[DrCharly93]" <drcharly@wdforge.org> a écrit dans le message de
news:4215e44f@news.pcsoft.fr...

Bonjour, SP&B
toutes tes commandes WMI fonctionnent avec WinDev9 depuis la version

90025k.

Il n'est aucunement nécessaire d'utiliser VBS

j'ai ecrit un petit projet disponible ici :
http://www.wdforge.org/modules/news/article.php…

Aujourd'hui j'en suis à plus de 400 requêtes différentes.

[DrCharly93] www.wdforge.org

SP&B a écrit :

Bonjour,

Je vous remercie de ces informations.

Toutefois, je n'arrive pas a utiliser cette procédure en raison des

erreurs

suivantes :

1°/
Cette ligne objWMIService>>RAZ() provoque l'erreur suivante :
Vous avez appelé la méthode Automation 'RAZ'.
Erreur 80020006, Nom inconnu

2°/
Ensuite, si j'enlève la ligne RAZ(), cette partie de code :
WHEN EXCEPTION IN
ResultatVbs =


objWMIService>>Eval("InfoDisque("+Charact(34)+ComputerName+Charact(34)+")")

DO
Error("Erreur d'execution du programme vbs")
RESULT ""
END
provoque une erreur d'exécution (Nota : la valeur de pComputerName est
correcte).

Le passage au débogueur MS Visual studio me donne l'erreur :
SWbemObjectSet : Erreur non spécifiée
sur la ligne : << For Each objItem in colItems >> du code

Function InfoDisque(ComputerName)
strComputer = ComputerName
strResult = ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer

&"\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select* from

Win32_DiskDrive",,48)

For Each objItem in colItems
strResult = strResult & objItem.DeviceID & chr(9)
strResult = strResult & objItem.PNPDeviceID & chr(9)
strResult = strResult & objItem.Model & chr(9)
strResult = strResult & objItem.MediaType & chr(9)
strResult = strResult & objItem.InterfaceType &chr(9)
strResult = strResult & objItem.Size & chr(9)
strResult = strResult & objItem.TotalCylinders &chr(9)
strResult = strResult & objItem.TotalHeads & chr(9)
strResult = strResult & objItem.TotalSectors & chr(9)
strResult = strResult & objItem.TotalTracks & chr(9)
strResult = strResult & objItem.TracksPerCylinder &chr(9)
strResult = strResult & objItem.SectorsPerTrack &chr(9)
strResult = strResult & objItem.BytesPerSector &chr(9)
strResult = strResult & objItem.Partitions & chr(9)
strResult = strResult & objItem.Status & chr(9)
strResult = strResult & objItem.MediaLoaded & chr(9)
strResult = strResult & objItem.SCSIBus & chr(9)
strResult = strResult & objItem.SCSILogicalUnit &chr(9)
strResult = strResult & objItem.SCSIPort & chr(9)
strResult = strResult & objItem.SCSITargetId & chr(13) &chr(10)
Next
InfoDisque = strResult
End Function

Auriez-vous un début de piste à me donner ?

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com




Publicado em fevereiro, 21 2005 - 7:11 PM
Bonjour à tous

Je ne vois pas dans tout ça, la fonction qui retourne le no de disque dur,
pas le no de volume qui est copié par tous les programmes d'image disque
genre Norton Ghost

François DUBOIS

"Philippe Pasquali" <philippe.pasquali@bopack.com> a écrit dans le message
de news:42149277@news.pcsoft.fr...

Bonjour,
pourriez vous enregistrer dans le fichier Win32_DiskDrive.vbs le contenu
suivant :

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from

Win32_DiskDrive",,48)

For Each objItem in colItems

Wscript.Echo"Availability : " & objItem.Availability
Wscript.Echo"BytesPerSector : " & objItem.BytesPerSector
Wscript.Echo"Capabilities : " & objItem.Capabilities
Wscript.Echo"CapabilityDescriptions : " &
objItem.CapabilityDescriptions
Wscript.Echo"Caption : " & objItem.Caption
Wscript.Echo"CompressionMethod : " & objItem.CompressionMethod
Wscript.Echo"ConfigManagerErrorCode : " &
objItem.ConfigManagerErrorCode
Wscript.Echo"ConfigManagerUserConfig : " &
objItem.ConfigManagerUserConfig
Wscript.Echo"CreationClassName : " & objItem.CreationClassName
Wscript.Echo"DefaultBlockSize : " & objItem.DefaultBlockSize
Wscript.Echo"Description : " & objItem.Description
Wscript.Echo"DeviceID : " & objItem.DeviceID
Wscript.Echo"ErrorCleared : " & objItem.ErrorCleared
Wscript.Echo"ErrorDescription : " & objItem.ErrorDescription
Wscript.Echo"ErrorMethodology : " & objItem.ErrorMethodology
Wscript.Echo"Index : " & objItem.Index
Wscript.Echo"InstallDate : " & objItem.InstallDate
Wscript.Echo"InterfaceType : " & objItem.InterfaceType
Wscript.Echo"LastErrorCode : " & objItem.LastErrorCode
Wscript.Echo"Manufacturer : " & objItem.Manufacturer
Wscript.Echo"MaxBlockSize : " & objItem.MaxBlockSize
Wscript.Echo"MaxMediaSize : " & objItem.MaxMediaSize
Wscript.Echo"MediaLoaded : " & objItem.MediaLoaded
Wscript.Echo"MediaType : " & objItem.MediaType
Wscript.Echo"MinBlockSize : " & objItem.MinBlockSize
Wscript.Echo"Model : " & objItem.Model
Wscript.Echo"Name : " & objItem.Name
Wscript.Echo"NeedsCleaning : " & objItem.NeedsCleaning
Wscript.Echo"NumberOfMediaSupported : " &
objItem.NumberOfMediaSupported
Wscript.Echo"Partitions : " & objItem.Partitions
Wscript.Echo"PNPDeviceID : " & objItem.PNPDeviceID
Wscript.Echo"PowerManagementCapabilities : " &
objItem.PowerManagementCapabilities
Wscript.Echo"PowerManagementSupported : " &
objItem.PowerManagementSupported
Wscript.Echo"SCSIBus : " & objItem.SCSIBus
Wscript.Echo"SCSILogicalUnit : " & objItem.SCSILogicalUnit
Wscript.Echo"SCSIPort : " & objItem.SCSIPort
Wscript.Echo"SCSITargetId : " & objItem.SCSITargetId
Wscript.Echo"SectorsPerTrack : " & objItem.SectorsPerTrack
Wscript.Echo"Size : " & objItem.Size
Wscript.Echo"Status : " & objItem.Status
Wscript.Echo"StatusInfo : " & objItem.StatusInfo
Wscript.Echo"SystemCreationClassName : " &
objItem.SystemCreationClassName
Wscript.Echo"SystemName : " & objItem.SystemName
Wscript.Echo"TotalCylinders : " & objItem.TotalCylinders
Wscript.Echo"TotalHeads : " & objItem.TotalHeads
Wscript.Echo"TotalSectors : " & objItem.TotalSectors
Wscript.Echo"TotalTracks : " & objItem.TotalTracks
Wscript.Echo"TracksPerCylinder : " & objItem.TracksPerCylinder

Next


Puis avec Démarrer Exécuter CMD, allez dans le répertoire ou vous l'avez
enregistré puis lancez le script "Win32_DiskDrive"
et donnez moi le résultat des courses.......




"SP&B" <spetb_no_spam@tiscali.fr> a écrit dans le message de
news:421473c8$1@news.pcsoft.fr...

Bonjour,

Je vous remercie de ces informations.

Toutefois, je n'arrive pas a utiliser cette procédure en raison des
erreurs

suivantes :

1°/
Cette ligne objWMIService>>RAZ() provoque l'erreur suivante :
Vous avez appelé la méthode Automation 'RAZ'.
Erreur 80020006, Nom inconnu

2°/
Ensuite, si j'enlève la ligne RAZ(), cette partie de code :
WHEN EXCEPTION IN
ResultatVbs =


objWMIService>>Eval("InfoDisque("+Charact(34)+ComputerName+Charact(34)+")")
DO
Error("Erreur d'execution du programme vbs")
RESULT ""
END
provoque une erreur d'exécution (Nota : la valeur de pComputerName est
correcte).

Le passage au débogueur MS Visual studio me donne l'erreur :
SWbemObjectSet : Erreur non spécifiée
sur la ligne : << For Each objItem in colItems >> du code

Function InfoDisque(ComputerName)
strComputer = ComputerName
strResult = ""
Set objWMIService = GetObject("winmgmts:\\" & strComputer

&"\root\cimv2")
> > Set colItems = objWMIService.ExecQuery("Select* from
Win32_DiskDrive",,48)
For Each objItem in colItems
strResult = strResult & objItem.DeviceID & chr(9)
strResult = strResult & objItem.PNPDeviceID & chr(9)
strResult = strResult & objItem.Model & chr(9)
strResult = strResult & objItem.MediaType & chr(9)
strResult = strResult & objItem.InterfaceType &chr(9)
strResult = strResult & objItem.Size & chr(9)
strResult = strResult & objItem.TotalCylinders &chr(9)
strResult = strResult & objItem.TotalHeads & chr(9)
strResult = strResult & objItem.TotalSectors & chr(9)
strResult = strResult & objItem.TotalTracks & chr(9)
strResult = strResult & objItem.TracksPerCylinder &chr(9)
strResult = strResult & objItem.SectorsPerTrack &chr(9)
strResult = strResult & objItem.BytesPerSector &chr(9)
strResult = strResult & objItem.Partitions & chr(9)
strResult = strResult & objItem.Status & chr(9)
strResult = strResult & objItem.MediaLoaded & chr(9)
strResult = strResult & objItem.SCSIBus & chr(9)
strResult = strResult & objItem.SCSILogicalUnit &chr(9)
strResult = strResult & objItem.SCSIPort & chr(9)
strResult = strResult & objItem.SCSITargetId & chr(13) &chr(10)
Next
InfoDisque = strResult
End Function

Auriez-vous un début de piste à me donner ?

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com



Publicado em abril, 14 2005 - 8:29 PM
Ca ca fonctionne quelque soit le disque réseau ou pas

GetDiskSerialNumber() // disque local
"c:"
GetDiskSerialNumber(\\ServeurName\C$) // disque c du serveur nommé
ServeurName

FUNCTION GetDiskSerialNumber(DriveName="c:")

FSO est un objet Automation "Scripting.FileSystemObject"
Drive est un objet Automation dynamique
SerialNumber est un Variant

Drive = FSO>>GetDrive(DriveName)
IF Drive>>IsReady THEN
SerialNumber = Drive>>SerialNumber
RENVOYER NumériqueVersChaine(Val(SerialNumber),"X")
ELSE
RENVOYER ""
END

"SP&B" <spetb_no_spam@tiscali.fr> a écrit dans le message de
news:420c7337$1@news.pcsoft.fr...

Bonjour,

Attention, quelle que soit la méthode employée :

- fDiskInfo
- Celle de Fabrice,
- Celle de Hubert,

Le numéro retourné (qui est d'ailleurs le même mais avec une notation
diférente dans les 3 cas) n'est pas le numéro de série du disque, mais le


de volume de la partition verifiée.
Hors le N° de volume peut être modifié en toute simplicité.

Au passage si quelqu'un connait une méthode pour lire le N° de série
physique d'un HD , je suis preneur, mais il semble que cela ne soit pas
possible, ce N° ne figurant (sauf erreur de ma part) que sur l'étiquette

du
disque.

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com