[VBS et HTA] Utilisation du presse papier système (Clipboard)
Salut
Tout est dans le titre ;).
Cette démonstration fait suite à cette discussion Copier dans le presse papier le contenu d'un Select
L’essentiel est dans- Sub CopierPP(Objet)
Objet doit être le Name ou l’Id contenant le texte à copier dans le presse papier - Sub GoRecup_OnClick
C’est là ou on colle le contenu du presse, ici dans la boite portant le Name BoiteVisu - Sub GoVide_OnClick
Ici on vide le presse papier
Si d’entrée vous cliquer sur le bouton Visualiser le contenu texte du presse papier, vous obtiendrez le contenu texte de votre dernier copier, donc pas un des textes provenant des boites se trouvant sur la page du programme.
Dans le cadre du haut (bleu clair), le remplissage du presse papier se fait automatiquement par déclenchement de l’évènement OnChange.
Dans le cadre suivant (vert clair), vous devez déclencher l’événement remplissage du presse papier par un clique sur le bouton Copier (évènement onClick)
Dans le cadre suivant (jaune clair), le remplissage se produit a la suite de la sélection d’un fichier de la boite d’exploration (évènement OnChange).
Le
Code:
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| <HTML>
<HEAD>
<TITLE> Utilisation du presse papier système (Clipboard) </TITLE>
<HTA:APPLICATION
ApplicationName = "ClipBoardHTA"
Id="ClipBoardHTA"
>
</HEAD>
<SCRIPT language="VBScript" type="text/VBScript" >
' Déclarations utilisables dans toute la partie VBScript
dim MsG
'------------------------------------------------------------------------------------------------------------------
Sub Window_Onload()
ResizeTo 960,500
MoveTo (Screen.availWidth-960)/2,(Screen.availHeight - 500) / 2
End Sub
'------------------------------------------------------------------------------------------------------------------
Sub CopierPP(Objet)
'Copier du texte dans le presse papier
Dim U
'Initialise la variable a destination du presse papier
MsG = "Le dernier coller dans le presse papier a échoué"
'Si une erreur survient dans la récupération du texte de (Objet)
'on aurai l'information qu'il y a eu un problème.
'la récupération du texte est différente suivant le type de (objet)
Select Case Objet.type
'_____________ Liste à sélection multiple _____________
Case "select-multiple"
MsG = ""
For U = 0 to Objet.length - 1
If Objet(U).Selected Then
MsG = MsG & Objet(U).value & VBCrlf
End If
Next
'Supprime l'éventuel VBCrlf de fin de chaine
If MsG <> "" Then MsG = left(MsG, len(MsG) - len(VBCrlf))
'_______________________ Liste à sélection unique ou __________________________
'________________ boite texte sur une ligne ou multiligne ou __________________
'________________ boite texte mot de passe ou Explorateur _____________________
Case "select-one", "text", "textarea", "password", "file": MsG = Objet.Value
End Select
'Copie du contenu de la variable MsG dans le presse papier système
Call CreateObject("htmlfile").ParentWindow.ClipboardData.setData("text",MsG)
End Sub
'----------------------------------------------------------------------------------------------------------------------
Sub GoRecup_OnClick()
'Récupérer le contenu texte du presse papier
MsG = CreateObject("htmlfile").ParentWindow.clipboardData.Getdata("text")
If IsNull(MsG) = True then MsG = "Le presse papier est vide de texte"
BoiteVisu.value = MsG
End Sub
'----------------------------------------------------------------------------------------------------------------------
Sub GoVide_OnClick()
'Vider le contenu texte du presse papier
Call CreateObject("htmlfile").ParentWindow.clipboardData.ClearData("text")
End Sub
'----------------------------------------------------------------------------------------------------------------------
</SCRIPT>
<Body>
<Fieldset STYLE="background-color:#F4FFFF">
<legend STYLE="color:#000095"> Listes, votre sélection sera collé dans le presse papier </legend>
<span STYLE="color:blue"> <font size="2"> Liste à sélection unique </font> </span>
<SELECT name="LstChoix" onchange="CopierPP LstChoix">
<OPTION VALUE="Premier choix">Premier choix
<OPTION VALUE="Deuxième choix">Deuxième choix
<OPTION VALUE="Un autre encore">Un autre encore
<OPTION VALUE="Aller, le dernier choix">Aller, le dernier choix
</SELECT>
<span STYLE="color:blue"><font size="2"> Liste à sélection multiple (Ctrl + Click) </font></span>
<SELECT name="LstChoix2" onchange="CopierPP LstChoix2" SIZE=4 MULTIPLE>
<OPTION VALUE="Du multi-sélection">Du multi-sélection
<OPTION VALUE="c'est possible aussi">c'est possible aussi
<OPTION VALUE="de le mettre">de le mettre
<OPTION VALUE="dans le presse papier">dans le presse papier
</SELECT>
</Fieldset>
<BR>
<Fieldset STYLE="background-color:#D9FFBF">
<legend STYLE="color:#005400"> Boites de texte </legend>
<span STYLE="color:#009500"> <font size="2"> Une ligne </font> </span>
<INPUT Type="text" name="BoiteText">
<INPUT Type="button" name="BtCopier" value="Copier" onClick="CopierPP BoiteText">
<span STYLE="color:#009500"><font size="2"> Multi ligne </font></span>
<TEXTAREA name="BoiteText2"> </TEXTAREA>
<INPUT Type="button" name="BtCopier2" value="Copier" onClick="CopierPP BoiteText2">
<span STYLE="color:#009500"><font size="2"> Mot de passe </font> </span>
<INPUT Type="password" name="BoiteTextPass">
<INPUT Type="button" name="BtCopier3" value="Copier" onClick="CopierPP BoiteTextPass">
</Fieldset>
<BR>
<Fieldset STYLE="background-color:#FFFFB7">
<legend STYLE="color:#AF7600"> Explorateur </legend>
<INPUT Type="file" name="FileDoss" onchange="CopierPP FileDoss">
</Fieldset>
<BR> <BR>
<INPUT Type="button" name="GoRecup" value="Visualiser le contenu texte du presse papier">
<INPUT Type="button" name="GoVide" value="Vider le presse papier">
<BR>
<TEXTAREA name="BoiteVisu" style="border-style:solid; width:902px; height:110px"></TEXTAREA>
</Body>
</HTML> |