@ClickOne
כמובן, בסוף זה היה FileContents, למרות שזה לא עבד לי בהתחלה ואני לא מבין למה 😞
הנה הקוד להדבקת קובץ מRDP (שימו לב שזה לא עובד בהדבקה מקומית, וצריך לבדוק אם יש קבצים בFileDrop) :
Dim data As IDataObject = Clipboard.GetDataObject
If data.GetDataPresent("FileContents", True) Then
Dim newFile As String = Path.Combine("c:\", "a.Pdf")
Dim memoryStream As MemoryStream = data.GetData("FileContents")
' Create a FileStream object to write a stream to a file
Using fileStream As FileStream = System.IO.File.Create(newFile, CInt(memoryStream.Length))
' Fill the bytes[] array with the stream data
Dim bytesInStream As Byte() = New Byte(memoryStream.Length - 1) {}
memoryStream.Read(bytesInStream, 0, CInt(bytesInStream.Length))
' Use FileStream object to write to the specified file
fileStream.Write(bytesInStream, 0, bytesInStream.Length)
End Using
End If
עכשיו נשאר לראות אם אפשר להמיר לVBA, או שצריך להשתמש בInterop
נאלצתי להסיר את הV שמסמן שהנושא נפתר.
כמו שדוד התלונן, הוא נתקע לפעמים בזיכרון על הקובץ המסויים שהעתקתי.
יש פעמים שהוא בכלל לא מזהה שיש משהו בקליפבורד, כאשר יש בבירור, (הראייה שלי שיש זה שהאקספלורר כן נדביק את הקובץ הנכון)
אני מחפש בינתיים אפשרות להדביק את הקובץ ע"י פקודת הדבק בCMD (בלינוקס אני זוכר שיש פקודה דומה - אבל בווינדוס לא מצאתי עדיין.)
פורסם במקור בפורום CODE613 ב10/08/2014 23:32 (+03:00)