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