J'ai une application de test VB.net qui clique sur un lien qui ouvre la fenêtre de l'application Microsoft Word et affiche le document. Comment puis-je localiser la fenêtre de l'application Word afin de pouvoir récupérer du texte?Comment localiser une fenêtre d'application Word?
Répondre
Vous pouvez utiliser l'objet COM Word pour ouvrir le document de travail, puis le manipuler. Assurez-vous d'ajouter une référence pour Microsoft Word en premier.
Imports System.Runtime.InteropServices
Imports Microsoft.Office.Interop.Word
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strFileName As String
Dim wordapp As New Microsoft.Office.Interop.Word.Application
Dim doc As Microsoft.Office.Interop.Word.Document
Try
doc = wordapp.Documents.Open("c:\testdoc.doc")
doc.Activate()
Catch ex As COMException
MessageBox.Show("Error accessing Word document.")
End Try
End Sub
End Class
L'objet doc est une poignée pour l'instance de Word que vous avez créé et vous pouvez utiliser toutes les options normales (enregistrer, imprimer, etc.). Vous pouvez faire de même avec le motapp. Une astuce consiste à utiliser l'éditeur de macros dans Word pour enregistrer ce que vous voulez faire. Vous pouvez ensuite afficher ceci dans l'éditeur de macros. Cela vous donne un excellent point de départ pour votre code VB.
De même, assurez-vous de disposer des objets Word COM à la fin.
J'ai fait quelque chose de similaire avec une boîte de dialogue SourceSafe, que j'ai posté sur mon blog. Fondamentalement, j'ai utilisé Spy ++ ou Winspector pour trouver le nom de la classe de la fenêtre, et faire des appels Win32 pour faire des choses avec la fenêtre. J'ai mis la source sur mon blog: http://harriyott.com/2006/07/sourcesafe-cant-leave-well-alone.aspx
Exactement la même manière que vous trouvez une autre fenêtre d'application? – kokos