mir fehlt irgendwie der Schubs in die richtige Richtung....
folgende Situation:
Ich habe eine App (VS 2010 c# O2010) geschrieben, die alle Wordfiles in einem Verzeichnis öffnet, manipuliert und wieder speichert. Ich verwende dafür die interop.word (für word 2007)
soweit so gut...
die App ist getestet, und läuft stabil.
jetzt habe ich das Problem, dass ich nicht weiss, welche wordversion der User installiert hat und wie ich jetzt die interop für 2007 ins setup verpacke, damit es beim User installiert wird...
oder muss ich meine App umprogrammieren, damit sie mit allen (2002 - 2010) Versionen von Word funkt.
ich bin leider neu im Bereich Office-Programmierung und wäre für jeden Tipp dankbar
ich würde aber so wie bei Interop ein array erwarten, damit ich mit shapes auf ein shape zugreifen kann.
da ich noch nie mit latebinding zu tun hatte, weiss ich jetzt nicht, wie ich shapes casten soll, damit es ein array wird, bzw. ob es eine Möglichkeit gibt, direkt auf eines der Array-Elemente zuzugreifen, um zu überprüfen, ob es sich um ein "msoPicture" handelt.
ich hoffe jetzt ist mein Problem etwas klarer und ihr könnt mir helfen....
Hm, Rainbirds Wrapper berücksichtigt nicht das Properties in COM auch Parameter haben können sehe ich gerade. Teste mal ob die Shape Items als Funktion abgegriffen werden (Office Produkte sind diesbezüglich sehr uneinheitlich)
ComObject shapeObject = Shapes.InvokeObjectReturningFunction("Item", i);
int shapeType = (int)shapeObject.GetProperty("Type");
// do whatever you want
shapeObject .Dispose();
Falls das nicht klappt musst du Rainbirds Wrapper erweitern also die
Funktion GetProperty überladen(oder optional in c#4) und zwar wie folgt.