Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

In Microsoft Word eingreifen....

Firestormer / 5 Antworten / Flachansicht Nickles

HallO!

ch ätte eine äußerst wichtige Frage zu einem Projekt, das ich gerade leite!:

Ist es möglich, Windows-Programmen, z.B. dem Programm Microsoft Word Tastaturbefehle "vorzutäuschen"?
Es soll einfach ein VC++ Programm sein, dass nichts anderes macht, als Tastaturbefehle zu simulieren und diese sollen Win-Programme so wie "normale" tastaturbefehle erkennen.

Vielen Dank im voraus!

Firestormer

bei Antwort benachrichtigen
Uli M Firestormer „In Microsoft Word eingreifen....“
Optionen

Hört sich erst einmal nicht sehr schwierig an. Anbei ein paar einfache Beispiele:
Sub EtwasInWordDokSchreiben()
Dim objWord As Object, objDoc As Object, objRange As Object
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("c:\\Test\\Existentes.doc", False, False, False)
With objDoc
.Content.InsertAfter Chr(13) & "Neuer Absatz am Ende"
' oder
.Paragraphs(1).Range.Text = "1. Absatz ersetzt" & Chr(13)
' oder
Set objRange = .Range
objRange.Start = .Paragraphs(2).Range.Start
objRange.End = objRange.Start + 4
objRange.Text = "bestimmter Bereich ersetzt"
' meist am besten, wenn Dok-Aufbau bekannt: mit Textmarken (oder Formularfeldern) arbeiten
Set objRange = .Bookmarks("Feld1").Range
objRange.Text = "Inhalt für Feld 1"
.Bookmarks.Add "Feld1", objRange
' Text ersetzen:
With .Content.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "Alter Text"
.Replacement.Text = "Neuer Text"
.Execute Replace:=2
End With
.Close -1
End With
Set objDoc = Nothing
Set objWord = Nothing
End Sub

Mit u.a. diesen Methoden kannst du einen Dokument-Inhalt manipulieren. Wenn du stattdessen Tastaur-Eingaben "vortäuschen" willst, muss die Anwendung sichtbar und das Dok den Focus haben.
Vermeide das Selection-Objekt, das etwa von einer Makroaufzeichnung verwendet wird.

bei Antwort benachrichtigen