Autor Thema: Markierten Text in Zwischenablage kopieren  (Gelesen 4120 mal)

Offline falko_psa

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Markierten Text in Zwischenablage kopieren
« am: 05.07.13 - 16:58:04 »
Hallo Forum!

Ich habe eine einfache Aufgabe. Ich soll über eine Action am Mail-Formular den markierten Text auslesen und in die Zwischenablage kopieren. Dafür habe ich folgenden Code verwendet:
Code
	Dim workspace As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Set uidoc = workspace.CurrentDocument
	uidoc.Copy
Das funktioniert auch zuverlassig, solange es sich um Plain Text E-Mails handelt. Habe ich aber eine Rich Text E-Mail wird immer die Headline des E-Mail-Formulars in die Zwischenablage kopiert. Da heute die wenigsten Mails als reiner Text verschickt werden, funktioniert meine Funktion nur selten.

Ich habe auch schon alternativ mit GetSelectedText experimentiert aber die Funktion liefert in besagtem Fall immer einen Leerstring. Das brint mich auch nicht weiter.

Als Ergänzung muss ich noch sagen, dass das Mail-Formular immer im Read Mode ist, da meine Funktion hauptsächlich für eingehende E-Mails gedacht ist. Im Edit Mode funktioniert es aber ich brauche es im Read Mode.

Was mache ich falsch? Gibt es eine Alternative, wie ich an den markierten Text aus dem Mail-Body auslesen kann? Ich sitze jetzt schon einige Stunden an diesem Problem und bin über jeden Tip dankbar ...

Viele Grüße

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Markierten Text in Zwischenablage kopieren
« Antwort #1 am: 05.07.13 - 17:27:14 »
Hier wirst Du um die Windows API nicht herumkommen, da die Notes API hier verständlicherweise nur rudimentäre Funktionalität mit sich bringt.

Bernhard

Offline falko_psa

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Markierten Text in Zwischenablage kopieren
« Antwort #2 am: 08.07.13 - 09:29:56 »
Danke für diesen Hinweis Bernhard.
Damit ist das Problem zwar noch nicht gelöst aber ich habe festgestellt, dass Notes im Hintergrund den IE verwendet, um den Mail-Body anzuzeigen und zwar immer dann, wenn das Kopieren nicht funktioniert. Wenn dagegen die Notes eigene Rich Text Klasse zum Anzeigen verwendet wird, funktioniert das Kopieren in die Zwischenablage. Meine ursprüngliche Annahme, dass es nur bei Plain Text Mails funktioniert, ist damit auch nicht richtig. Es geht nur bei HTML-Mails nicht. Ein Stück weiter hast Du mir geholfen.

Jetzt ist natürlich die Frage, wie bekomme ich den im Hintergrund werkelnden IE dazu, seinen Text in die Zwischenablage zu plazieren. Wenn man an das COM-Interface (IHTMLDocument) herankäme, wäre es einfach. Da fällt mir im Moment keine Lösung ein. Hat hier im Forum schon mal jemand so was gemacht?

Falko

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Markierten Text in Zwischenablage kopieren
« Antwort #3 am: 08.07.13 - 09:56:09 »
Bei einem ähnlichen Problem mit Mails in einem zentralen Posteingang (keine Mailschablone, sondern eigenentwickelte Datenbank), in dem die Mitarbeiter nur Autorenrechte haben (also kein Bearbeitungsrecht auf eingegangene Mails, da die kein Autorenitem besitzen), habe ich das so gelöst:

Im QueryOpenDocument der Ansicht wird geprüft, ob im Dokument das Item Mime_Version vorhanden ist. Falls nicht, mache ich nichts weiter.
Auf dem Server wird ein Agent getriggert, der in das betroffene Dokument ein Autorenitem mit einem "*" schreibt.
Im PostOpen wird das Dokument in den EditMode versetzt, im Frontend gespeichert, Mime_Version und das Autorenitem gelöscht, nochmals im Frontend gespeichert und dann in den Lesemodus versetzt.

Auf diese Weise werden Mime-Mails automatisch in Richtext umgewandelt und können im Folgeschritt so verarbeitet werden, wie zu den guten alten Zeiten, als Notes-Mails noch richtige Notes-Mails waren ;)

Offline falko_psa

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Markierten Text in Zwischenablage kopieren
« Antwort #4 am: 08.07.13 - 10:34:24 »
Interessante Lösung Peter.
Für mich hört sich das wie eine Konvertierung an. Ändert sich dadurch die Mail, soll heissen, bekommt der Anwender davon etwas mit?

Ich habe für mein Problem eine Teillösung gefunden. Es liegt allein an dem embedded Browser. Den kann ich per Preferences abschalten (Disable embedded browser for MIME mail) und dann funktioniert es. Das geht praktisch in die gleiche Richtung wie in Rich Text umwandeln.

Allerdings löst das mein Problem nicht wirklich, da ich diese Funktion ja eigentlich an unsere Kunden ausliefern muss. Ich weiss nicht, wie die reagieren, wenn ich verlange den embedded Browser für MIME-Mails abzuschalten.

Falko

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Markierten Text in Zwischenablage kopieren
« Antwort #5 am: 08.07.13 - 10:39:02 »
Die Mail wird dabei konvertiert, der Anwender bekommt das aber nicht wirklich mit. Beim Öffnen der Mail wird die kurz in EditMode versetzt und dann wieder zurück. Ein aufmerksamer Benutzer sieht vielleicht, dass sich vorübergehend Schaltflächen oder SmartIcons ändern, hat aber keinen Einfluss auf das, was passiert. Er öffnet eine Mime-Mail und wenn er anfängt zu lesen, ist die schon in Richtext umgewandelt und gespeichert.

Offline falko_psa

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Markierten Text in Zwischenablage kopieren
« Antwort #6 am: 08.07.13 - 11:10:50 »
Das ist mir dann doch zu heiß. Wenn es unsere eigene Mail-DB wäre, OK. Aber ich liefere ja 'nur' eine Servicefunktion zum Auslesen von Informationen. Da wird es wohl von unseren Kunden und deren Notes-Admins nicht akzeptiert werden, wenn die Funktion Änderungen durchführt. Auch wenn rein praktisch nichts passiert ist.
Da heist es wohl weitersuchen ...

Trotzdem Danke für den Tip

Falko

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz