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

Signaler
Messages postés
51
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
11 mai 2020
-
Messages postés
14916
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 octobre 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
14916
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 octobre 2020
447
Bonjour
Regarde du côté de la classe Process
Messages postés
51
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
11 mai 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
14916
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 octobre 2020
447
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