|
Coller une piece jointe Outlook 2010 |
Débuté par Francis, 03 mai 2018 14:40 - 4 réponses |
| |
| | | |
|
| |
Membre enregistré 18 messages |
|
Posté le 03 mai 2018 - 14:40 |
Bonjour, Je cherche a enregistrer sur disque dur, des pièces jointes copiées a partir d'un mail d'outlook
En gros a partir d'un message d'outlook je fais "copier" sur une pièce jointe, je vais sur mon application, je clique sur un bouton et la pièces jointe se retrouve sur le disque dur.
Le presse papier classique ne contient pas d'info sur cela
Sur un autre forum j'ai trouvé un bout de code qui est sensé le faire mais je n'arrive pas a comprendre comment le convertir en WLangage
Pourriez vous, s'il vous plait éclairer ma lanterne ? Il y a peut être un autre moyen
Merci d'avance
Voici le code en question
Windows stores the data IN 2 separate Clipboard-stuctures: The data: "FileContents" The Filename(s): "FileGroupDescriptor"
The coding is identical to the Drag AND Drop FUNCTION. The only difference is, that in one case you find the data in the Drag-Event-parameter e (e.Data), IN the OTHER CASE the data is stored IN the Clipboard object.
The resulting coding is as follows:
IF Clipboard.ContainsData("FileGroupDescriptor") THEN 'Get the Filename: Dim theStream As System.IO.Stream = DirectCast(Clipboard.GetData("FileGroupDescriptor"), System.IO.Stream) Dim fileGroupDescriptor As byte() = new byte(511) {} theStream.Read(fileGroupDescriptor, 0, 512) Dim fileName As new System.Text.StringBuilder("") Dim i As Integer i = 76 WHILE fileGroupDescriptor(i) <> 0 fileName.Append(Convert.ToChar(fileGroupDescriptor(i))) i += 1 END WHILE theStream.Close() Dim theFile As string = "C:\Temp\DragAndDrop\" + fileName.ToString() 'Get the data AND save it to À file: Dim ms As System.IO.MemoryStream = DirectCast(Clipboard.GetData("FileContents"), System.IO.MemoryStream) Dim fileBytes As byte() = new byte(ms.Length - 1) {} ms.Position = 0 ms.Read(fileBytes, 0, CInt(ms.Length)) Dim fs As new System.IO.FileStream(theFile, System.IO.FileMode.Create) fs.Write(fileBytes, 0, CInt(fileBytes.Length)) fs.Close() END IF
Cordialement |
| |
| |
| | | |
|
| | |
| |
Posté le 02 juillet 2019 - 13:55 |
Bonjour,
Je pense que depuis, soit tu as trouvé la solution soit tu es passé à autre chose.
Je suis confronté au même besoin et ton post m'a mis sur la piste. Ce n'est pas parfait mais je joint la solution si ça peut en aider d'autre.
hwndObjet est un entier = 0 nTailleBuffer est un entier = 0 nClipBoardFormat est un entier = 0 sFormatName est une chaîne = "" sFichierCopier est une chaîne = "" bufBuffer est un Buffer sur 10 000 000
AppelDLL32("user32", "OpenClipboard",0)
nClipBoardFormat = AppelDLL32("user32", "EnumClipboardFormats",nClipBoardFormat)
TANTQUE nClipBoardFormat <> 0 nTailleBuffer = AppelDLL32("user32", "GetClipboardFormatNameA",nClipBoardFormat,&bufBuffer,255) sFormatName = Tronque(bufBuffer,nTailleBuffer)
SELON sFormatName CAS "FileGroupDescriptor" hwndObjet = AppelDLL32("user32", "GetClipboardData",nClipBoardFormat) SI hwndObjet <> 0 ALORS nTailleBuffer = AppelDLL32("kernel32","GlobalSize",hwndObjet)
Transfert(&bufBuffer, hwndObjet, nTailleBuffer) sFichierCopier = Tronque(bufBuffer,nTailleBuffer) sFichierCopier = Remplace(sFichierCopier,Caract(0),"") sFichierCopier = Remplace(sFichierCopier,Caract(1),"") FIN CAS "FileContents" hwndObjet = AppelDLL32("user32", "GetClipboardData",nClipBoardFormat) SI hwndObjet <> 0 ALORS nTailleBuffer = AppelDLL32("kernel32","GlobalSize",hwndObjet) Transfert(&bufBuffer, hwndObjet, nTailleBuffer) sFichierCopier = fRépertoireTemp() +[fSep()]+ sFichierCopier fSauveBuffer(sFichierCopier,Tronque(bufBuffer,nTailleBuffer)) SINON sFichierCopier = "" FIN FIN nClipBoardFormat = AppelDLL32("user32", "EnumClipboardFormats",nClipBoardFormat) FIN
AppelDLL32("user32", "CloseClipboard")
SI sFichierCopier <> "" ALORS LanceAppliAssociée(sFichierCopier) |
| |
| |
| | | |
|
| | |
| |
Posté le 29 septembre 2020 - 08:42 |
Exactement ce que je cherchais. Le code fonctionne parfaitement. Merci! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 121 messages Popularité : +3 (3 votes) |
|
Posté le 26 octobre 2020 - 16:16 |
Bonjour, C'est bien ça merci, est-ce que ca pourrait fonctionner en glisser déplacer? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 129 messages Popularité : +20 (20 votes) |
|
Posté le 27 octobre 2020 - 13:00 |
| |
| |
| | | |
|
| | | | |
| | |
|