2008-11-12 26 views
5

我試圖將文件和文本中的圖像從文件複製到剪貼板。我的意圖是打開Word文檔或Outlook電子郵件,並將文本和圖像粘貼到一個標準粘貼命令(例如CTRL-V)中。我可以很容易地將兩者分開,但在一次操作中完成它們似乎不起作用。如何將圖像和文本作爲一個對象複製到剪貼板?

這是怎麼了,我得到了兩個工作作爲單獨的操作(當然只是相關的代碼行,用的try/catch剝離出來等):

添加圖片到剪貼板:

.. 。

Bitmap imageToAdd = new Bitmap(imageFilePath); 
Clipboard.SetImage(imageToAdd); 

...

添加文本到剪貼板:

...

StreamReader rdr = new StreamReader(textFilePath); 
string text = rdr.ReadToEnd(); 

Clipboard.SetText(text); 

...

我使用C#和.NET 2.0框架和(在不久的將來很可能和Vista)的針對Windows XP。

TIA

回答

1

我發現只有一個對象可以被傳遞

在這種情況下,當用戶按下命令來粘貼,你的代碼可以執行兩個功能,或者遞歸地遞歸一個函數,並且每次獲取所需的數據並粘貼進去。

所以,看看循環或遞歸。

1

也許你可以使用SetDataObject這需要一個對象參數,你可以使用一個對象數組?

對象數組可以容納您所需的數據。

請參閱此鏈接:

http://msdn.microsoft.com/en-us/library/5b8kt5z4.aspx

+0

像Outlook或MS Word這樣的程序能夠理解如果我用數組來做這件事情的話,它們能夠顯示兩個對象嗎?我需要能夠打開任何程序,只需按下CTRL-V即可同時粘貼兩個對象。 – 2008-11-13 16:54:33

4

您可以使用RTF,它可以結合文本和圖形。請注意,您可以同時在剪貼板上使用CF_BITMAP和CF_TEXT。但它沒用。當你粘貼到記事本中時,你會得到文本,當你粘貼到Paint中時你會得到位圖,而大多數其他應用程序會選擇其中一個,但從來都不是。所以這只是學術。整潔的方式,在星際迷航運輸機故障是整潔。但也凌亂。

+1

這是這個問題的正確答案。要麼你應該使用RTF或使用MS Office的內部剪貼板格式,我不知道它是否被記錄。即使Microsoft使用RTF作爲在[HERE](http://support.microsoft.com/kb/216676)中粘貼表的示例。 – Hossein 2013-05-03 17:59:11