Comment localiser une fenêtre d’application Word ?
Question
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 localiser la fenêtre de l’application Word afin de pouvoir y récupérer du texte ?
La solution
Vous pouvez utiliser l'objet Word COM pour ouvrir le document de travail, puis le manipuler.Assurez-vous d'abord d'ajouter une référence pour Microsoft Word.
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 un handle pour l'instance de Word que vous avez créée et vous pouvez utiliser toutes les options normales (enregistrer, imprimer, etc.).Vous pouvez faire de même avec wordapp.Une astuce consiste à utiliser l'éditeur de macros dans Word pour enregistrer ce que vous voulez faire.Vous pouvez ensuite le visualiser dans l'éditeur de macros.Cela vous donne un excellent point de départ pour votre code VB.
Assurez-vous également de supprimer les objets Word COM à la fin.
Autres conseils
J'ai fait quelque chose de similaire avec une boîte de dialogue SourceSafe, que j'ai publiée sur mon blog.Fondamentalement, j'ai utilisé Spy++ ou Winspector pour connaître le nom de la classe de la fenêtre et effectuer des appels Win32 pour effectuer des tâches avec la fenêtre.J'ai mis la source sur mon blog : http://harriyott.com/2006/07/sourcesafe-cant-leave-well-alone.aspx