2008-11-12 14 views
5

Próbuję skopiować zarówno obraz z pliku, jak i tekst z pliku do schowka. Moim zamiarem jest wówczas otwarcie dokumentu programu Word lub wiadomości e-mail programu Outlook i wklejenie tekstu i obrazu w jednym standardowym poleceniu wklejania (na przykład CTRL-V). Potrafię wykonać oba osobno z łatwością, ale wykonanie ich w jednej operacji nie działa.Jak skopiować obraz i tekst do schowka jako jeden obiekt?

ten sposób Mam dwa działa jako osobne operacje (tylko odpowiednich linii kodu oczywiście z try/catch okorowane etc.):

dodaj do schowka:

.. .

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

...

dodać tekst do schowka:

...

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

Clipboard.SetText(text); 

...

Używam C# i .NET 2.0 ramy i ukierunkowanie systemu Windows XP (i prawdopodobny Vista w niedalekiej przyszłości).

TIA

Odpowiedz

1

zauważyłem tylko obiekt może być przekazywane w

W takim przypadku, gdy użytkownik naciśnie polecenie Wklej, kod może wykonywać dwie funkcje lub jedna funkcja rekursywnie, i za każdym razem otrzymuj żądane dane i wklej je.

Spójrz więc na pętle lub rekurencję.

1

Być może można użyć SetDataObject która wymaga parametru obiektu, można użyć tablicę obiektów?

Tablica obiektów może pomieścić wymagane dane.

Zobacz ten link:.

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

+0

Czy program taki jak Outlook lub MS Word zrozumie, że wyświetla oba obiekty, jeśli robię to za pomocą tablicy? Będę musiał otworzyć dowolny program i po prostu wcisnąć CTRL-V, aby wkleić oba obiekty naraz. –

4

Można użyć formatu RTF, który może łączyć tekst i grafikę. Zauważ, że możesz mieć jednocześnie CF_BITMAP i CF_TEXT w schowku. Ale to nie jest przydatne. Dostaniesz tekst po wklejeniu do notatnika, otrzymasz bitmapę po wklejeniu do Paint, a większość innych aplikacji wybierze jedną lub drugą, ale nigdy obie. Jest to po prostu akademickie. Trochę schludne, w taki sposób, że transporter źle funkcjonuje w Star Treku. Ale także niechlujny.

+1

To jest poprawna odpowiedź na to pytanie. Powinieneś użyć formatu RTF lub użyć wewnętrznego schowka MS Office i nie wiem, czy jest to udokumentowane. Nawet Microsoft używa RTF na przykład wklejenia tabeli w [TUTAJ] (http://support.microsoft.com/kb/216676). – Hossein

Powiązane problemy