2

私はグーグルでほとんどどこでも検索しましたが、使用できるものは何も見つかりませんでした。現在のキャッシュを取得して文字列に保存する方法を知りたいです。この文字列は処理され、その後現在のキャッシュを置き換えます。

Windows での通常のコピー キャッシュ (CTRL + C) について話しています。

4

2 に答える 2

2

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;
}
于 2012-06-21T02:24:32.297 に答える
0

まず、コンソールアプリケーション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();
        }
    }
}
于 2012-06-21T02:48:57.693 に答える