Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Word macros extern aufrufen

Mitglied: arnito

arnito (Level 1) - Jetzt verbinden

08.08.2007, aktualisiert 09.08.2007, 4476 Aufrufe, 8 Kommentare

Hallo,
ich habe folgende Aufgabenstellung zu lösen und würde mich freuen wenn mir jemand dazu Hinweise geben könnte:

Ich kann in einer 4D Datenbank mit einer "Live Window" Funktion Office Dokumente anschauen und bearbeiten. Soweit ich das überblicke werden die Dokumente dazu im Explorer geöffnet. Aus der 4D Anwendung habe ich die Möglichkeit beliebige shell Kommandos abzusetzen. Nun die Frage (n): Wie kann ich z.B. in einem vb script an das im Explorer geöffnete Dokument rankommen und da dann vorher aufgezeichnete Macros ausführen, wie z.B Inhalt der Zwischenablage an einer bestimmten Textmarke einfügen.

Ich hoffe die Frage ist soweit nachvollziehbar.

Vielen Dank im Voraus

Arnito
Mitglied: sebele
08.08.2007 um 14:24 Uhr
in Vb besorgt man sich eine Referenz mit CreatObject- bzw GetObject-Funktion. Das erhaltene Objekt kennt das komplette Objektmodell der zugrundeliegenden Applikation.

Set ie = CreateObject("InternetExplorer.Application")

Damit erhält man auch Zugriff auf die Inhalte des Explorers.

Mit Sicherheit muss man sich dann noch auf analoge weise ein entsprechendes Officeobjekt erzeugen um dann die Makros anzustossen.
Bitte warten ..
Mitglied: arnito
08.08.2007 um 15:07 Uhr
Danke für die schnelle Antwort, da ich in vb recht unerfahren bin kann ich damit aber noch nicht so richtig viel Anfangen.
In meinem Fall ist das Wordfile im Explorer bereits geöffnet, ich müßte also mit GetObject erstmal das richtige explorer Fenster festellen (oder?) und dann an diese Instanz die entsprechen vb script befehle absetzen. Wie kann ich das richtige Fenster festellen, über den Dateinamen der geöffneten Datei?

Danke Arnito
Bitte warten ..
Mitglied: sebele
08.08.2007 um 15:27 Uhr
GetObject liefert eine bestehende Explorerinstanz zurück. Normalerweise die mit der höchsten Prozessid. Ist ein bischen unsicher, wenn mehrere instanzen offen sind.

http://www.vbarchiv.net/commands/GetObject.php">http://www.vbarchiv.net/commands/GetObject.php

Hier noch eine andere Variante:

http://www.xtremevbtalk.com/archive/index.php/t-247343.html">http://www.xtremevbtalk.com/archive/index.php/t-247343.html

Damit geht man durch alle offenen Instanzen durch, schaut ob es ein IE ist. Da kann man sich prima reinhängen und auch gleich nachschauen ob es das richtige Dokument ist.
Bitte warten ..
Mitglied: arnito
08.08.2007 um 15:39 Uhr
Hallo Sebele,
da komme ich der Sache doch näher, vor allem wenn da etwas Beispielcode dabei ist, an dem man sich entlanghangeln kann. Vielen Dank schonmal!

Arnito
Bitte warten ..
Mitglied: arnito
09.08.2007 um 13:37 Uhr
Hallo,
mir scheint die zweite Varinate das richtige zu sein allerding kann ich mit folgendem Satz nicht viel anfangen:
"This requires a reference to Microsoft Internet Controls and to Microsoft Shell Controls and Automation. You can also choose to not add the references, but then replace the variable declarations with As Object." Deswegen klappt es warscheinlich auch nicht.

Zum Probieren habe ich in der Zwischenzeit mal folgendes mit einem durch das script selbst geöffnetem Fenster probiert:

Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate2 "http://becks.aknh.de/test.doc"
IE.Visible = True

Das öffnet mir wie gewünscht test.doc im IE was mir aber nicht gelingt ist diese eingebettete wordinstanz mit vb befehlen anzusprechen, also in dem Dokument Text einzufügen etc., geht das überhaupt?

Vielen Dank

Arnito
Bitte warten ..
Mitglied: sebele
09.08.2007 um 14:14 Uhr
Das Beispiel is schon ganz gut, du musst nur warten bis die Seite auch fertig geladen ist. Siehe unten

Dim d as HTMLDocument
Dim IE
Set IE = CreateObject("InternetExplorer.Application")

IE.Navigate2 "http://becks.aknh.de/test.doc"
Dim d As HTMLDocument
While (IE.readyState <> 4)
'Warten bis das Document geladen ist
Wend
IE.Visible = True
Set d = IE.document

bei mir ist es allerdings so, dass sich Word anschließend öffnet. Ich würde also jetzt dann hergehen und die offene Wordinstanz mit GetObjekt einfangen.

Um eine bessere syntaxunterstützung zu bekommen, solltest du auf alle Fälle die Verweise
Mircosoft HTML Obejct Library
Microsoft Internet Controls
und
Mircosoft Word 1.0 Object Library
in das Projekt als verweis einbinden.

Ich hoffe das hilft soweit, bin nämlich die nächste vier Wochen in Urlaub.

Gruss
Bitte warten ..
Mitglied: arnito
09.08.2007 um 14:32 Uhr
Hallo,
das probier ich gleich mal und werd mich da schon irgenwie durchhangeln. Vielen Dank und einen schönen Urlaub!

Arnito
Bitte warten ..
Mitglied: sebele
09.08.2007 um 14:43 Uhr
Ich habe bei einem anderen Projekt mal nachgeschaut, wie das Problem dort gelöst wurde. Den Quelltext darf ich nicht weitergeben, aber da wird folgendes gemacht:
Die IE.-Instanz holt das betreffende Dokument und speichert es lokal zwischen. Anschließend wird es mit der dazu passenden Applikation wieder geöffnet.

Hoffe das hilft noch ein bischen mehr.
Bitte warten ..
Ähnliche Inhalte
Erkennung und -Abwehr
Code ohne Macros in Word ausführen!
Information von LochkartenstanzerErkennung und -Abwehr1 Kommentar

Wie in beschrieben, bietet Word per DDE die Möglichkeit, fremden Code auch ohne Makros auszuführen. Das sollte bei Sicherheitsmaßnahmen ...

Microsoft Office
Office Macros Signieren
gelöst Frage von HanutaMicrosoft Office1 Kommentar

Hallo Zusammen, Gibt es eine möglichkeit, makros nicht nur pro Benutzer zu Signieren, sondern das Makro an sich und ...

Verschlüsselung & Zertifikate
Digitale Signaturen - Office Macros
Frage von BitboyVerschlüsselung & Zertifikate3 Kommentare

Hallo zusammen, Nachdem ich mir gestern ein Zertifikat zum Codesignieren gebastelt hab möchte ich heute mal testen wie das ...

Java
Aufruf der web.xml
gelöst Frage von qwertz1Java3 Kommentare

Hallo, ich habe einen Server, der diverse Java-Servlets hat. Habe nur http-Zugriff auf diesen Server. Die Servlets kann man ...

Neue Wissensbeiträge
Netzwerkmanagement
How To Mikrotik Netinstall
Erfahrungsbericht von areanod vor 1 StundeNetzwerkmanagement

Jedes Mal wenn ich Netinstall längere Zeit nicht benutzt habe stolpere ich über die „Besonderheiten“ dieser Software. Das ist ...

Microsoft
Microsoft: LDAPS per Update als Default
Information von em-pie vor 1 StundeMicrosoft

Hallo, Microsoft wird mit einem der zukünftigen Updates LDAP auf LDAPS per Default umstellen. Admins von angebundenen Systemen die ...

Humor (lol)

Funny: Warum es immer schwieriger wird, die richtigen Produkte online zu finden

Information von Dilbert-MD vor 1 TagHumor (lol)17 Kommentare

Wir befinden uns in der Rubrik "Off Topic - Humor" und in 15 Minuten ist Freitag. und ja, es ...

Windows Update
MS SQL Server Updates
Information von sabines vor 2 TagenWindows Update

Für 2012, 2014 und 2016 sind seit Dienstag wichtige Sicherheitsupdates verfügar, die eine remote, leicht auszunutzende Lücke im Reporting ...

Heiß diskutierte Inhalte
Server-Hardware
Lieferzeiten bei einem Server - kann das sein?
gelöst Frage von samet22Server-Hardware31 Kommentare

Hallo, ich hätte an diejenigen eine Frage welche innerhalb der letzten 6-12 Monate einen Server bestellt haben. Ich habe ...

Verschlüsselung & Zertifikate
SSL Zertifikat gekauft funktioniert aber nicht
Frage von TeKiLLa1895Verschlüsselung & Zertifikate19 Kommentare

Hi, Habe vor 2 Tagen mit einer CSR mir ein Zertifikat beantragt und auch bekommen. Jetzt passt aber der ...

Humor (lol)
Funny: Warum es immer schwieriger wird, die richtigen Produkte online zu finden
Information von Dilbert-MDHumor (lol)17 Kommentare

Wir befinden uns in der Rubrik "Off Topic - Humor" und in 15 Minuten ist Freitag. und ja, es ...

Utilities
Motherboard mit zwei Ethernet Adapter.?
Frage von Sibelius001Utilities16 Kommentare

Hallo, ist bestimmt eine "Dummy" Frage, die hier bestimmt schon x-mal diskutiert wurde (Dafür bitte ich mal vorab um ...