Lancer une apllication a distance

cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006 - 26 juil. 2005 à 14:22
cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006 - 28 juil. 2005 à 09:45
Bonjour,

Est-il possible de lancer automatiquement (par envoi d'un message) une application fait en C# à distance (sur un autre pc du réseau)?
Si oui, pouvez vous m'expliquer la démarche ou donner un exemple (ou bien un tutoriel)?

Merci d'avance pour vos réponses

17 réponses

zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
26 juil. 2005 à 14:31
il te fo une appli client/serveur : serveur sur le pc distant, où tu pourra faire ce ke tu ve, et client sur ton poste pour le controler l'appli distante.
c une sorte de cheval de troie ke tu va ns faire là... lol
il existe deja po mal de prog ki font ca, dt sur CS. cherche un peu

<HR>
ZeBobo5
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
26 juil. 2005 à 14:35
Une sorte de cheval de Troie !? un poney de Troie !? : )
0
cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
26 juil. 2005 à 14:50
J'ai déjà fait ue application client/serveur qui fonctionne correctement lorsque je la lance en local (sur le meme pc), mais dès que je met le client sur un pc et le serveur sur un autre, la connection du client sur le serveur ne se fait jamais.
Je ne sais pas si quelqu'un peux m'aider svp? (j'ai aussi testé une application déjà faite et le résultat est le même que l'application que je créée).

Merci d'avance.
0
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
26 juil. 2005 à 14:54
tu as vérifier ke tes ports sont ouvert dans les propriétés de ton parefeu perso et/ou celui de windows et/ou celui de ton routeur si tu en a 1?

<HR>
ZeBobo5
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
26 juil. 2005 à 15:57
Oui tout est vérifié, mais en fait j'ai réussi à communiquer en utilisant la classe TcpClient.
En fait mon problème, c'est que un client doit envoyer un message au serveur et le serveur doit alors exécuter une application bien spécifique et dès que l'application a terminé de s'exécuter, le serveur doit renvoyer au même client un fichier de données et ce client doit les afficher à l'écran et tout ça en temps réel. Je ne vois pas comment pouvoir réaliser ceci.

Merci pour votre aide.
0
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
26 juil. 2005 à 16:02
Si tu ve de la doc :http://www.labo-dotnet.com/desktopmodules/LaboDotnet.Articles/contentfiles/pdf/socket.pdf
Ca pourra deja repondre à quelques de tes questions je pense...

<HR>
ZeBobo5
0
cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
26 juil. 2005 à 16:38
Merci, cette doc je l'ai déjà et quand je l'ai testée ça ne marchait pas.
Tu n'aurais pas d'autres doc stp?
Mais mon plus gros problème est de lancer une application sur le serveur dès qu'un client lui envoie un message et aussi l'envoi du fichier du serveur au client (quand l'appli est terminée).

Merci de votre aide.
0
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
26 juil. 2005 à 17:25
Lorsque ton serveur recoit un message, il a juste à faire : Lancer_Notepad();
Là ton serveur lancera notepad , ton serveur bouclera, et tant ke notepad ne sera po fermé, la messagebox ne s'affechera po(au nivo serveur)
Ce code n'est k'un exemple vite fait, ya surement mieux fait, m'enfin ca marche

System.Diagnostics.Process p;
void Lancer_Notepad()
{
p = new System.Diagnostics. Process ();
p.StartInfo = new System.Diagnostics.ProcessStartInfo("notepad.exe");
p.Exited += new EventHandler(p_Exited);
p.Start();
while (true)
{
if (c.HasExited)
break;
}
}
void p_Exited(object sender, EventArgs e)
{
MessageBox.Show("Notepad a été fermé, maintenant je pe renvoyer ce ke je ve à mon client dt un fichier généré par l'appli ki vien d'etre fermé");
}
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
26 juil. 2005 à 17:53
Process.WaitForExit( );
0
cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
27 juil. 2005 à 11:35
Merci pour votre aide.

Il y a quelque chose à faire ou à remplacer avec ce que tu as écrit
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
27 juil. 2005 à 11:52
Je ne suis pas sûr, j'ai un doute sur ce que voulait faire Zebobo, Process.WaitForExit( ) permet d'attendre la fin d'un processus.
0
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
27 juil. 2005 à 11:54
Tt depend de l'appli, pis v po faire tt son code non plu, lol, c juste de l'aide ke je donne.
<HR>
ZeBobo5
0
cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
27 juil. 2005 à 15:43
zebobo c'est koi "c" dans c.HasExited ?
Je voulais savoir si c'était aussi possible de fermer l'application (qui a été ouverte, donc ici par exemple fermer notpad.exe) à distance dès qu'on a notre fichier de données?

Merci.
0
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
27 juil. 2005 à 15:51
"c" est une faute de frappe, c'est "p" en fait. sinon, pour killer ton appli a distance tu envois un msg ki lancera un procédure où tu auras :
p.Kill();

sinon, met un :
Application.DoEvents();

dans le "while" pour ke ton serveur continue à s'executer si un autre evenement ou msg arrive.


<HR>
ZeBobo5
0
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
27 juil. 2005 à 15:56
Pour vérifier si ton appli est en marche tu as la propriété : p.HasExited
Elle est à true si elle a déjà été fermé
Et à false si elle n'a pas encore été fermé
<HR>
ZeBobo5
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
27 juil. 2005 à 16:29
Moi aussi je me suis demandé si c'était une faute de frappe ou pas ce "c", c'est pour ca que j'ai dit dans le post précédent "j'ai un doute sur ce que veut faire Zebobo" donc voilà ce que je voulais proposer avec WaitForExit( )

private void Run( )
{
Process p = Process.Start( "Notepad.exe" );

p.WaitForExit( );


MessageBox.Show("Notepad has exited !");
}

Sauf que maintenant Hoymille veut killer Notepad donc finallement il faut peût être mieux garder l'idée de la boucle.
0
cs_hoymille Messages postés 40 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
28 juil. 2005 à 09:45
Je voulais savoir si il était possible de renvoyer au serveur le fichiers de données sachant qu'il peut y avoir jusqu'à 4 clients de connectés (il faudrait envoyer le fichier de données au client qui a demandé au serveur de lanecr une application) ?

Merci d'avance.
0
Rejoignez-nous