Copier image du presse papier

Résolu
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 23 oct. 2014 à 09:33
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 23 oct. 2014 à 14:19
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
23 oct. 2014 à 09:48
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
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
23 oct. 2014 à 10:20
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
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
23 oct. 2014 à 10:47
Quelle version d' IE .. ça a son importance je pense...
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
23 oct. 2014 à 11:30
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.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
23 oct. 2014 à 12:03
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
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
Modifié par nagashima le 23/10/2014 à 12:54
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
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
23 oct. 2014 à 14:19
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
0
Rejoignez-nous