2012-06-21 57 views
2

我在Google上搜索的地方非常多,但是我沒有找到任何可用的東西。我想知道如何獲取當前的緩存並將其保存在字符串中。這個字符串將被處理,然後替換當前的緩存。獲取,更改和更新複製緩存

我正在談論Windows上的普通副本緩存(CTRL + C)。

回答

2

使用System.Windows.Forms.Clipboard.GetText()從MSDN

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

實例:通過解決方案資源管理System.Windows.Forms.dll

// Demonstrates SetText, ContainsText, and GetText. 
public String SwapClipboardHtmlText(String replacementHtmlText) 
{ 
    String returnHtmlText = null; 
    if (Clipboard.ContainsText(TextDataFormat.Html)) 
    { 
     returnHtmlText = Clipboard.GetText(TextDataFormat.Html); 
     Clipboard.SetText(replacementHtmlText, TextDataFormat.Html); 
    } 
    return returnHtmlText; 
} 
+0

我正在使用控制檯應用程序,我無法添加System.Windows.Forms到:/ – HitomiTenshi

+1

爲什麼不?只需添加一個對System.Windows.Forms的引用。 – JonWarnerNet

+0

這就是問題所在。我無法將'使用System.Windows.Forms'添加到控制檯應用程序... – HitomiTenshi

0

首先在控制檯應用程序中添加引用窗口。那麼你應該可以添加using System.Windows.Forms

下面是一些示例代碼從您的控制檯應用程序讀取剪貼板中的文本(重要:您所需要的[STAThread]屬性添加到您的主要如下圖所示;否則就會拋出一個ThreadStateException

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace SampleConsole 
{ 
    class Program 
    { 
     [STAThread] 
     static void Main(string[] args) 
     { 
      if (Clipboard.ContainsText(TextDataFormat.Text)) 
      { 
       string clipBoardText = Clipboard.GetText(TextDataFormat.Text); 
       Console.WriteLine("TEXT in ClipBoard : " + clipBoardText); 

       Console.WriteLine("Type text to replace (and press Enter key) :"); 
       string replaceText = Console.ReadLine(); 
       Clipboard.SetText(replaceText); 
       Console.WriteLine("REPLACED ClipBoard Text : " + Clipboard.GetText(TextDataFormat.Text));    
      } 
      else 
      { 
       Console.WriteLine("No text in clipboard, please type now (and press Enter key) :"); 
       string newText = Console.ReadLine(); 
       Clipboard.SetText(newText); 
       Console.WriteLine("NEW ClipBoard Text : " + Clipboard.GetText(TextDataFormat.Text));  
      } 

      Console.Read(); 
     } 
    } 
}