Ich verwende MSWord
Interop, um Grammatik/Zauber in meiner Anwendung zu überprüfen. Ich bin mit diesen Schritten, dies zu tun:Rechtschreibprüfung Fenster mit MS Word Interop Öffnung auf der Rückseite meiner Anwendung in Vista
- Erstellen Sie ein neues Einzel Thread Apartment nicht meine Anwendung Form
- Deaktivieren Sie den Eingang meiner Anwendung zu sperren
- Mit Reflexion (
MSOffice
Version unabhängig zu sein)
ich verwende diesen Code Word zu öffnen:
objWord = System.Activator.CreateInstance(Type.GetTypeFromProgID("Word.Application"));
Object objDocuments = objWord.GetType().InvokeMember("Documents", BindingFlags.GetProperty, null, objWord, null);
objDoc = objDocuments.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, null, objDocuments, null);
objContent = objDoc.GetType().InvokeMember("Content", BindingFlags.GetProperty, null, objDoc, null);
IDataObject oldObjData = Clipboard.GetDataObject();
Clipboard.SetDataObject(text);
objContent.GetType().InvokeMember("Paste", BindingFlags.InvokeMethod, null, objContent, null);
objDoc.GetType().GetMethod("CheckGrammar").Invoke(objDoc, null);
objWord.GetType().GetProperty("Visible").SetValue(objWord, false, null);
objContent.GetType().InvokeMember("Cut", BindingFlags.InvokeMethod, null, objContent, null);
IDataObject objData = Clipboard.GetDataObject();
objDoc.GetType().GetProperty("Saved").SetValue(objDoc, true, null);
objDoc.GetType().GetMethod("Close").Invoke(objDoc, new Object[] { null, null, null });
objWord.GetType().GetMethod("Quit").Invoke(objWord, new Object[] { null, null, null });
Aber wenn Ich nenne das, nur in Windows Vista, das SpellCheck-Fenster öffnet sich auf der Rückseite meiner Anwendung, und ich brauche ALT + TAB, um das Word-Fenster anzuzeigen.
Hat jemand dieses Problem oder einen Vorschlag wie zu lösen?
Ich versuchte
objDoc.GetType().GetMethod("Activate").Invoke(objDoc, null);
zu nennen, aber es funktioniert nicht. Andere "Fokus" Methoden weder.
Dank
Ich habe in beiden bereits versucht, sowohl Focus und Activate. Aber trotzdem danke. –
Ich habe alles mit Focus und Activate in jeder plausiblen Position ausprobiert, ohne Erfolg. –
Dann habe ich keine Ahnung. – SLaks