Copier image du presse papier [Résolu]

Signaler
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
-
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
-
Bonjour à tous ,

Voilà je possède une image contenu dans mon presse papier. Je souhaiterai récupérer le contenu afin de la coller dans un fichier (image donc), cependant je ne parviens à récupérer ce contenu (à noter que si j'ouvre paint et que je fais un coller, elle se colle bien).

Je tiens à préciser aussi que c'est une appli locale, qui fonctionne en activeX (ie) et donc que j'ai tous les droits d'accès (je créé le fichier, c'est vraiment la récupération du contenu qui bloque).

Voici ma ligne qui récupère ce contenu :


var data = clipboardData.getData('Text');


si quelqu'un a une piste ... merci d'avance car la je bloque.

naga

3 réponses

Messages postés
30146
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2020
338
Bonjour,

GetData n'autorise QUE le text...


getData method

Gets the data in the specified format from the clipboard through the dataTransfer object or the clipboardData object.
Syntax : object.getData(format)

Parameters :

format [in] Type: String
A String that specifies one of the following data format values.
Text
Gets data formatted as text.
URL
Gets data formatted as a URL.



Il faudra trouver autre chose pour les images.
par exemple :
http://codebits.glennjones.net/copypaste/pasteimagedata.htm
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16
salut,

Merci, mais je ne parviens pas à récupérer l'objet en fait, et l'event n'existe pas sous ie ... en fait je pense qu'il faudrai que je me tourne vers un composant activx mais je ne vois pas lequel, je patauge un peu ...

naga
Messages postés
30146
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2020
338
Quelle version d' IE .. ça a son importance je pense...
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16
c'est la version 10 mais non sur le coup ca n'a pas d'importance vu que je ne vais qu'un appel externe (c'est donc l'objet en lui même qui importe ... donc il faut que je précise que je suis en net 4.5 ^^). Je suis en train de pencher sur la classe System.Windows.Clipboard , mais si d'autres pistes je suis preneur. merci.
Messages postés
30146
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2020
338
Je ne comprend pas trop...
tu dis être en DOT.net 4.5 ... alors pourquoi ne pas utiliser les fonctions du press-papier du dot.net directement ??
=> Sachant que tu peux piloter ton navigateur depuis le dot.net ... pourquoi vouloir passer par du javascript ?


Je suis en train de pencher sur la classe System.Windows.Clipboard

Et pour l'utilisation du clipboard :
http://msdn.microsoft.com/fr-fr/library/system.windows.clipboard.getimage%28v=vs.110%29.aspx
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16
non ce que je dis c'est que je veux utiliser un composant .net. Je suis à jours sur mes framewordk (je le dis simplement pour préciser). Le soucis que je rencontre c'est je m'appuie sur un composant particulier qui ne me permet pas de l'utiliser .net (même via le webBrowser, ce que je ne comprends pas mais c'est le cas).

Donc, mon composant remplissant le presse papier par l'image décrypté, la question est donc de comment copier ce contenu dans un fichier. Mon problème se situe au niveau de la lecture du presse-papier (pour une image donc). L'idée étant de m'appuyer sur un objet extérieur afin de le faire MAIS je ne trouve pas la manière de procéder afin de créer cet objet.

naga

PS : je cherche justement à inclure l'objet pour acceder à getImage depuis le javascript
Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16
Alors voici la solution que j'ai mise en place :

classe c# :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;

namespace ClipboardPasteImage
{
[Guid("C503138B-C771-40A3-804B-4A702F8C9D50"), ProgId("ClipboardPasteImage.pasteImageObject")]
public class pasteImageObject
{
public void getimg(string fileName)
{
System.Drawing.Image im = Clipboard.GetImage();
im.Save(fileName);
}

}
}



code html/js


<html>
<head>
<script>
var fso = null;
var netplug = null;
function toImage(destFile)
{
if(netplug == null) netplug = document.getElementById("netobj");
var data = netplug.getimg(destFile);
}
function getExtension(filename)
{
var parts = filename.split(".");
return (parts[(parts.length-1)]);
}
function LoadImage()
{
var strFileName = document.getElementById("fic").value;
var destFile = strFileName.substr(0, strFileName.lastIndexOf(".")) + ".png";
var imgplug = document.getElementById('imageplugin');
imgplug.IMAGE_URL = strFileName;
imgplug.CopyToClipboard();
toImage(destFile);
}
</script>
</head>
<body >
Fichier: <input type="text" id="fic" name="fic" /><br />
<input type="button" onclick="LoadImage();" value="Charger"/>
<object id='imageplugin' classid="CLSID:00000000-0000-0000-0000-000000000000" width='100%' height='500px'>
<param name="FM" value="98304">
</object>
<object id='netobj' classid="CLSID:C503138B-C771-40A3-804B-4A702F8C9D50" width='100%' height='500px'></object>
</body>
</html>



je m'appuie donc sur mon objet afin de sauvegarder l'image du presse papier.
A noter que le plugin "imageplugin" provient d'un tiers, que je n'ai pas la source, et qu'il a pour rôle d'afficher une image crypté dans la balise d'objet correspondant à mon objet js (imgplug)

naga