VB.NET mit Office 2K und -XP gemischt
Hans35
- programmiertechnik
0 Viennamade0 Hans350 Viennamade0 hans35
Hi,
ich schreibe ein VB.NET-Programm, das u.a. ein Word-Dokument mit Hilfe von Textmarkern ausfüllt. Das Programm soll möglchst in jeder installierten Office-Version unter Windows laufen. Wenn beim Kunden nur nur Office2000 oder nur OfiiceXP installiert ist, ist auch
alles ok, und das Word-Dukument wird erzeugt wie gewünscht.
Ein Problem entsteht offenbar jedoch, wenn die Office-Versionen gemischt sind: Im konkreten Fall hat der Kunde nämlich Office2000 (ohne Word) und Word XP installiert. Dann funktioniert weder das eine noch das andere. Die COM-Klasse "Microsoft Word 10.0 Object Library" läßt sich nicht ansprechen, und der Versuch, das Word-Dokument auszufüllen, führt zu einen Flut von Fehlermeldungen.
Klar, man könnte vom Kunden verlangen, dass er sich ein einheitliches System installiert, aber diese Lösung ist aus "psychologischen" Gründen nur zweite Wahl. Besser, er muss sein installiertes System nicht verändern.
Gibt es dafür eine Lösung? Oder weiß jemand ein gutes Forum für diese Frage?
Gruß
Hans35
Hallo!
.... Wenn beim Kunden nur nur Office2000 oder nur OfiiceXP installiert ist, ist auch
alles ok, und das Word-Dukument wird erzeugt wie gewünscht.Ein Problem entsteht offenbar jedoch, wenn die Office-Versionen gemischt sind: Im konkreten Fall hat der Kunde nämlich Office2000 (ohne Word) und Word XP installiert. Dann funktioniert weder das eine noch das andere. Die COM-Klasse "Microsoft Word 10.0 Object Library" läßt sich nicht ansprechen, und der Versuch, das Word-Dokument auszufüllen, führt zu einen Flut von Fehlermeldungen.
Du könntest bei der Installation Deines Programms mit API-Aufrufen (frag mich nicht welche - g) in Erfahrung bringen welche Komponenten vorhanden sein und Dir entsprechende Flags in die Registry schreiben. Von diesen Flags machst Du die Features Deines Programmes abhängig.
Ich kann nicht sagen, ob das in der XP-Familie auch noch so ist, aber 'davor' konnte man einzelnen OLB-Dateien mit Setup ausliefern und registrieren.
Beste Grüße
Viennamade
Hi Viennamade,
Du könntest bei der Installation Deines Programms mit API-Aufrufen (frag mich nicht welche - g) in Erfahrung bringen welche Komponenten vorhanden sein und Dir entsprechende Flags in die Registry schreiben.
Das würde mir helfen, wenn ich nur wissen will, welche Version vorhanden ist und welche Klassen ich entsprechend einsetzen muss.
Mein Problem liegt ein Schritt davor: Wenn ich z.B. per API heraus bekomme (oder auch, wenn der Kunde es mir sagt), er hat Office2k aber Word XP installiert, was mache ich dann? Weder "Microsoft Word 10.0 Object Library" für XP noch "Microsoft Word 9.0 Object Library" für 2K lassen sich nutzen.
Hallo!
Du könntest bei der Installation Deines Programms mit API-Aufrufen (frag mich nicht welche - g) in Erfahrung bringen welche Komponenten vorhanden sein und Dir entsprechende Flags in die Registry schreiben.
Das würde mir helfen, wenn ich nur wissen will, welche Version vorhanden ist und welche Klassen ich entsprechend einsetzen muss.
Mein Problem liegt ein Schritt davor: Wenn ich z.B. per API heraus bekomme (oder auch, wenn der Kunde es mir sagt), er hat Office2k aber Word XP installiert, was mache ich dann? Weder "Microsoft Word 10.0 Object Library" für XP noch "Microsoft Word 9.0 Object Library" für 2K lassen sich nutzen.
" ... er hat Office2k aber Word XP installiert ... " also was jetzt ;-)
Nichts desto trotz, was wenn Du die olb-Dateien ganz einfach mitlieferst und registrierst? Ich denke, daß das auch erlaubt ist, denn wie sonst sollten nicht us-amerikanische Software-Applikationen vertrieben werden?
Beste Grüße
Viennamade
Hi Vieannamade,
" ... er hat Office2k aber Word XP installiert ... " also was jetzt ;-)
Nichts desto trotz, was wenn Du die olb-Dateien ganz einfach mitlieferst und registrierst? Ich denke, daß das auch erlaubt ist, denn wie sonst sollten nicht us-amerikanische Software-Applikationen vertrieben werden?
mein Kunde hat sich einen Rechner gekauft, auf dem Word XP vorinstalliert war, also hat er von seinem Office 2k alles ausser Word installiert. Bei dieser Kofiguration kann ich die oben genannten Klassen nicht wircklich ansprechen! Wenn ich den selben Code verwende wie bei z.B. Office XP funzt nicht mehr, das selbe wenn ich ihn auf Office 2k umschreibe.
Die bislang benutzen Klassen sind ja COM-Klassen, hat vieleicht das .NET-Framework was plattformübergeifendes was ich nicht kenne?