2010-01-19 4 views
0

J'ai une application VB.net ClassLibray.gérer des sessions de site Web dans .net

J'ai une ligne de code:

System.Diagnostics.Process.Start ("https://stackoverflow.com/")

Cela me prendra à stackoverflow site. La question est quand est-ce que je ferme le site Web de stackoverflow comment obtenir une réponse à mon application?

-à-dire,

Comment faire pour gérer les sessions de pages web externes en .net?

Répondre

0

Il n'existe pas de méthode générale pour ce faire. Il n'y a aucun moyen de savoir quel processus sera démarré lorsque vous appelez cette méthode. Par exemple, il peut démarrer n'importe quel navigateur installé, tel que Firefox, IE, Safari ou Opera.

Même si vous savez de quel navigateur il s'agit, il n'y a aucun moyen de savoir quel est le processus. De nombreux nouveaux navigateurs prennent en charge l'interface utilisateur à onglets ou s'exécutent dans plusieurs processus. Il n'existe aucun moyen de savoir quel processus ou quel onglet d'un processus traitera cette URL.

On ne sait pas non plus ce que vous entendez par "session". Qu'espérez-vous faire ici exactement?

0

La fonction Process.Start renvoie un objet Process ayant une propriété HasExited. Vous pouvez simplement vérifier cela. Alternativement, vous pouvez appeler WaitForExit si vous voulez simplement que votre application s'arrête jusqu'à la fermeture du navigateur (en option avec un timeout si vous ne voulez par exemple attendre que quelques minutes avant de revenir à une fonctionnalité par défaut).

+0

Veuillez vous référer à ma réponse pour un certain nombre de raisons pour lesquelles ce n'est pas un moyen fiable de le faire. – Eilon

+0

Non, cela ne fonctionnera pas pour les sites Web. Calling Process.Start avec une URL renvoie null - vous ne pouvez rien faire avec elle! –

+0

Ah, je ne me suis pas rendu compte que tehMick, je suppose que cette technique ne fonctionnerait que si vous appeliez explicitement l'exe d'un navigateur avec l'URL, ce qui cause un problème parce que vous n'obéiriez pas à leur navigateur par défaut. Et oui, Eilon pourrait ne pas être fiable selon la façon dont le navigateur gère ses processus, mais à court de recherche System.Diagnostics.Process.GetProcessesByName pour tout ce qui ressemble à un navigateur (Qui a ses propres problèmes), il est aussi bon que vous obtiendrez. – fyjham

Questions connexes