Pergunta

Eu quero escrever formato HTML, mas não posso mesmo começar um exemplo simples MSDN dela ao trabalho.

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

Será que este aplicativo console, um tripper rodada área de transferência, o trabalho para qualquer um?

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();
    }
}
Foi útil?

Solução

Quando você copiar dados de um navegador na área de transferência, ele coloca os mesmos dados na área de transferência em vários formatos, incluindo texto e HTML. Assim, você pode ler os dados de volta para fora no formato texto ou HTML. No entanto, quando você chamar SetText aqui, você está apenas passando em formato HTML, de modo que quando você usa o GetText regular, não há nenhuma versão de texto na área de transferência e você voltar nulo.

Você pode colocar vários formatos na área de transferência de uma vez (ou seja, texto e HTML) usando IDataObject, mas você tem que fazer a tradução entre os formatos de si mesmo antes de colocar os dados na área de transferência. Há um exemplo de como usar IDataObject aqui .

Outras dicas

Eu posso reproduzir esse não trabalho ... os var text2 = Clipboard.GetText(); retornos "" cada vez ...

(edit) Um rápido rendimentos de busca este , que parece no tópico.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top