Exécuter une commande de ligne [Résolu]

Signaler
Messages postés
47
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
14 mars 2020
-
Whismeril
Messages postés
14426
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 avril 2020
-
Bonjour,

j'ai une interface qui affiche la date time .

je veux ajouter un code dans un bouton"Synchroniser" qui a comme rôle l'exécution de la ligne suivante:

net time \\AD /set


cette ligne je l'exécute sous cmd sur le poste en question manuellement pour pouvoir synchroniser la datetime du poste avec le serveur AD.


3 réponses

Messages postés
14426
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 avril 2020
365
Bonjour
Regarde du côté de la classe Process
Messages postés
47
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
14 mars 2020

j'ai trouvé la solution

Process proc = new Process();

proc.StartInfo.FileName = "net";
proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
proc.StartInfo.Arguments ="time \\AD /set";
proc.Start();


mon problème maintenant c'est de désactiver un textbox aucours de l'exécution de cette tache
et il sera active apres la fin de l'exécution
On oublie ce qu'on a appris, on n'oublie jamais ce qu'on a deviné.
Citation de Anne Barratin ; De toutes les paroisses (1913)
Messages postés
14426
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 avril 2020
365
Pour la coloration syntaxique, merci de lire ceci
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Quand à ta question, le problème c’est que tu lances un autre exe qui vit sa vie de son côté.
Si à la fin de son exécution le processus meure, alors la solution réside, à lançer un timer dans lequel tu vérifies les process en cours, dès que net.exe (je suppose) n’y est plus tu libères la textbox.

https://docs.microsoft.com/fr-fr/dotnet/api/system.diagnostics.process.getprocesses?view=netframework-4.7.2