Problème Flash/Webbrowser VB.Net 2005 [Résolu]

Messages postés
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
- - Dernière réponse : cs_antho2005
Messages postés
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
- 3 juin 2009 à 13:07
Bonjour,
J'ai un problème (si, si, je vous assure) :

Il se trouve que sous vb6 quand on naviguait avec un webbrowser les applis flash marchaient très bien ...
Sous VB.Net, quand on clique 2 fois de suite sur un truc flash ça ne marche pas et on doit cliquer ailleur (n'importe où) pour que ça marche.

J'ai pensé que c'était un problème de focus mais même en le remettant ailleur, ça ne marche pas.
Je me suis aussi aperçu que d'après le comportement et les couleur de l'appli flash il detecte bien la position de la souris et le clique mais ne l'interprete pas ...

Merci d'avance pour votre aide

Antho2005
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
219
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
7 septembre 2009
3
Merci
Si tu n'as toujours pas résolu ton pb, je viens de publier un post la dessus après avoir eu le même problème le même jour apparement  :



http://developpeur-net.blogspot.com/2007/11/le-webbrowser-et-le-flash.html



C'est en C#, mais le principe est le même.







<hr />

I love .net

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 194 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Yxion
Messages postés
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
1
3
Merci
Resalut,
en faite j'ai utilisé une autre solution sur le site que tu cite sur ton site

protectedoverridevoid WndProc( ref System.Windows.Forms.Message m )
{
switch(m.Msg)
{
case 0x201: // WM_LBUTTONDOWN
case 0x204:
case 0x207:
case 0x21:
base.DefWndProc( ref m );
return;
}
base.WndProc( ref m );
}

ce qui fait en vb :

ProtectedOverloadsOverridesSub WndProc(ByRef m As Message)

  If m.Msg = 33 AndAlsoNot DesignMode Then
    Dim control As Control = Me
    While control <> Nothing
      If control.[GetType]() = GetType(ContainerControl) Then
        control.Focus()
        ExitWhile
      EndIf
      control = control.Parent
    EndWhile
  EndIf
EndSub

Pour mettre ce code vous devez ajouter une classe component (ajouter un élément > classe component), mettre
Inherits WebBrowser au début et marquer le code ci-dessus après
Ensuite sur votre form vous remplacez le webbrowser par votre composant (Dans la catégorie "Composants [NomDeVotreProjet]") en remettant les paramètres de celui d'avant (le webbrowser ...).

Voili Voilou

Antho

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 194 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_antho2005
Messages postés
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
1
0
Merci
Salut,

Tout d'abbord merci pour ta réponse, c'est exactement ce qu'il me fallait !
Mais j'ai un problème

J'ai changé ton code en VB, je l'ai mis dans une classe héitée de webbrowser mais ...

Comment l'utilise-t-on  

Merci pour tout

Antho
Commenter la réponse de cs_antho2005
Messages postés
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
1
0
Merci
1 an et demi après ...
Après une recherche sur google pour un autre problème je retombe sur ce sujet ...
Et je me rend compte que j'ai mis n'importe quoi
Alors ce que j'ai dis c'est bon sauf que le code en VB c'est pas du tout ça, ça c'était la transformation du code de Yxion que je ne savais pas comment utiliser (je n'ai pas réessayé, peut-être que maintenant je saurais, qui sait ... ).
Donc ça donne en réalité:
    'La liste est dispo à http://www.pinvoke.net/default.aspx/Constants/WM.html
    Private Const WM_LBUTTONDOWN As Integer = &H201
    Private Const WM_RBUTTONDOWN As Integer = &H204
    Private Const WM_MBUTTONDOWN As Integer = &H207
    Private Const WM_MOUSEACTIVATE As Integer = &H21

    Protected Overloads Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        Select Case m.Msg
            Case WM_LBUTTONDOWN, WM_MBUTTONDOWN, WM_RBUTTONDOWN, WM_MOUSEACTIVATE
                MyBase.DefWndProc(m)
                Return
        End Select
        MyBase.WndProc(m)
    End Sub

A+

Antho 25
------------------------------------
Rien n'empêche Melba
Commenter la réponse de cs_antho2005