J'ai besoin d'ouvrir Firefox à partir de mon application de console, faire des choses avec elle, puis l'éteindre quelques minutes plus tard. J'utilise Process.Start ("firefox.exe", "myurl"); ouvrir Firefox, ce qui n'est pas un problème. Le problème est avec la fermeture. La fonction CloseMainWindow() fonctionne généralement, mais elle ne fonctionne pas si firefox a une fenêtre modale ouverte (comme une boîte de message «Échec du téléchargement»). Dans ce cas, je peux appeler Kill() sur le processus, mais cela semble sale.Programatically ouvrir et fermer firefox
De plus, si j'appelle Kill() sur le processus, la prochaine fois que firefox s'ouvrira, un onglet "restore de session" s'ouvrira, ce qui n'est pas cool. Je pourrais essayer de désactiver la fonctionnalité de restauration de session, qui contournerait ce problème. Cependant, je suis toujours préoccupé par le fait que tuer des ffx comme ça pourrait causer d'autres problèmes.
Est-ce que quelqu'un sait un bon moyen de faire cela? Est-ce le moyen le plus "propre" pour essayer et pinvoke pour obtenir le handle de fenêtre modale, fermez-le, puis réessayez CloseMainWindow()?
Je ne peux pas penser à des problèmes considérables découlant de la destruction de Firefox. Au pire, vous pourriez endommager votre dossier de profil, mais c'est assez improbable. Je force tout le temps à tuer ce trou noir. –
Je suis un peu à court de ce que vous faites par programme que vous avez besoin de Firefox ouvert? Les seules choses auxquelles je peux penser sont l'accès au Web et la modification du réglage FFX, dont aucune ne nécessite l'exécution de l'application. À moins que vous n'utilisiez FFX en tant qu'utilisateur, dans ce cas, pourquoi doit-il être fermé par votre application de console? –
@Nathan: J'ai ri si fort @ votre dernière phrase là-bas. – Aren