Innerhalb von enaio in die Windows-Zischenablage speichern

Grüß’ Euch,

nirgendwo in unseren Event-Scripts gibt es ein Beispiel, wie innerhalb von enaio einen text in die Zwischenablage gespeichert werden kann (so ähnlich wie window.clipboardData.setData "Text", resultString)

In der enaio-Doku finde ich das auch nicht.

Ist das sooo exotisch?

Weiß von Euch jemand, wie das geht?

Gruß
Hajo

Hallo @hajoh,

ich bin mir nicht ganz sicher, geht es Dir um den Rich-Client? Dieser nutzt als Sprache für Events historisch VBScript. VBScript stellt von sich aus keine Schnittstelle zur Windows-Zwischenablage bereit. Auch oxActive bzw. das oxHelp-Interface, welches massgeblich für Client-Events genutzt wird, haben da, soweit mir bekannt ist, nichts an Bord.

Mir sind nur externe DLLs oder einige „Hacks“ bekannt, um aus VBScript die Windows-Zwischenablage zu Schreiben: Etwa über Internet Explorer-Automation, ein IE-Dokument-Objekt kennt der Rich-Client in seinen Events zumindest schon mit infowindow.HtmlDocument.

Eine Variante, die verhältnismässig zuverlässig funktionieren sollte (wenngleich nicht schön), ist die Nutzung der clip.exe, welche seit vielen Jahren Teil von Windows ist:

clip.exe

Diese könnte man z. B. so aus einem Client-Event nutzen:

Set shell = CreateObject("WScript.Shell")
Set exec = shell.Exec("C:\Windows\System32\clip.exe")
Set stdin = exec.stdIn
stdin.WriteLine ActivePage.ASFields("Aktenzeichen").Value
stdin.Close

Nach Auslösen des Events, z. B. mit einem OnClickItem::Kopieren-Button auf der Maske, ist der Inhalt des Feldes Aktenzeichen in der Zwischenablage.

Hilft Dir das weiter? Oder ging es doch um den Mobil-/Web-Client? Zu guter Letzt gäbe es ja auch noch diese zwei ganz enaio-internen „Zwischenablagen“:

  1. Für Maskeninhalte im Kontextmenü von Rich-Client-Masken:
    Rich
  2. Die Objektzwischenablage im Web-Client

Jede von denen ist nochmals eine eigene Herausforderung. :slight_smile:

1 „Gefällt mir“

Ja, hier bei uns (rich-client-Umfeld) finde ich bisher auch nur solche „Hacks“. Offenbar muss ich das so beibehalten.

Danke für den Überblick.