2008-11-12 10 views
5

Ich versuche, ein Bild aus einer Datei und Text aus einer Datei in die Zwischenablage zu kopieren. Ich möchte dann ein Word-Dokument oder eine Outlook-E-Mail öffnen und sowohl den Text als auch das Bild in einen Standard-Einfügebefehl einfügen (z. B. STRG-V). Ich kann beides leicht genug machen, aber es scheint nicht zu funktionieren, beides in einem Arbeitsgang zu tun.Wie kopiere ich ein Bild und Text als ein Objekt in die Zwischenablage?

Dies ist, wie ich die beide arbeiten als getrennte Operationen habe (nur relevante Codezeilen natürlich mit Try/Catch usw. zu):

Bild In der Zwischenablage kopieren:

.. .

Bitmap imageToAdd = new Bitmap(imageFilePath); 
Clipboard.SetImage(imageToAdd); 

...

Text In die Zwischenablage kopieren:

...

StreamReader rdr = new StreamReader(textFilePath); 
string text = rdr.ReadToEnd(); 

Clipboard.SetText(text); 

...

I C# und .NET 2.0 Framework und Targeting Windows XP bin mit (und wahrscheinlich Vista in naher Zukunft).

TIA

Antwort

1

Ich bemerkte nur ein Objekt in weitergegeben werden

In diesem Fall, wenn der Benutzer den Befehl drückt einzufügen, Ihren Code zwei Funktionen ausführen kann oder eine Funktion rekursiv, und jedes Mal erhalten Sie die gewünschten Daten und fügen Sie es ein.

Also, schau auf Schleifen oder Rekursion.

1

Vielleicht könnten Sie SetDataObject verwenden, die einen Objektparameter erfordert, können Sie ein Objekt-Array verwenden?

Das Objekt-Array könnte Ihre erforderlichen Daten enthalten.

Siehe diesen Link:.

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

+0

Wird ein Programm wie Outlook oder MS Word beide Objekte anzeigen, wenn ich es mit einem Array mache? Ich muss in der Lage sein, welches Programm auch immer zu öffnen und einfach STRG-V drücken, um beide Objekte gleichzeitig einzufügen. –

4

Sie könnten RTF verwenden, das Text und Grafiken kombinieren könnte. Beachten Sie, dass Sie gleichzeitig CF_BITMAP und CF_TEXT in der Zwischenablage haben können. Aber es ist nicht nützlich. Sie würden den Text beim Einfügen in Notepad erhalten, Sie würden die Bitmap erhalten, wenn Sie in Paint einfügen, und die meisten anderen Apps würden das eine oder das andere auswählen, aber nie beides. Es ist also nur akademisch. Ein bisschen ordentlich, in der Art, wie Transporter Fehlfunktionen bei Star Trek hatten, waren ordentlich. Aber auch unordentlich.

+1

Dies ist die richtige Antwort auf diese Frage. Entweder sollten Sie RTF verwenden oder das interne Zwischenablageformat von MS Office verwenden und ich weiß nicht, ob es dokumentiert ist. Auch Microsoft verwendet RTF für ein Beispiel zum Einfügen einer Tabelle in [HIER] (http://support.microsoft.com/kb/216676). – Hossein