Come posso individuare la finestra di un'applicazione Word?
Domanda
Ho un'applicazione di test VB.net che fa clic su un collegamento che apre la finestra dell'applicazione Microsoft Word e visualizza il documento.Come posso individuare la finestra dell'applicazione Word in modo da poter prendere del testo da essa?
Soluzione
È possibile utilizzare l'oggetto COM di Word per aprire il documento di lavoro e quindi manipolarlo.Assicurati di aggiungere prima un riferimento per 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'oggetto doc è un handle per l'istanza di Word che hai creato e puoi utilizzare tutte le normali opzioni (salva, stampa, ecc.).Puoi fare lo stesso con wordapp.Un trucco è utilizzare l'editor di macro in Word per registrare ciò che vuoi fare.È quindi possibile visualizzarlo nell'editor macro.Questo ti offre un ottimo punto di partenza per il tuo codice VB.
Inoltre, assicurati di eliminare gli oggetti COM di Word alla fine.
Altri suggerimenti
Ho fatto qualcosa di simile con una finestra di dialogo SourceSafe, che ho pubblicato sul mio blog.Fondamentalmente, ho utilizzato Spy++ o Winspector per scoprire il nome della classe della finestra ed effettuare chiamate Win32 per eseguire operazioni con la finestra.Ho messo la fonte sul mio blog: http://harriyott.com/2006/07/sourcesafe-cant-leave-well-alone.aspx