Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RECHERCHER SUR INTERNET LE CONTENU TEXTUEL DU CONTROL AYANT LE FOCUS DANS VOTRE FORM


Information sur la source



Description

Titre bizarre ? J'ai pas trouvé mieux...
Heu... ce code source permet de lancer une recherche sur Internet (sur Google, Altavista, Windows Live Search ou bien un moteur défini par l'utilisateur) concernant le contenu textuel d'un contrôle.

Exemple : vous sélectionnez un contrôle Textbox, vous lancez la recherche (touche F1), et vous trouvez les résultats de Text1.Text sur un moteur de recherche.
Pleins de contrôles différents sont placés dans la form, chacun d'entre eux affichant un texte. Sélectionnez le contrôle, et appuyez sur F1 pour la recherche...

Les divers moteurs sont sélectionnables par le menu.

Si vous entrez vous même un moteur de recherche (une URL), mettez "[TEXT]" dans l'URL à l'emplacement requis pour la recherche (exemple pour google.fr : http://www.google.fr/search?hl=fr&q=%22[TEXT]%22&meta=).



Concernant l'utilité de ce code.....

.... elle est pas évidente (du tout...damn...) sortie du contexte de mon programme (cette source est un infime morceau d'un très gros projet).
Qui a dit "çà sert à qu'dalle !" ?  ;)



Mais vous pouvez peut être adapter le code pour qu'il ne soit pas (moins) inutile. EXEMPLE : vous remplacez toutes les lignes

    If TypeOf Me.ActiveControl Is TextBox Then
        sText = Me.ActiveControl.Text
    ElseIf TypeOf Me.ActiveControl Is ListView Then
        sText = Me.ActiveControl.SelectedItem.Text
    ElseIf TypeOf Me.ActiveControl Is TreeView Then
        sText = Me.ActiveControl.SelectedItem.Text
    ElseIf TypeOf Me.ActiveControl Is CommandButton Then
        sText = Me.ActiveControl.Caption
    ElseIf TypeOf Me.ActiveControl Is CheckBox Then
.....

par sText = Me.ActiveControl.Name

pour lancer un recherche sur le NOM du contrôle, le moteur étant défini comme "personnalisé" et ayant comme URL votre site. Une "aide en ligne" pour chaque contrôle sera ainsi disponible. Par exemple, http://www.monsite/aide_en_ligne/controle=[TEXT].
 

Source

  • Option Explicit
  • 'FORM de test pour ce programme
  • 'PERMET de rechercher le texte contenu dans le contrôle sélectionné
  • 'sur différents moteur du Web
  • '//APIs
  • 'API permettant de lancer le navigateur par défaut
  • Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  • '//VARIABLES
  • Private sURLrecherche As String 'contient l'URL du moteur perso
  • Private engineSearchEngine As SearchEngine 'contient le navigateur sélectionné
  • '//ENUMs
  • 'contient les différents moteur possibles
  • Private Enum SearchEngine
  • Google = 1
  • Altavista = 2
  • Live = 3
  • Personnel = 4
  • End Enum
  • Private Sub Form_Load()
  • 'définit les variables par défaut
  • Dim x As Long
  • 'par défaut, le moteur perso est google.fr
  • sURLrecherche = "http://www.google.fr/search?hl=fr&q=%22[PROCESS]%22&btnG=Recherche+Google&meta="
  • 'par défaut, le moteur de recherche est google.com
  • engineSearchEngine = Google
  • 'ajout des élements du ListView
  • With ListView1.ListItems
  • For x = 1 To 30
  • .Add Text:="Element" & CStr(x) & " Listview"
  • Next x
  • End With
  • 'ajout des éléments du Treeview
  • With TreeView1
  • .Nodes.Add , tvwChild, "Root", "Tree1"
  • .Nodes.Add , tvwChild, "Root2", "Tree2"
  • .Nodes.Add "Root2", tvwChild, "n1", "Tree3"
  • .Nodes.Add "Root2", tvwChild, "n2", "Tree4"
  • .Nodes.Add "n2", tvwChild, "n21", "Tree5"
  • .Nodes.Add "n2", tvwChild, "n22", "Tree6"
  • .Nodes.Add "n22", tvwChild, "n221", "Tree7"
  • .Nodes.Add "n221", tvwChild, "n2211", "Tree8"
  • .Nodes.Add "n22", tvwChild, "n222", "Tree9"
  • .Nodes.Add "n2", tvwChild, "n31", "Tree10"
  • .Nodes.Add "Root2", tvwChild, "n3", "Tree11"
  • End With
  • 'expand les éléments du treeview
  • For x = 1 To 11
  • TreeView1.Nodes(x).Expanded = True
  • Next x
  • End Sub
  • Private Sub mnu_altavista_Click()
  • 'change les checkboxes
  • Me.mnu_google.Checked = False
  • Me.mnu_altavista.Checked = True
  • Me.mnu_define.Checked = False
  • Me.mnu_live.Checked = False
  • engineSearchEngine = Altavista
  • End Sub
  • Private Sub mnu_define_Click()
  • Dim s As String
  • 'change les checkboxes
  • Me.mnu_google.Checked = False
  • Me.mnu_altavista.Checked = False
  • Me.mnu_define.Checked = True
  • Me.mnu_live.Checked = False
  • 'définit le moteur de recherche
  • s = "Définissez l'URL par défaut de votre moteur personnalisé" & _
  • vbNewLine & "Mettez [TEXT] à la place de la zone de la string" & _
  • vbNewLine & "réservée au mot à rechercher" & _
  • vbNewLine & "Exemple : http://www.google.fr/search=%22[TEXT]%22"
  • sURLrecherche = InputBox(s, "Définir un site de recherche personnalisé")
  • engineSearchEngine = Personnel
  • End Sub
  • Private Sub mnu_end_Click()
  • Unload Me
  • End
  • End Sub
  • Private Sub mnu_go_for_search_Click()
  • 'lance la recherche
  • Dim sURL As String 'contient l'URL finale de recherche
  • Dim sText As String 'texte à rechercher
  • 'recherche de l'item sélectionné
  • 'récupère son texte en fonction de la nature du contrôle
  • If TypeOf Me.ActiveControl Is TextBox Then
  • sText = Me.ActiveControl.Text
  • ElseIf TypeOf Me.ActiveControl Is ListView Then
  • sText = Me.ActiveControl.SelectedItem.Text
  • ElseIf TypeOf Me.ActiveControl Is TreeView Then
  • sText = Me.ActiveControl.SelectedItem.Text
  • ElseIf TypeOf Me.ActiveControl Is CommandButton Then
  • sText = Me.ActiveControl.Caption
  • ElseIf TypeOf Me.ActiveControl Is CheckBox Then
  • sText = Me.ActiveControl.Caption
  • ElseIf TypeOf Me.ActiveControl Is OptionButton Then
  • sText = Me.ActiveControl.Caption
  • ElseIf TypeOf Me.ActiveControl Is ComboBox Then
  • sText = Me.ActiveControl.Text
  • ElseIf TypeOf Me.ActiveControl Is DriveListBox Then
  • sText = Me.ActiveControl.Drive
  • ElseIf TypeOf Me.ActiveControl Is ListBox Then
  • sText = Me.ActiveControl.Text
  • ElseIf TypeOf Me.ActiveControl Is DirListBox Then
  • sText = Me.ActiveControl.Path
  • ElseIf TypeOf Me.ActiveControl Is FileListBox Then
  • sText = Me.ActiveControl.FileName
  • ElseIf TypeOf Me.ActiveControl Is TabStrip Then
  • sText = Me.ActiveControl.SelectedItem.Caption
  • End If
  • If engineSearchEngine = Personnel Then
  • 'alors c'est un navigateur perso
  • sURL = Replace(sURLrecherche, "[TEXT]", sText)
  • Else
  • 'un des navigateurs prédéfinis
  • Select Case engineSearchEngine
  • Case Google
  • 'google.com
  • sURL = "http://www.google.com/search?hl=en&q=%22" & sText & "%22"
  • Case Altavista
  • 'altavista.com
  • sURL = "http://www.altavista.com/web/results?itag=ody&q=%22" & sText & "%22&kgs=0&kls=0"
  • Case Live
  • 'live.com
  • sURL = "http://beta.search.live.com/results.aspx?q=%22" & sText & "%22&mkt=fr-fr&FORM=LVSP&go.x=0&go.y=0"
  • End Select
  • End If
  • 'lance le navigateur internet par défaut
  • ShellExecute Me.hwnd, "open", sURL, ByVal 0&, 0&, 1
  • End Sub
  • Private Sub mnu_google_Click()
  • 'change les checkboxes
  • Me.mnu_google.Checked = True
  • Me.mnu_altavista.Checked = False
  • Me.mnu_define.Checked = False
  • Me.mnu_live.Checked = False
  • engineSearchEngine = Google
  • End Sub
  • Private Sub mnu_live_Click()
  • 'change les checkboxes
  • Me.mnu_google.Checked = False
  • Me.mnu_altavista.Checked = False
  • Me.mnu_define.Checked = False
  • Me.mnu_live.Checked = True
  • engineSearchEngine = Live
  • End Sub
Option Explicit

'FORM de test pour ce programme
'PERMET de rechercher le texte contenu dans le contrôle sélectionné
'sur différents moteur du Web


'//APIs
'API permettant de lancer le navigateur par défaut
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


'//VARIABLES
Private sURLrecherche As String    'contient l'URL du moteur perso
Private engineSearchEngine As SearchEngine 'contient le navigateur sélectionné


'//ENUMs
'contient les différents moteur possibles
Private Enum SearchEngine
    Google = 1
    Altavista = 2
    Live = 3
    Personnel = 4
End Enum

     
Private Sub Form_Load()
'définit les variables par défaut
Dim x As Long

    'par défaut, le moteur perso est google.fr
    sURLrecherche = "http://www.google.fr/search?hl=fr&q=%22[PROCESS]%22&btnG=Recherche+Google&meta="
    
    'par défaut, le moteur de recherche est google.com
    engineSearchEngine = Google
    
    'ajout des élements du ListView
    With ListView1.ListItems
        For x = 1 To 30
            .Add Text:="Element" & CStr(x) & " Listview"
        Next x
    End With
    
    'ajout des éléments du Treeview
    With TreeView1
        .Nodes.Add , tvwChild, "Root", "Tree1"
        .Nodes.Add , tvwChild, "Root2", "Tree2"
        .Nodes.Add "Root2", tvwChild, "n1", "Tree3"
        .Nodes.Add "Root2", tvwChild, "n2", "Tree4"
        .Nodes.Add "n2", tvwChild, "n21", "Tree5"
        .Nodes.Add "n2", tvwChild, "n22", "Tree6"
        .Nodes.Add "n22", tvwChild, "n221", "Tree7"
        .Nodes.Add "n221", tvwChild, "n2211", "Tree8"
        .Nodes.Add "n22", tvwChild, "n222", "Tree9"
        .Nodes.Add "n2", tvwChild, "n31", "Tree10"
        .Nodes.Add "Root2", tvwChild, "n3", "Tree11"
    End With
    'expand les éléments du treeview
    For x = 1 To 11
        TreeView1.Nodes(x).Expanded = True
    Next x

End Sub

Private Sub mnu_altavista_Click()
'change les checkboxes
    Me.mnu_google.Checked = False
    Me.mnu_altavista.Checked = True
    Me.mnu_define.Checked = False
    Me.mnu_live.Checked = False
    
    engineSearchEngine = Altavista
End Sub

Private Sub mnu_define_Click()
Dim s As String

    'change les checkboxes
    Me.mnu_google.Checked = False
    Me.mnu_altavista.Checked = False
    Me.mnu_define.Checked = True
    Me.mnu_live.Checked = False
    
    'définit le moteur de recherche
    s = "Définissez l'URL par défaut de votre moteur personnalisé" & _
    vbNewLine & "Mettez [TEXT] à la place de la zone de la string" & _
    vbNewLine & "réservée au mot à rechercher" & _
    vbNewLine & "Exemple : http://www.google.fr/search=%22[TEXT]%22"
    
    sURLrecherche = InputBox(s, "Définir un site de recherche personnalisé")
    
    engineSearchEngine = Personnel
End Sub

Private Sub mnu_end_Click()
    Unload Me
    End
End Sub

Private Sub mnu_go_for_search_Click()

'lance la recherche

Dim sURL As String  'contient l'URL finale de recherche
Dim sText As String 'texte à rechercher


    'recherche de l'item sélectionné
    'récupère son texte en fonction de la nature du contrôle
    
    If TypeOf Me.ActiveControl Is TextBox Then
        sText = Me.ActiveControl.Text
    ElseIf TypeOf Me.ActiveControl Is ListView Then
        sText = Me.ActiveControl.SelectedItem.Text
    ElseIf TypeOf Me.ActiveControl Is TreeView Then
        sText = Me.ActiveControl.SelectedItem.Text
    ElseIf TypeOf Me.ActiveControl Is CommandButton Then
        sText = Me.ActiveControl.Caption
    ElseIf TypeOf Me.ActiveControl Is CheckBox Then
        sText = Me.ActiveControl.Caption
    ElseIf TypeOf Me.ActiveControl Is OptionButton Then
        sText = Me.ActiveControl.Caption
    ElseIf TypeOf Me.ActiveControl Is ComboBox Then
        sText = Me.ActiveControl.Text
    ElseIf TypeOf Me.ActiveControl Is DriveListBox Then
        sText = Me.ActiveControl.Drive
    ElseIf TypeOf Me.ActiveControl Is ListBox Then
        sText = Me.ActiveControl.Text
    ElseIf TypeOf Me.ActiveControl Is DirListBox Then
        sText = Me.ActiveControl.Path
    ElseIf TypeOf Me.ActiveControl Is FileListBox Then
        sText = Me.ActiveControl.FileName
    ElseIf TypeOf Me.ActiveControl Is TabStrip Then
        sText = Me.ActiveControl.SelectedItem.Caption
    End If



    
    If engineSearchEngine = Personnel Then
    
        'alors c'est un navigateur perso
        sURL = Replace(sURLrecherche, "[TEXT]", sText)
        
    Else
    
        'un des navigateurs prédéfinis
        Select Case engineSearchEngine
            Case Google
                'google.com
                sURL = "http://www.google.com/search?hl=en&q=%22" & sText & "%22"
            Case Altavista
                'altavista.com
                sURL = "http://www.altavista.com/web/results?itag=ody&q=%22" & sText & "%22&kgs=0&kls=0"
            Case Live
                'live.com
                sURL = "http://beta.search.live.com/results.aspx?q=%22" & sText & "%22&mkt=fr-fr&FORM=LVSP&go.x=0&go.y=0"
        End Select
        
    End If
    
    'lance le navigateur internet par défaut
    ShellExecute Me.hwnd, "open", sURL, ByVal 0&, 0&, 1
    
End Sub

Private Sub mnu_google_Click()
'change les checkboxes
    Me.mnu_google.Checked = True
    Me.mnu_altavista.Checked = False
    Me.mnu_define.Checked = False
    Me.mnu_live.Checked = False
    
    engineSearchEngine = Google
End Sub

Private Sub mnu_live_Click()
'change les checkboxes
    Me.mnu_google.Checked = False
    Me.mnu_altavista.Checked = False
    Me.mnu_define.Checked = False
    Me.mnu_live.Checked = True
    
    engineSearchEngine = Live
End Sub

Conclusion

Bon OK, çà casse - à priori - pas la baraque niveau utilité de code. M'enfin, sachez que l'idée de modification donnée dans la présentation du code peut être intéressante... et sachez également que c'est intéressant dans mon projet (si, si !)


Pour les commentaires, tous sont bienvenus (évidemment les critiques aussi, mais argumentées svp).
Pour la note, inutile de mettre 0 si vous comprenez pas à quoi sert ce code... passez simplement votre chemin ;)


Merci de votre compréhension, @+
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de laryann le 21/09/2006 11:04:29

Bonjour
C'est juste pour vous demandez une aide, j'ai un sujet à traiter: CONCEPTION ET REALISATION D'UN EDITEUR DE FACTURE PROFORMA, en VB.
Merci

signaler à un administrateur
Commentaire de VBGenesis le 21/09/2006 18:06:45

Salut
Violent_ken> Ce n'est pas forcément inutil dans le cas d'un control dont l'aide peut évoluer d'une facon ou d'une autre, il n'y a qu'a modifier la page internet plutot que de modifier tout les fichiers d'aides (je pense à un control qui serait commercialisé).
Laryann>Si ce n'a rien a voir avec le code, il vaut mieu demander sa dans le forum où tu aura plus de chances d'avoir une réponse

@+

signaler à un administrateur
Commentaire de violent_ken le 22/09/2006 22:06:05

Moui, çà peut être utilisé dans ce cas.

Pour la petite histoire (même si tout le monde s'en fout), il s'agit dans le cas de mon projet, de rechercher directement sur google les processus, clés registre, modules, fichiers, drivers, services... en cliquant sur ctrl+F1.

Exemple : on clique sur le processus "explorer.exe" dans une listview, on fait ctrl+F1 et on obtient une recherche google/Live/Altavista renseignant sur le processus. Pratique pour les clés registre, services.... inconnus de l'utilisateur.

Laryan ==> Tu auras des réponses dans le forum (encore faut-il préciser la demande, car "nous ne sommes pas là pour faire ton code" comme disent si bien les admins ^^)

@+

signaler à un administrateur
Commentaire de VBsnail le 15/03/2008 23:45:21

Peux-tu préciser pour quel VB tu as écrit ?

Au vu de ton code, il me semble que la recherche va échouer si on met -par exemple- des lettres accentuées. peux-tu confirmer ?

signaler à un administrateur
Commentaire de VBGenesis le 16/03/2008 08:45:07

C'est du VB6, sinon il y aurait un petit logo .Net dans la présentation ;)

Sinon c'est vrai qu'on pourrait ajouter avant le Replace une fonction qui remplace les lettres accentuées par leur code. Reste à savoir si ce code est le même pour tout les moteurs de recherche.

signaler à un administrateur
Commentaire de violent_ken le 16/03/2008 10:12:22

Salut, alors oui c'est du VB6 ^^

Sinon, la recherche marche pour google avec des caractères accentués, mais échoue sur altavista et live search (la lettre accentuée est omise).

On pourrait en effet ajouter une fonction qui formate correctement le texte à rechercher, en se limitant par exemple aux chiffres et lettres de a à z.
@+

signaler à un administrateur
Commentaire de VBsnail le 19/03/2008 20:42:06

Pour ton information, j'ai écrit un bout de code en VB6 pour normaliser les URL.
Lesz accents, les cédilles, les Euros, tout cela passe, même le chinois.
http://www.vbfrance.com/codes/ENCODER-URL-UTF8-DEPUIS-WORD_46108.aspx

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Recherche réseau [ par Bas ] Je cherche à obtenir les utilisateurs d'un réseau en appelant l'API (qu'elle dll utiliser).Merci d'avance !bmouget@digitalsuf.fr Navigateur (Recupération de la dernière URL du navigateur) [ par JCB ] Bonjour,J'ai besoin de lire une page Html via un progg VB , jusque la pas de problème.Mais j'ai surtout besoin de lire la dernière page chagée du navi ShellExecute [ par tardigrade ] Bonjour à tous,Comment ouvir avec l'API ShellExecute une URL dans le navigateur par défaut et dans une nouvelle fenêtre?Faut-il d'abord chercher le na URL du navigateur [ par quiaimeflash ] Bonjour a tous...Si je vous disais que je voulait récupérer l'URL de mon navigateur, vous me réponderiez : "C'est facile !".Mais si j'ajoutait que je Question sur la recherche sur le site [ par GabSoftware ] Pourquoi ma source [url]http://vbfrance.com/code.aspx?ID=30445[/url] n'apparait plus dans la recherche quand je tape "XML", alors qu'avant elle appara Recherche d'un composant [ par eXplaiNeD ] YoJ'ai comme qui dirais un problème. Dans un projet VB je veut utiliser un composant que j'ai aperçu dans de nombreux programmes mais je n'arrive pas manipuler une url dans vb [ par tempus75 ] bonjour a tous,je dois developper un programme qui dois ouvrir une url par defaut,  il y a deux checkbox et un texbox. le but etant que s'ouvre le nav AU SECOURS!!!! RECHERCHE URL SMS [ par Corte ] Je recherche avec desespoire une URL pour envoyer des SMS à partir de mon projet VB.Merci d'avance Recherche de l'aide du contrôle ListView [ par Scooby1 ] Recherche de l'aide du contrôle ListViewmailto:scoob79@hotmail.com récupérer url avant lancement navigateur [ par sapi ] : l'utilisateur clique sur une url pour contrôler l'accès au navigateur, je place un contrôle d'accès. Si la connexion est accepté, je lance le naviga


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.