我在Google上搜索的地方非常多,但是我沒有找到任何可用的東西。我想知道如何獲取當前的緩存並將其保存在字符串中。這個字符串將被處理,然後替換當前的緩存。獲取,更改和更新複製緩存
我正在談論Windows上的普通副本緩存(CTRL + C)。
我在Google上搜索的地方非常多,但是我沒有找到任何可用的東西。我想知道如何獲取當前的緩存並將其保存在字符串中。這個字符串將被處理,然後替換當前的緩存。獲取,更改和更新複製緩存
我正在談論Windows上的普通副本緩存(CTRL + C)。
使用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;
}
首先在控制檯應用程序中添加引用窗口。那麼你應該可以添加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();
}
}
}
我正在使用控制檯應用程序,我無法添加System.Windows.Forms到:/ – HitomiTenshi
爲什麼不?只需添加一個對System.Windows.Forms的引用。 – JonWarnerNet
這就是問題所在。我無法將'使用System.Windows.Forms'添加到控制檯應用程序... – HitomiTenshi