私はグーグルでほとんどどこでも検索しましたが、使用できるものは何も見つかりませんでした。現在のキャッシュを取得して文字列に保存する方法を知りたいです。この文字列は処理され、その後現在のキャッシュを置き換えます。
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]属性をメインに追加する必要があります。そうしないと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();
}
}
}