2014-04-22 1 views
1

J'ai un programme C# qui exécute certains fichiers batch qui appellent RegSvr32. Quand il exécute certaines invites apparaissent comme "Quelque chose s'est terminé avec succès" avec le bouton "OK". Comment puis-je les fermer automatiquement (pour que l'utilisateur ne les voit pas)?Fermer automatiquement les invites RegSvr32

Il s'agit d'une application console. Je ne veux pas faire référence à des formulaires ou des bibliothèques comme celle-ci pour imiter keypress.

Une capture d'écran:
BatMessage

+0

* Certains fichiers batch *, fichiers bat? Vous voulez fermer la fenêtre de la console après avoir exécuté le fichier chauve-souris? Pourriez-vous montrer une capture d'écran? – Sinatr

+0

@Sinatr yep, fichiers .bat. Ajouté une capture d'écran à mon message. J'exécute de nombreuses commandes regSvr, tant de fenêtres apparaissent et ce n'est pas bon pour l'utilisateur –

+2

Vous pouvez exécuter [RegSvr32] (http://technet.microsoft.com/en-us/library/bb490985.aspx) silencieusement avec le/s drapeau. –

Répondre

4

Vous pouvez exécuter RegSvr32 silencieusement avec le drapeau de la /.

0
Dim Procinfo As New ProcessStartInfo(<<Batch File Path>>) With {.RedirectStandardOutput = True, .RedirectStandardError = True, .UseShellExecute = False, .WindowStyle = ProcessWindowStyle.Hidden, .CreateNoWindow = True} 
Dim Proc As Process = Process.Start(Procinfo) 

Avec des propriétés WindowStyle et CreateNoWindow vous pouvez cacher la fenêtre de ligne de commande. Vous pouvez également gérer l'état d'exécution du lot à partir de l'objet Proc.

Dim sOut As StreamReader = Proc.StandardOutput 
Dim sError As StreamReader = Proc.StandardError 
Dim Outputs As String = sOut.ReadToEnd 
Dim Errors As String = sError.ReadToEnd 
+0

cela n'aidera pas avec les boîtes aux messages, créées par cmd. J'utilise un code similaire pour exécuter mes lots. –

Questions connexes