Lancer une apllication a distance

Signaler
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006
-
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006
-
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

Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
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
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Une sorte de cheval de Troie !? un poney de Troie !? : )
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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.
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
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
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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.
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
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
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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.
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
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é");
}
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Process.WaitForExit( );
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

Merci pour votre aide.

Il y a quelque chose à faire ou à remplacer avec ce que tu as écrit
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
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.
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
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
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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.
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
"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
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
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
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
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.
Messages postés
40
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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.