begin process at 2012 05 29 15:34:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Shell

 > 

un petit coup de main serait bienvenue


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

un petit coup de main serait bienvenue

lundi 13 juillet 2009 à 22:00:03 | un petit coup de main serait bienvenue

maximeh2

Salut, et merci si vous voulez bien m'aider.

En fait c'est très simple, je cherche a faire un petit soft ou script qui me permet de contrôler le répertoire programme files de windows, simplement en y comptant le nombre de répertoire, et qu'en fonction d'un chiffre, si il le dépasse, il crée alors un fichier texte contenant l'ip de la machine et sa mac adresse dans un répertoire.

Étant vraiment pas bon en dev, je me permet de vous demander umblement votre aide...

Merci d'avance.

A bientôt

lundi 20 juillet 2009 à 09:55:37 | Re : un petit coup de main serait bienvenue

rt15

Membre Club Administrateur CodeS-SourceS

Salut,

Un petit script vbscript peut faire le boulot.
Mettre ce code dans un fichier d'extension .vbs.

Code VBScript :
Const MAX_FOLDER_COUNT = 90

Const LOG_FILE = "c:\ProgramFiles.log"

Dim objShell ' Shell
Dim objProcessEnv ' Récupération de l'environnement processeur
Dim strProgramFiles ' Path vers program files
Dim objFso ' FileSystemObject
Dim objProgramFiles ' Le folder program files

Dim objFile ' Fichier ou écrire les adresses MAC et IP
Const ForWriting = 2

Dim objWMIService ' WMI
Dim objNetworkConfigs ' Ensemble des configs réseaux
Dim objNetworkConfig ' Une config réseau

' Récupération du shell
Set objShell = WScript.CreateObject("WScript.Shell")

' Récupération de l'environnement Process, dont la variable ProgramFiles fait parti
Set objProcessEnv = objShell.Environment("Process")

' Récupération de la variable
strProgramFiles = objProcessEnv("ProgramFiles")

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objProgramFiles = objFso.GetFolder(strProgramFiles)

' Si il n'y a pas trop de sous dossiers, on sort
If objProgramFiles.SubFolders.Count <= MAX_FOLDER_COUNT Then WScript.Quit

' Ouverture du fichier, pour écriture, en le re-créant
Set objFile = objFso.OpenTextFile(LOG_FILE, ForWriting, True)

' Récupération du service WMI
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

' Exécution d'une requête de recherche des configurations réseaux
Set objNetworkConfigs = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")

' Pour toutes les configurations réseaux
For Each objNetworkConfig In objNetworkConfigs
If objNetworkConfig.IPEnabled Then
objFile.WriteLine objNetworkConfig.MACAddress
objFile.WriteLine objNetworkConfig.IPAddress(0) ' On ne récupère que la première IP
Exit For ' On regarde que la première config
End If
Next

lundi 20 juillet 2009 à 11:23:24 | Re : un petit coup de main serait bienvenue

maximeh2

Merci ca fonctionne super bien...

par contre je pense que maintenant et j'espère que ça ne va pas beaucoup changer trop le code, est il possible que le fichier log soit nommer du genre le "nom de la machine".log

merci encore

lundi 20 juillet 2009 à 11:38:54 | Re : un petit coup de main serait bienvenue

rt15

Membre Club Administrateur CodeS-SourceS

Arf, j'avais oublié de fermer le fichier...

Pour le nom du PC, une méthode simple est de passer par la variable d'environnement COMPUTERNAME.

Code VBScript :
Const MAX_FOLDER_COUNT = 90

Const LOG_FOLDER = "c:\"

Dim objShell ' Shell
Dim objProcessEnv ' Récupération de l'environnement processeur
Dim strProgramFiles ' Path vers program files
Dim objFso ' FileSystemObject
Dim objProgramFiles ' Le folder program files

Dim objFile ' Fichier ou écrire les adresses MAC et IP
Const ForWriting = 2

Dim objWMIService ' WMI
Dim objNetworkConfigs ' Ensemble des configs réseaux
Dim objNetworkConfig ' Une config réseau

' Récupération du shell
Set objShell = WScript.CreateObject("WScript.Shell")

' Récupération de l'environnement Process, dont la variable ProgramFiles fait parti
Set objProcessEnv = objShell.Environment("Process")

' Récupération de la variable
strProgramFiles = objProcessEnv("ProgramFiles")

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objProgramFiles = objFso.GetFolder(strProgramFiles)

' Si il n'y a pas trop de sous dossiers, on sort
If objProgramFiles.SubFolders.Count <= MAX_FOLDER_COUNT Then WScript.Quit

' Ouverture du fichier, pour écriture, en le re-créant
Set objFile = objFso.OpenTextFile(LOG_FOLDER & objProcessEnv("COMPUTERNAME") & ".log", ForWriting, True)

' Récupération du service WMI
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

' Exécution d'une requête de recherche des configurations réseaux
Set objNetworkConfigs = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")

' Pour toutes les configurations réseaux
For Each objNetworkConfig In objNetworkConfigs
If objNetworkConfig.IPEnabled Then
objFile.WriteLine objNetworkConfig.MACAddress
objFile.WriteLine objNetworkConfig.IPAddress(0) ' On ne récupère que la première IP
Exit For ' On regarde que la première config
End If
Next
objFile.Close

mardi 21 juillet 2009 à 10:04:36 | Re : un petit coup de main serait bienvenue

maximeh2

Un très grand merci pour ton aide, ça fonctionne nickel.

A bientôt peut être



Cette discussion est classée dans : répertoire, permet, bienvenue, main, coup


Répondre à ce message

Sujets en rapport avec ce message

Donner un coup de main pour un projet sympa :) [ par patfac1 ] Salut tous :) J'ai récemment découvert un site où un developper est en train de contruire une interface graphique dans le style de celle looking glass DeleteFile un ptit coup d'main [ par krokro6 ] bonjour voila mon probléme j'essaye de creer un petit programme tout simple et j'ai juste un ptit probléme avec deletefile sous visual c++ 6.0 voila l un petit coup de main svp :) [ par adiablo ] bonjour voila je suis actuellement etudiant donc encore debutant svp je voudrais que vous me donniez differentes reponse a cet exercice ; merci :Régle Un petit coup de main, svp [ par developpeurvb ] Bonjour,Je développe un client ftp et sftp, en fait je recherche une bonne ame qui aurait un serveur sftp et qui pourrait me mettre un compte a dispo un coup de main svt ^^ [ par monsi7 ] Bonjour je dois realiser un programme qui dans un tableau a 2 dimensions (matrice) recherche le max de chaque ligne puis en prend le minimum(de tous l "Interfacer" le C et le VHDL [ par GUERRIER_ABSOLU ] Bonjour,Je voudrais savoir s'il est possible d'interfacer le C et le VHDL. Je veux dire pouvoir faire communiquer un programme (non synthétisable) en Répertoire d'installation [ par nemmezis ] Salut,Bon j'ai besoin de récupérer le répertoire d'installation d'un exécutable à l'aide de son HINSTANCE. Le problème, c'est que cette merde de fonct Répertoire d'installation [ par nemmezis ] Salut,Bon j'ai besoin de récupérer le répertoire d'installation d'un exécutable à l'aide de son HINSTANCE. Le problème, c'est que cette merde de fonct problème de création de répertoire (borland c++ builder 6) [ par ludo96x ] Bonsoir,Voilà j'ai un petit problème en créant un répertoire par rapport à un text saisi dans un Edit (avec borland c++ builder).Voici le code (synthé récupération du répertoire de l'executable [ par logarfr ] Bonjour à tous!Je cherche un moyen pour récupérer le répertoire d'un exécutable que je lance!Je ne veux non pas le répertoire courant mais bien le rép


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales