VBSCRIPT - CLASSE CLIPBOARD

cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 - 20 juil. 2006 à 21:46
monkeyvb78 Messages postés 1 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 21 mars 2011 - 21 mars 2011 à 20:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34721-vbscript-classe-clipboard

monkeyvb78 Messages postés 1 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 21 mars 2011
21 mars 2011 à 20:41
Il est aussi possible de passer par une ligne de commande (testé sous Vista):

'rep contient la chaine à copier
WshShell.Run "cmd.exe /C echo " & rep & "| clip", 0, TRUE
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2010 à 15:36
possible que cela vienne de là, effectivement
stubbyone2 Messages postés 12 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 15 octobre 2008
29 juin 2010 à 15:04
Bonjour à tous!
Ton script fonctionne très bien sur XP SP3 mais sur Windows Server 2003 R2 :-( non!
Avez vous une idée de pourquoi? je sais que sur win server l'internet bloque certaines choses mais je ne trouve rien.
Merci d'avance

Stubbyone
cs_Corvvin Messages postés 14 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 16 août 2009
23 mai 2009 à 13:10
Le peu de solutions alternatives proposées maintient, à mon avis, ce sujet dans l'actualité.

Le script source fonctionne très bien sous Windows XP SP2. J'ai constaté qu'il était plus rapide lorsque IE est fermé (raison de plus pour utiliser Firefox comme navigateur [wink]).

En revanche, la solution de l'ami Antho, pour séduisante qu'elle soit, peut provoquer à peu près... n'importe quoi sur votre ordinateur ! Gare !

Avec le même principe, en remplaçant Notepad par Charmap... et VBS par Super-Macro on obtient quelque chose à priori sans danger, et assez rapide (à défaut d'être très élégant).
guilhemmartincpp Messages postés 25 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 9 janvier 2008
12 sept. 2007 à 14:06
Ok thanks.
Si je trouve "plus universel", je reposterai ici.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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
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 74
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...
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
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
Rejoignez-nous