Vbscript - classe clipboard

Soyez le premier à donner votre avis sur cette source.

Vue 22 029 fois - Téléchargée 587 fois

Description

Pas simple de copier/Coller dans VbScript ??

Cette classe va vous y aider..... vous verrez au passage comment déclarer une classe en VbScript ^^

Source / Exemple :


Class cClipBoard
    Private objIE
    
    Public Property Get Data()
        Data = objIE.Document.ParentWindow.ClipboardData.GetData("Text")
    End Property
    
    Public Property Let Data ( Value )
        objIE.Document.ParentWindow.ClipboardData.SetData "Text" , Value
    End Property
    
    Public Sub Clear()
        objIE.Document.ParentWindow.ClipboardData.ClearData()
    End Sub
    
    Private Sub Class_Initialize
        Set objIE = CreateObject("InternetExplorer.Application") 
        objIE.Navigate ("about:blank") 
    End Sub
    
    Private Sub Class_Terminate
        objIE.Quit
        Set objIE = Nothing
    End Sub
End Class

Dim ClipBoard 
Set Clipboard = New cClipBoard

ClipBoard.Clear
ClipBoard.Data = "Hello VbFrance !!"
MsgBox ClipBoard.Data

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
20 juil. 2006 à 21:46
Salut,

pour faire copier on peut tout simplent faire :

Set variable=CreateObject("WScript.Shell") 'defini la variable variable
variable.Run("notepad") 'ouvre le bloc note
wscript.sleep 150 'attend 150 millisecondes que le programme s'ouvre
montexte = "Mon texte à copier" 'rentrez votre texte
variable.SendKeys (montexte) 'marque le texte dans la fenetre active (normalement le bloc note)
longueur = len(montexte) 'defini la longueur de la chaine
For i 1 to longueur 'i de 1 a la longueur de la chaine
variable.SendKeys ("+{left}") 'fait maj + fleche gauche (donc selectionner) tant qu'il y a des lettres dans la chaine
Next 'fin de la boucle
variable.SendKeys ("^c") 'fait ctrl + c (donc copier) sur le texte selectionné
variable.SendKeys ("%{F4}") 'ferme le bloc note
'Et voilà votre texte est copié.

et pour coller :

Set variable=CreateObject("WScript.Shell") 'defini la variable variable
variable.Run("notepad") 'ouvre le bloc note
wscript.sleep 150 'attend 150 millisecondes que le programme s'ouvre
variable.SendKeys ("Le texte est : " & chr(34)) 'Marque Votre texte copié est : "
variable.SendKeys ("^v") 'fait ctrl + v (donc coller) à la suite du texte
variable.SendKeys (chr(34)) 'ferme les guillemets
'Et voilà vous avez le bloc note ouvert avec marqué : 'Votre texte copié est : "Mon texte à copier" ' par exemple
cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
20 juil. 2006 à 21:56
j'ai oublié pour copier apres la ligne variable.SendKeys ("%{F4}") il faut mettre : variable.SendKeys ("{right}{enter}") 'pour faire ne pas enregistrer

on pourrais aussi mettre : variable.SendKeys ("+n") ' = maj + n

@+

Antho2005
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
27 juil. 2006 à 09:00
piloter la chose par des SendKeys est franchement risqué...

rien ne certifie que NotePad va bien conserver le Focus

de plus, le wscript.sleep 150
ne nous garantit absolument rien...
guilhemmartincpp Messages postés 25 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 9 janvier 2008
4 sept. 2007 à 22:08
Sympa la source !
On est obligé de passer par l'objet IE cependant pour utiliser le presse-papier ?
Sous Vista (pas testé sous XP), ça provoque du coup la boîte de dialogue "Voulez-vous autoriser l'accès de cette page web au presse papier ?".
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 sept. 2007 à 07:10
doit y avoir quelques autres facons de faire, comme de piloter Office, mais ca risuqe de declencher le même genre d'alertes, a voir...

disons qu'avec IE, on est plus sur que c'est sur le poste

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.