У меня есть тестовое приложение VB.net, которое щелкает ссылку, которая открывает окно приложения Microsoft Word и отображает документ. Как найти окно приложения Word, чтобы взять из него текст?
Как найти окно приложения Word?
Ответы (3)
Вы можете использовать COM-объект Word, чтобы открыть рабочий документ, а затем манипулировать им. Обязательно сначала добавьте ссылку на 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
Объект документа — это дескриптор экземпляра Word, который вы создали, и вы можете использовать все обычные параметры (сохранить, распечатать и т. д.). Вы можете сделать то же самое с wordapp. Хитрость заключается в том, чтобы использовать редактор макросов в Word для записи того, что вы хотите сделать. Затем вы можете просмотреть это в редакторе макросов. Это даст вам отличную отправную точку для вашего кода VB.
Кроме того, не забудьте удалить COM-объекты Word в конце.
Я сделал что-то подобное с диалоговым окном SourceSafe, которое я разместил в своем блоге. По сути, я использовал либо Spy++, либо Wspector, чтобы узнать имя класса окна и сделать вызовы Win32, чтобы сделать что-то с окном. Я поместил исходный код в свой блог: http://harriyott.com/2006/07/sourcesafe-cant-leave-well-alone.aspx
Вы пытаетесь активировать приложение Word? Если вам нужен полный контроль, вам нужно автоматизировать word из вашего приложения vb.net. Посмотрите здесь несколько примеров: 1, 2