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

VBScript Discussion :

récupérer le contenu du presse-papiers sans passer par un object htmldocument


Sujet :

VBScript

  1. #21
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    Lire le clipboard sans pouvoir le modifier ça évoque plutôt un problème de droit d'accès
    As-tu vérifié dans les paramètres de sécurité d'IE que ton intranet local avait le droit
    d'accéder au presse-papiers ?
    et quelle est la version de ta lib mshtml.dll ?
    (c'est elle qui expose l'objet "htmlfile")
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  2. #22
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Je prends peut-être le train en marche mais il me semble que jeter un coup d’œil sur cette discussion peut donner d'autres infos importantes, sait-on jamais !
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #23
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bon l' autodidacte
    le lien de cette discussion parle surtout de la manipulation du clipboard par le parentwindow de IE

    je n'ai pas de soucis pour vider ecrire ou lire mais c'est l'accumulation qui ne fonctionne pas chez moi

    exemple dans un vbs
    le clear clipboard avec wscriptshell et cmd.exe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    WshShell.Run "cmd.exe /c echo off " &" | clip", 0, TRUE
    dans un autre vbs
    écrire dans le clipboard toujours avec l'object script shell et cmd.exe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim string 
    String = "quelque chose dans le clipboard"
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    WshShell.Run "cmd.exe /c echo " & String & " | clip", 0, TRUE
    dans un autre vbs
    lecture du clipboard avec l'object ("htmlfile") et son parentwindow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim string 
    set clipo=createobject("htmlfile")
    string=clipo.ParentWindow.ClipboardData.GetData("Text")
    msgbox string
    ces 3 premiers fonctionnent parfaitement bien
    maintenant si je veux ajouter je fait un gettext(vbs N°3) avec l'object htmlfile puis ajoute au resultat puis remet avec les même ligne que vbs2
    et c'est la que ca ne fonctionne pas
    c'est un casse tète chinois
    voici le vbs pour ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim string 
    set clipo=createobject("htmlfile")
    'on ajoute "toto" au contenu du clipboard dans la variable string 
    string=clipo.ParentWindow.ClipboardData.GetData("Text") & "toto"
    ' on remet le tout dans le clipboard
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    WshShell.Run "cmd.exe /c echo " & String & " | clip", 0, false
    ' on re récupère le contenu pour verifier 
    string2=clipo.ParentWindow.ClipboardData.GetData("Text")
    msgbox string2
    c'est assez étonnant come phénomène non!!???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #24
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Si le problème se pose uniquement pour l'ajout d'un texte au contenu du presse-papiers, il suffit de modifier l'exemple d'utilisation(lien vers la discussion précitée) de la classe ClipBoardClass pour avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim ClipBoard, Result
        Set Clipboard = New ClipBoardClass
        ClipBoard.Clear  ' supprime le contenu préalable du presse-papiers
        ClipBoard.SaveData = "Bonjour tout le monde!"
        Result = ClipBoard.GetData
        msgbox Result
        ClipBoard.SaveData = ""
        Result = Result & vbNewLine & "Texte ajouté au clipboard"
        ClipBoard.SaveData = Result
        MsgBox ClipBoard.GetData
    qui fonctionne correctement.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #25
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonsoir l'autodidacte
    qui fonctionne correctement.
    ben non!! justement c'est cela mon soucis c'est que ca ne fonctionne pas ni en sub direct ni avec la classe vbs

    en unique oui mais en mode accumulation( a chaque lancement du vbs ) non!!!!

    c'est pour ca que je dis que c'est un casse tète chinois
    ca me rends fou ce truc c'est pas logique
    la logique est simple

    on prend le panier
    on compte le pommes
    on en ajoute une!!
    on remet le tout dans le panier
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #26
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    L'idée est de ne pas vider le presse-papiers ni d'y mettre quoi que ce soit avant de récupérer son contenu. C'était là l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim ClipBoard, Result
        Set Clipboard = New ClipBoardClass
        on error resume next ' au cas où le presse-papiers serait vide
        Result = ClipBoard.GetData
        msgbox Result
     
        Result = Result & vbNewLine & "Texte ajouté au contenu du clipboard"
        ClipBoard.SaveData = Result
        MsgBox ClipBoard.GetData
    A chaque fois qu'on lance le script, une ligne(contenant : 'Texte ajouté au contenu du clipboard') est ajoutée au contenu du presse-papiers
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  7. #27
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bon avec la classe comme tel ca fonctionne mais j'ai e message d'autorisation d'accès au clipboard
    c'est normal avec IE

    j'ai donc reproduit a l'identique avec l'object "htmlfile" et la ca ne marche plus
    code complet
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Dim ClipBoard, Result
        Set Clipboard = New ClipBoardClass
        on error resume next ' au cas où le presse-papiers serait vide
        Result = ClipBoard.GetData
        msgbox Result
     
        Result = Result & vbNewLine & "Texte ajouté au contenu du clipboard"
        ClipBoard.SaveData = Result
        MsgBox ClipBoard.GetData
    '======================================================================================
     Class ClipBoardClass
        'Private objIE
    Private  clipo
    '==================== 
        Public Property Get GetData()
        'GetData = objIE.Document.ParentWindow.ClipboardData.GetData("Text")
        GetData =clipo.ParentWindow.ClipboardData.GetData("Text")
       End Property
    '===================== 
        Public Property Let SaveData(Value)
        'objIE.Document.ParentWindow.ClipboardData.SetData "Text" , Value
       clipo.ParentWindow.ClipboardData.SetData "Text" , Value
         End Property
    '====================== 
        Public Sub Clear()
        'objIE.Document.ParentWindow.ClipboardData.ClearData()
        clipo.ParentWindow.ClipboardData.ClearData()
        End Sub
    '====================== 
        Private Sub Class_Initialize
       ' Set objIE = CreateObject("InternetExplorer.Application")
       set clipo=createobject("htmlfile")
    ' objIE.Navigate ("about:blank")
        End Sub
    '====================== 
        Private Sub Class_Terminate
        'objIE.Quit
        'Set objIE = Nothing
        Set clipo= Nothing
      End Sub
    '====================== 
     End Class
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #28
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    pour IE
    on resout le soucis comme sur la capture
    Nom : Capture.JPG
Affichages : 815
Taille : 161,9 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Récupérer des valeurs d'un objet sans passer par les boucles
    Par soucou dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 02/03/2013, 16h05
  2. [Prototype] Updater : récupérer tout le contenu du variable $_POST sans passer par parameters
    Par ilalaina dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 07/10/2009, 16h01
  3. Réponses: 6
    Dernier message: 20/11/2008, 15h55
  4. Réponses: 1
    Dernier message: 29/09/2007, 09h46
  5. Réponses: 12
    Dernier message: 10/06/2006, 19h07

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