Créer un prog qui créer un .txt avec info complet des PC (2) - VB/VBA/VBS - Programmation
Marsh Posté le 29-05-2007 à 14:39:33
lol je me répond encore une fois tout seul ...
bon ben en fait il suffit de reprendre la meme forme que pour l'adresse IP mais il fallai modifier la ligne :
Citation : |
par
Citation : Set IPConfigSet = objWMIService.ExecQuery _ |
...
Marsh Posté le 29-05-2007 à 14:43:33
maintenant mon programme est presque fini, il manque plus que une chose qui va surrement etre la plus embetante a faire (enfin je ne sais pas comment faire ...)
enfait j'aimerai que a chaque fois que je lance mon programme .vbs, il créer un nouveau fichier .txt pour y metre les informations ...
et de préférance j'aimerai que il les créer dans un ordre numérique ...
enfait j'aimerai que le 1er s'appelle par exemple test1.txt, le 2eme test2.txt, ... le n ème testn.txt et ainsi de suite ...
en sachant que le programme sera lancé d'une clef usb et sera lancé a chaque fois sur un autre ordinateur .
merci d'avance
Marsh Posté le 29-05-2007 à 22:10:15
est ce que l'ordre numérique est obligatoire ? moi perso j'aurais mis un nom de fichier accolé avec un chiffre totalement aléatoire style nomfichier_XXXXXX.txt, ou alors un nom de fichier avec la date au format YYYYMMDD_HHMISS_nomfichier.txt
après pour s'y retrouver, suffit de regarder la date de création du fichier, tu peux également mettre cette date dans ton rapport texte
si tu veux absolument un ordre numérique, il faudra stocker quelque part la dernière valeur et la lire, que ce soit dans un fichier texte ou dans le nom des fichiers précédent : c'est un peu lourd pour pas grand chose
Marsh Posté le 29-05-2007 à 23:45:39
ouai en fait je croi que je vais faire comme tu indique avec la date...
le tout est que jarrive les traiter dans le meme ordre que quand je les aurai créer.
heu il y a des variable toutes pretes pour la date et heure, ou il faut les chercher soit meme?
(au pire sa je chercherai vite demain)
sinon je me suis rendu compte a 4 h que il me manque dans mon log, le nom de login de la session en cours, et la liste des imprimantes installé sur le pc (usb et surtout ethernet) ...
Marsh Posté le 30-05-2007 à 11:34:50
bon alors cette fois il me reste le nom des fichier a regardé comment faire pour sortir la date et heure a la fin du nom de fichier.
et je suis entrain de voir s'il serai pas possible de suprimer des lignes commancant toujours par Accessoires ou Démarrage qui sont listé dans les logiciel et qui font plus ch*** que autre chose ^^.
si quelqu'un aurai une idée ...
j'ai voulu essayé de filtré, je croi me rapeller que c'est faisable de suprimer les ligne commancant par tele ou tel mot, mais je ne retrouve plus comment faire...
edit : jarrive pas non plus a trouver pour la date et heures enfait ... je sais pas si c'est moi aujourd'hui ou ce qui se passe mais je trouve plus rien ...
ou si je trouve des truc de VBA mais sa marche pas sans Visual Basic ...
Marsh Posté le 30-05-2007 à 13:55:44
alors là comme dit je suis vraiment coincé ...
pour avoir la date et heure j'utilise sa :
Toto = Now
sauf que ensuite j'aimerai faire sa :
monfichier = Toto(=la variable)_test.txt
or si je met juste monfichier = Toto, il y met bien la date et heure, mais sans l'exention
et lorsque je met monfichier = Toto.txt, sa bug
il faut que je trouve comment dire que toto c'est une variable et le reste du texte...
j'ai testé avec des ", des ', un & devant etc mais rien ne marche ...
Marsh Posté le 30-05-2007 à 14:20:17
Code :
|
Marsh Posté le 30-05-2007 à 14:21:07
faudrait apprendre à ne pas mélanger les types de variables et à quoter les chaînes de caractères....
Marsh Posté le 30-05-2007 à 15:31:36
merci beaucoup ^^
ouai j'ai compris le truc maintenant ...
sa risquai pas de fonctionner en mélangeant les type de variable ...
par hasard il y aura moyen de metre des séparateur entre l'anné et le mois et ainsi de suite ? (c'est gadget mais plus lisible ...)
encore merci
Marsh Posté le 30-05-2007 à 15:59:20
aha c'est facile de critiquer l'éducation quand on ne prend pas la peine de chercher soi-même
Marsh Posté le 29-05-2007 à 14:22:35
Bonjour
en raison du changement de language, je créer un nouveau topik pour la suite de mon programme ...
pour le 1er topik voir ici
On Error Resume Next
Set fso = CreateObject ("Scripting.FileSystemObject" )
Set f = fso.CreateTextFile("test.txt", True)
f.WriteLine ("test" )
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
arrComputers = Array("localhost" )
For Each strComputer In arrComputers
f.WriteLine "Computer: " & strComputer
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2" )
Set IPConfigSet = objWMIService.ExecQuery _
("Select IPAddress from Win32_NetworkAdapterConfiguration " )
For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For i=LBound(IPConfig.IPAddress) _
to UBound(IPConfig.IPAddress)
f.WriteLine "IP :" & IPConfig.IPAddress(i)
Next
End If
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
f.WriteLine "SystemName: " & objItem.Name
f.WriteLine "Manufacturer: " & objItem.Manufacturer
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
f.WriteLine "IdentifyingNumber: " & objItem.IdentifyingNumber
f.WriteLine "Name: " & objItem.Name
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
f.WriteLine "Caption: " & objItem.Caption
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
f.WriteLine "Name: " & objItem.Name
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMemory", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
f.WriteLine "Capacity ddr: " & objItem.Capacity
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
f.WriteLine "Size DD: " & objItem.Size
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ProgramGroup", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
f.WriteLine
f.WriteLine "Nom Program: " & objItem.GroupName
Next
Next
f.Close
Donc voici mon code, et mon probleme du moment est d'ajouter l'adresse dns , la passerelle, et l'adresse WINS ...
j'ai remarqué avant que elles sont visible dans le Win32_NetworkAdapterConfiguration, comme pour l'adresse IP, mais comme pour l'adresse ip, ces commandes sortent plusieur adresse en boucle alors qu'il en faudrai que une.
f.WriteLine "DefaultIPGateway: " & IPConfig.strDefaultIPGateway
f.WriteLine "DNSServerSearchOrder: " & IPConfig.strDNSServerSearchOrder
f.WriteLine "IPAddress: " & IPConfig.strIPAddress
f.WriteLine "IPSubnet: " & IPConfig.strIPSubnet
f.WriteLine "WINSPrimaryServer: " & IPConfig.WINSPrimaryServer
pour l'adresse Ip j'avai le meme probleme mais j'ai trouvé sur le net un bout de code qui fait sortir une seul fois l'adresse:
If Not IsNull(IPConfig.IPAddress) Then
For i=LBound(IPConfig.IPAddress) _
to UBound(IPConfig.IPAddress)
f.WriteLine "IP :" & IPConfig.IPAddress(i)
Next
End If
j'ai voulu faire pareil avec les commande donnée juste en haut mais sa ne fonctionne pas ...
merci d'avance pour votre aide.
---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm