IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème de presse papier


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut Problème de presse papier
    Bonjour avec le code suivant, je copie le presse papier dabs une variable et si le presse papier ne contient pas le mot Afficher on recommence, mais, le premier passage sa marche et au deuxième j'ai l'erreur suivante:

    Une exception non gérée du type 'System.Runtime.InteropServices.ExternalException' s'est produite dans System.Windows.Forms.dll

    Informations supplémentaires*: Échec de l'opération du Presse-papiers demandée.

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    boucle:
            Clipboard.Clear()
            p.X = 117
            p.Y = 111
            Cursor.Position = p
            System.Threading.Thread.Sleep(1000)
     
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Enfonce le bouton de la souris 
            System.Threading.Thread.Sleep(500)
            p.X = 162
            p.Y = 111
            Cursor.Position = p
            System.Threading.Thread.Sleep(500)
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ' le relève 
            SendKeys.Send("^{c}")
            '   System.Threading.Thread.Sleep(1000)
            'If googletr <> "Afficher" Then
            googletr = Clipboard.GetText()
            'End If
            'googletr = My.Computer.Clipboard.GetText()
            If googletr <> "Afficher" Then GoTo boucle

  2. #2
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 37
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    ça pique déjà un peu les yeux de voir du vieux code VB6 mélangé avec du .Net et je ne comprends pas trop le but de ton code ?
    Tu simules un clic, envoie un Ctrl+C et récupère le presse papier ?

    Commence par placé un try catch et identifié la ligne qui te pose problème
    Probable que ce soit ton sendkey

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Bonjour,
    waouh... pour piquer les yeux, ça pique... ça faisait long-temps que j'ai pas vu des 'goto'

    pascb423, j'ai compris que tu veux faire un copier de quelque chose
    A quoi correspond tes coordonnées 117 et 162?
    Si c'est une page web il existe d'autres moyens pour faire ce que tu cherches.
    Par nature les mots, ils sont flous, c'est une fois alignés qu'ils se précisent.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut
    bonjour, oui c'est une page web

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Connais-tu les balises qui contiennent ce que tu cherches?
    Tu peux utiliser un WebBrowser par exemple comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Public Class Form1
        Dim PageWeb As New WebBrowser
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            AddHandler PageWeb.DocumentCompleted, AddressOf Page_DocumentCompleted
            Dim TaPageWeb As String = "http://www.adressip.com/" 'A remplacer par ta page
            PageWeb.Navigate(TaPageWeb)
        End Sub
     
        Private Sub Page_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
            System.IO.File.WriteAllText(Application.StartupPath & "\doc.txt", PageWeb.Documenttext)
            Process.Start("notepad.exe", Application.StartupPath & "\doc.txt")
        End Sub
    End Class
    Déjà dans le bloc notes qui va s'ouvrir regarde si tu trouves ce qui t'intéresse (fais un Ctrl+F)

    Par exemple, si tu veux récupérer le texte dans la balise '<Title...> on peux faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Private Sub Page_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
            Dim Element As HtmlElement = PageWeb.Document.GetElementsByTagName("Title").Item(0)
            Dim Texte As String = element.InnerText
            MsgBox(Texte)
        End Sub
    Par nature les mots, ils sont flous, c'est une fois alignés qu'ils se précisent.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut
    ok merci, je vais essayer

Discussions similaires

  1. [XL-2007] Problème sur presse papier
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 19/03/2022, 12h14
  2. [XL-2010] Problème vider presse papier
    Par Bobif dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/01/2015, 15h17
  3. Problème de presse papier
    Par koKoTis dans le forum Word
    Réponses: 4
    Dernier message: 19/09/2013, 23h13
  4. Word vers Publisher : problème de Presse-papiers
    Par Midas1422 dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 28/02/2013, 16h29
  5. Copy et pasteSpecial lent ,problème de presse papier?
    Par nath-0-0 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2010, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo