WDForge - Forum

Le forum des développeurs professionnels WinDev ®

Coller une piece jointe Outlook 2010

Discussion sur WinDev®

Message non lupar francisd » Jeu 3 Mai 2018 13:54

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
francisd
Stagiaire WDF
 
Messages: 1
Enregistré le: Jeu 3 Mai 2018 13:48

Retourner vers WinDev

cron