문제

HTML 형식을 작성하고 싶지만 작동하는 간단한 MSDN 예제조차 얻을 수 없습니다.

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

클립 보드 왕복 트립퍼 인이 콘솔 앱이 누구에게나 효과가 있습니까?

using System;
using System.Windows; //Need to add a PresentationCore or System.Windows.Forms reference

class Program {
    [STAThread]
    static void Main( string[] args ) {
        Console.WriteLine( "Copy a small amount of text from a browser, then press enter." );
        Console.ReadLine();

        var text = Clipboard.GetText();
        Console.WriteLine();
        Console.WriteLine( "--->The clipboard as Text:" );
        Console.WriteLine( text );

        Console.WriteLine();
        Console.WriteLine( "--->Rewriting clipboard with the same CF_HTML data." );
        //***Here is the problem code***
        var html = Clipboard.GetText( TextDataFormat.Html );
        Clipboard.Clear();
        Clipboard.SetText( html, TextDataFormat.Html );

        var text2 = Clipboard.GetText();
        Console.WriteLine();
        Console.WriteLine( "--->The clipboard as Text:" );
        Console.WriteLine( text2 );

        var isSameText = ( text == text2 );
        Console.WriteLine();
        Console.WriteLine( isSameText ? "Success" : "Failure" );

        Console.WriteLine();
        Console.WriteLine( "Press enter to exit." );
        Console.ReadLine();
    }
}
도움이 되었습니까?

해결책

브라우저에서 데이터를 클립 보드에 복사하면 텍스트와 HTML을 포함하여 동일한 데이터를 여러 형식으로 클립 보드에 넣습니다. 따라서 데이터를 텍스트 또는 HTML 형식으로 다시 읽을 수 있습니다. 그러나 여기에서 setText를 호출 할 때 HTML 형식으로 만 통과하므로 일반 getText를 사용하면 클립 보드에 텍스트 버전이없고 다시 널 뒤로 얻습니다.

IdataObject를 사용하여 한 번에 클립 보드에 여러 형식을 한 번에 클립 보드에 넣을 수 있지만 클립 보드에 데이터를 넣기 전에 형식간에 번역을 수행해야합니다. IdataObject를 사용하는 방법의 예가 있습니다 여기.

다른 팁

나는 그것이 작동하지 않는다는 것을 재현 할 수 있습니다 ... var text2 = Clipboard.GetText(); 보고 "" 매번 ...

(편집) 빠른 검색 수율 이것, 주제에 보이는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top