2010-03-14 22 views
1

J'écris pour mon bureau une application pour la gestion de certains services. J'ai écrit en C# une application qui calcule quelque chose (appelons-le cl.exe) J'ai créé un fichier .bat qui démarre le fichier cl.exe. Je veux appeler ce fichier .bat à partir de mon javascript, donc je WShell.Run (**. Bat).interaction entre javascript (application de bureau) et C#

2 question:

  1. Le programme javascript ne sera pas continuer jusqu'à ce que le cl.exe prendra fin? (Il est synchronisé?)
  2. Le fichier cl.exe renvoie une valeur. Comment peut- prendre le javascript (C'est un programme javascript qui appelle le fichier .bat qui enveloppent l'exécution de la cl.exe)?

Merci

+0

Êtes-vous sûr de votre architecture? Une page Web qui lance un fichier .bat ne fonctionnera que sur un environnement spécialement configuré. – Timores

+0

Aucune page Web. Sime un script Windows qui s'exécute sur lui et pas sur le web pour faire face à des trucs administartation. –

Répondre

1

Pour rendre attendre, le 3ème paramètre de WShell.Run doit être réglé sur vrai. Voir http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx

Dans ce cas, WShell.Run renvoie également la valeur de retour du fichier de traitement par lots. Si je me souviens bien, le fichier bat retournera le code d'erreur du dernier exécutable. Sinon, vous pouvez le définir avec le lot EXIT commande

+0

Pouvez-vous expliquer plus comment faire cela? –

0

Pour retourner la valeur, j'ai utilisé simple le System.Enviorment.Exit (TTT) où TTT est l'entier que je voulais retourner. Quand je l'ai commencé, j'ai tout le temps zéro comme un answear. J'ai découvert que pour que le programme soit synchronisé, il doit être appelé différemment.

WshShell.Run (fichier exe à exécuter, 3, vrai);

Le vrai est ici pour être synchronisé.

+0

@Roman: ce n'est pas un forum de discussion. S'il vous plaît modifier votre question avec cette nouvelle information au lieu d'ajouter une réponse. –

+0

Mais, pour cela il y a le bouton "answear ta question" –