Frage

Ich mag HTML-Format schreiben, aber ich kann nicht einmal ein einfaches MSDN Beispiel dafür zu arbeiten.

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

Ist diese Konsole App, die eine Zwischenablage Runde Tripper, Arbeit für alle?

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();
    }
}
War es hilfreich?

Lösung

Wenn Sie Daten aus einem Browser in der Zwischenablage zu kopieren, legen sie die gleichen Daten in der Zwischenablage in mehreren Formaten, sowohl mit Text und HTML. So können Sie die Daten zurückgelesen aus in Text- oder HTML-Format. Wenn Sie jedoch SetText hier nennen, sind Sie vorbei NUR im HTML-Format, so dass, wenn Sie den regulären GetText verwenden, gibt es keine Textversion in der Zwischenablage und Sie erhalten null zurück.

Sie können mehrere Formate in der Zwischenablage stellen (das heißt, sowohl Text als auch HTML) unter Verwendung von IDataObject, aber Sie haben die Übersetzung zwischen den Formaten selbst zu tun, bevor Sie die Daten in der Zwischenablage gestellt. Es gibt ein Beispiel dafür, wie IDataObject verwenden hier .

Andere Tipps

Ich kann reproduzieren, dass es nicht funktioniert ... die var text2 = Clipboard.GetText(); kehrt "" jedes Mal ...

(edit) Eine schnelle Suche Ausbeuten dieser , das scheint beim Thema.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top