Hallo,
in einem anderen Post hatte ich mit Eurer Hilfe ein kleines Script erstellt, welches Text aus einem Textfeld auslesen und in ein jeweils neues Word-Dokument speichern konnte.
Nun ergab sich die Notwendigkeit einer kleinen Abänderung. Wie das Ganze aussieht, könnt Ihr am Screenshot unten sehen.
Es soll nun folgendes passieren:
- ins erste Feld wird eine Nummer und ein Name eingetragen
- ins zweite (große) Feld wird Text eingetragen
- nun soll ein neues Dokument erstellt werden. Als Name soll der Inhalt des ersten Feldes genommen werden.
- in dieses Dokument soll zunächst der Inhalt aus Feld 1 (Nummer + Name) eingetragen werden... danach eine Zeilenschaltung
- darunter soll dann der Text aus Feld 2 gesetzt werden.
- zum Abschluss soll dann das Dokument in einem bestimmten Verzeichnis gespeichert werden.
Hier habe ich schon mal den Code aus dem anderen Thread soweit abgeändert, wie ich konnte (das Ergebnis ist der unten sichtbare Screenshot):
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <Word.au3>
#NoTrayIcon
; activate part match mode of title
AutoItSetOption("WinTitleMatchMode",2)
$AutoIT = GUICreate(" Neues MEMO schreiben", 500, 750) ; Größe des gesamten Programmfensters - Breite, Höhe
GUICtrlCreateLabel("Bitte Antragsnummer + Namen eingeben:",25, 10, 220, 25) ; Abstand von li, oben, Breite, Höhe
$Number = GUICtrlCreateInput("", 20, 30, 250, 25)
GUICtrlCreateLabel("Bitte Memo-Text eingeben:",25, 65, 200, 25) ; Abstand von li, oben, Breite, Höhe
$Memo = GUICtrlCreateInput("", 20, 85, 450, 600)
$Save = GUICtrlCreateButton("Memo speichern", 25, 700, 100, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Save
$txt_Number = "" ; leert Variable
$txt_Number = GUICtrlRead($Number) ; liest Nummer aus Inputfeld $Number
While 1
If $txt_Number <> "" Then
_Save_to_Word()
$txt_Number = "" ; leert Variable
$text = "" ; leert Variable
GUICtrlSetData($Number, "")
GUICtrlSetData($ok1, "")
ExitLoop ; Springt aus Schleife
Else
MsgBox(0,"Achtung","darf nicht leer sein")
ExitLoop ; Springt aus Schleife
EndIf
WEnd
EndSwitch
WEnd
Func _Save_to_Word()
$savePath = "S:\ARCHIV\Mittelvergabe\Memos\" ; Pfad zum Speicher der Dokumente
$oWord = _Word_Create(1)
$oDoc = _Word_DocAdd($oWord)
$oWord.Selection.TypeText ($text)
$oWord.Selection.Paste
;_Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12) ; save as docx")
Local $iFileExists = FileExists($savePath & $txt_Number & ".doc")
If $iFileExists Then
$ja_nein = MsgBox(4, "", "Die Datei existiert bereits." & @CRLF & "Überschreiben Ja/Nein")
IF $ja_nein = 6 Then _Word_DocSaveAs($oDoc, $savePath & $txt_Number) ; save as doc")
IF $ja_nein = 7 Then MsgBox(0,"","Datei wird nicht gespeichert!")
Else
_Word_DocSaveAs($oDoc, $savePath & $txt_Number) ; save as doc")
EndIf
_Word_Quit($oWord)
EndFunc
Func _get_Text()
; Titel of Window
$wintitle = "Neues MEMO schreiben"
; activate window
WinActivate($wintitle)
; wait max 10 seconds for window to become active
If WinWaitActive($wintitle,"",5) = 0 then
Msgbox(16,"Timeout","Konnte Fenster nicht finden!")
Exit 1
EndIf
; retrieve text of control
;$text = ControlGetText($wintitle,"","[CLASS:TwwDBRichEdit; INSTANCE:1]")
Sleep (500)
Send("^a"); alles markieren
Sleep (500)
Send("^c"); kopieren
$text = ClipGet()
;MsgBox(0,"",$text)
EndFunc
Alles anzeigen
[Blockierte Grafik: http://www.bilder-hochladen.net/files/big/erc4-10-8e2d.jpg]
Wäre schön, wenn Ihr mir helfen könnt
Danke und schöne Grüße,
imebro