我在谷歌上搜索了几乎所有地方,但我没有找到任何有用的东西。我想知道如何获取当前缓存并将其保存在字符串中。该字符串将得到处理,然后替换当前缓存。
我说的是我们在 Windows 上的普通副本缓存 (CTRL + C)。
使用 System.Windows.Forms.Clipboard.GetText()
http://msdn.microsoft.com/en-us/library/kz40084e.aspx
来自 MSDN 的示例:
// 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;
}
首先在您的控制台应用程序中System.Windows.Forms.dll
通过解决方案资源管理器窗口添加对的引用。然后你应该可以添加using System.Windows.Forms
.
这是一些从控制台应用程序中读取剪贴板文本的示例代码(重要:您需要将 [STAThread] 属性添加到 Main 中,如下所示;否则会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();
}
}
}