Service windows et webbrowser ?

cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 - 18 juin 2008 à 17:10
cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 - 20 juin 2008 à 17:00
Bonjour,
j'aurai besoin à partir d'un service windows, de lancer une page internet et suivant les traitements, me renvoie des réponses en javascript.
Pour pouvoir traiter ces réponses, je me suis dis que j'allais utiliser l'objet WebBrowser et m'en sortir avec des Handler sur les méthodes Navigated..

Mais mon soucis est ceci .. : La classe WebBrowser peut être utilisée uniquement dans les threads en mode STA (Single Thread Apartment)

Donc je fais un truc comme ca :

    Protected Overrides Sub OnStart(ByVal args() As String)
        Dim threadDelegate As ThreadStart = New ThreadStart(AddressOf LoadWebBrowser)
        Dim thread As Thread = New Thread(threadDelegate)
        thread.SetApartmentState(ApartmentState.STA)
        thread.Start()
        thread.Join()



    End Sub





    Private Sub LoadWebBrowser()

        Try

            gWebBrowser = New WebBrowser

            gWebBrowser.Url = New System.Uri("http://localhost/debugProcess/1.html")

            AddHandler gWebBrowser.Navigated, AddressOf URLNavigated

        Catch ex As Exception

            Dim [stop] As Exception = ex

        End Try


    End Sub

    Private Sub URLNavigated(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs)




    End Sub





Je n'ai pas d'erreur d'exécution lorsque mon service se lance, lors du debug tout ce passe bien sauf que le Handler



gWebBrowser.Navigated ne se lève jamais..
Je ne passe donc jamais dans la fonction URLNavigated..

Dans une application Winform ca passe tout nickel..

Une petite idée ?
Merci les Zamis

1 réponse

cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 1
20 juin 2008 à 17:00
Il y a un truc d'étrange,
c'est que ma variable globale gWebBrowser a pour propriété Url Null juste après lui avoir fait :

          
 gWebBrowser.Url = New System.Uri("http://localhost/debugProcess/1.html")

Bizzare non ?
0
Rejoignez-nous