Technician Geschrieben 5. Juni 2003 Geschrieben 5. Juni 2003 Hallo, kann mir hierbei jemand weiterhelfen, bzw. mir hierzu weitere Infos liefern: Es existiert ein fertiges OCX-Control, mit dem sich WinWord "fernsteuern" lässt. Dieses OCX-Control wird in ein Programm (nennen wir es mal XYZ) eingebaut, und jetzt lässt sich hiermit Word starten, es lassen sich Menüleisten in Word ausblenden, es kann ein Druckvorgang aus Word gestartet werden und nicht zuletzt lassen sich Daten aus dem Programm XYZ an Word schicken. Nun meine Frage: Unter welcher Programmiersprache kann dieses OCX entstanden sein? VB bietet ja Möglichkeiten, auf Office-Programme zuzugreifen - wie aber sieht das mit anderen Programmiersprachen aus? Und: Wie kann man "von außen" auf Word zugreifen, welche Schnittstellen hat Word "nach außen" (angenommen, ich möchte selbst ein derartiges OCX schreiben)? Noch zur Info: es handelt sich konkret um Word97 (müsste aber bei Word2000 ähnlich sein) Grüße, Technician Zitieren
Goos Geschrieben 5. Juni 2003 Geschrieben 5. Juni 2003 Original geschrieben von Technician Nun meine Frage: Unter welcher Programmiersprache kann dieses OCX entstanden sein? VB bietet ja Möglichkeiten, auf Office-Programme zuzugreifen - wie aber sieht das mit anderen Programmiersprachen aus? Und: Wie kann man "von außen" auf Word zugreifen, welche Schnittstellen hat Word "nach außen" (angenommen, ich möchte selbst ein derartiges OCX schreiben)? Grüße, Technician Moin, also zu 1. das OCX kann unter welcher Sprache auch immer entstanden sein (spielt ja ansich keine Rolle) Inwiefern meinst du das, dass VB Moeglichkeiten bietet auf Office-Programme zuzugreifen? Was ist deiner Meinung nach "von aussen" ?...wenn du sagst VB bietet Möglichkeiten, dann ist das doch von aussen. Angenommen du moechtest selbst so ein OCX machen, dann laesst sich das doch ganz gut ueber OLE Automation von Word machen. Goos Zitieren
HolzOnkel Geschrieben 5. Juni 2003 Geschrieben 5. Juni 2003 Meinem "Vorschreiber" zustimmend: die OCX kann egal in welcher Programmiersprache gemacht sein. Ausserdem, auch schon gesagt, wäre es am einfachsten, wenn Du Word dann per OLE-Automation ansteuerst, als Word.Application. Dann ksnnt Du per VBA (Visual Basic for Applications) auf Word rauf zugreifen... such einfach mal nach Office Automation im Internet, da findet sich einiges! ;-) Gruss, der Onkel Zitieren
Technician Geschrieben 5. Juni 2003 Autor Geschrieben 5. Juni 2003 Hallo, Original geschrieben von Goos also zu 1. das OCX kann unter welcher Sprache auch immer entstanden sein (spielt ja ansich keine Rolle) mir ist schon klar, dass man unter diversen Programmiersprachen OCX-Steuerelemente schreiben kann. Allerdings: ... Original geschrieben von Goos Inwiefern meinst du das, dass VB Moeglichkeiten bietet auf Office-Programme zuzugreifen? Was ist deiner Meinung nach "von aussen" ?...wenn du sagst VB bietet Möglichkeiten, dann ist das doch von aussen. wie leicht (oder schwer) ist es, z.B. von C++ aus Word "fernzusteuern"? Nach dem Motto: "Word, jetzt öffne mal ein Dokument, schreibe diese Daten rein, blende mir dann diese und jene Menüs aus, und drucke dann das Dokument?" VB aber bietet gute Möglichkeiten, die Office-Programme "fernzusteuern". Kleines Codebeispiel: CreateObject-Funktion (Beispiel) In diesem Beispiel wird die CreateObject-Funktion verwendet, um einen Verweis (xlApp) auf Microsoft Excel zu setzen. In dem Beispiel wird der Verweis verwendet, um auf die Visible-Eigenschaft von Microsoft Excel zuzugreifen, und anschließend wird Microsoft Excel mit seiner Quit-Methode beendet. Schließlich wird der Verweis selbst wieder freigegeben. Dim xlAnw As Object ' Variable für Verweis deklarieren. Set xlAnw = CreateObject("excel.application") ' Sie müssen die Visible-Eigenschaft auf True ' setzen, wenn die Anwendung angezeigt werden soll. xlAnw.Visible = True ' Greifen sie auf die anderen Objekte von ' Microsoft Excel mit xlAnw zu. xlAnw.Quit ' Wenn Sie fertig sind, beenden Sie die ' Anwendung mit der Quit-Methode, und geben Sie Set xlAnw = Nothing ' dann den Verweis frei. kann man sowas auch mit anderen Programmiersprachen als VB machen? Gruß, Technician Zitieren
Goos Geschrieben 5. Juni 2003 Geschrieben 5. Juni 2003 Original geschrieben von Technician Kleines Codebeispiel: CreateObject-Funktion (Beispiel) In diesem Beispiel wird die CreateObject-Funktion verwendet, um einen Verweis (xlApp) auf Microsoft Excel zu setzen. In dem Beispiel wird der Verweis verwendet, um auf die Visible-Eigenschaft von Microsoft Excel zuzugreifen, und anschließend wird Microsoft Excel mit seiner Quit-Methode beendet. Schließlich wird der Verweis selbst wieder freigegeben. Dim xlAnw As Object ' Variable für Verweis deklarieren. Set xlAnw = CreateObject("excel.application") ' Sie müssen die Visible-Eigenschaft auf True ' setzen, wenn die Anwendung angezeigt werden soll. xlAnw.Visible = True ' Greifen sie auf die anderen Objekte von ' Microsoft Excel mit xlAnw zu. xlAnw.Quit ' Wenn Sie fertig sind, beenden Sie die ' Anwendung mit der Quit-Methode, und geben Sie Set xlAnw = Nothing ' dann den Verweis frei. kann man sowas auch mit anderen Programmiersprachen als VB machen? Gruß, Technician Huhu, also wenn du das nun mit VC machst, dann bleibt der Code ansich so gut wie gleich. Wird halt n bissl C Syntax reingebracht, aber das Word Objektmodell bleibt logischerweise das gleiche. Fuer die genaue Vorgehensweise such mal in der MSDN nach "Automating Microsoft Office 97 and Microsoft Office 2000 Lori Turner" ....viel Erfolg Goos Zitieren
Technician Geschrieben 5. Juni 2003 Autor Geschrieben 5. Juni 2003 Original geschrieben von Goos Huhu, also wenn du das nun mit VC machst, dann bleibt der Code ansich so gut wie gleich. Wird halt n bissl C Syntax reingebracht, aber das Word Objektmodell bleibt logischerweise das gleiche. Fuer die genaue Vorgehensweise such mal in der MSDN nach "Automating Microsoft Office 97 and Microsoft Office 2000 Lori Turner" ....viel Erfolg Goos Vielen Dank Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.