1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. imebro

Beiträge von imebro

  • Texte per Autoit-Script an ein Word-Dokument anhängen

    • imebro
    • 18. September 2015 um 09:22

    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):

    AutoIt
    #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

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 14. September 2015 um 13:24

    Danke @ "Kanashius".

    Habe das gerade mal versucht.
    Leider brachte auch das nicht den gewünschen Erfolg.

    Ich hatte es so eingetragen:

    AutoIt
    Func _Save_to_Word()
    	$savePath = "S:\ARCHIV\Mittelvergabe\Memos\"  ; Pfad zum Speicher der Dokumente
    ;~ 	; Word starten
    ;~ 	$oWord = ObjCreate("Word.Application")
    ;~ 	; leeres Dokument hinzufügen
    ;~ 	$oDoc = $oWord.Documents.Add()
    ;~ 	; make word visible
    ;~ 	$oWord.Visible = true
    ;~ 	; insert text into document
    ;~ 	$oDoc.Content.Text = $text
    	$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)
    	WinActivate($AutoIT)
    EndFunc
    Alles anzeigen


    ...siehe Zeile 25.

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 11. September 2015 um 14:36

    Habe Deinen Code eben mal in Zeile 10 und später auch in Zeile 19 eingegeben.
    Beide Tests funktionierten nicht.

    AutoIt
    Func _get_Text()
    	; Titel of Window
    	$wintitle = "Stiftungsanträge / Einzelfallhilfen"
    	; 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)
    	WinActivate($AutoIT)
    EndFunc
    Alles anzeigen


    Der Vorgang ist ja so:

    Wir befinden uns in einem Programm
    Dort gibt es ein Memofeld
    In diesem befindet sich unser Cursor
    Dieses Memofeld soll nun ausgelesen werden.
    Dazu klicken wir dann rechts am Rand in die GUI von AutoIt auf den Button "Memo einlesen"...

    So ist der Ablauf.
    Die GUI müßte also auch aktiv bleiben, wenn wir uns in dem Memo-Textfeld unseres Programms befinden.
    Somit wären dann quasi beide (Programm und AutoIt-GUI) aktiv.

    Geht das?

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 11. September 2015 um 14:24

    Danke zunächst @ "Kanashius".

    Das GUI-Fenster bleibt bei uns immer offen.
    Wir schieben die kleine GUI an den Rand des Monitors und in der Mitte läuft das Programm, aus dessen Fenster dann der Inhalt ausgelesen wird.

    Muss ich dennoch so vorgehen, wie von Dir eben beschrieben?

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 11. September 2015 um 14:01

    Hätte doch nochmal ne Frage ;)

    in - sagen wir - 90% der Fälle wird das Textfeld sofort ausgelesen, wenn man in der GUI auf "Memo einlesen" klickt.
    Seltsamer Weise muss man aber manchmal 2 x darauf klicken, damit eingelesen wird.

    Zur Info:
    Die GUI ist zwar deaktiviert (Titelleiste grau statt blau), aber wie gesagt, funktioniert es meist mit einem Klick.
    Manchmal aber eben nicht... und das liegt offenbar nicht daran, dass die GUI nicht aktiviert ist (blaue Titelleiste).

    Gibt´s dafür noch ne Lösung oder ne Idee?

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 11. September 2015 um 07:56

    Hallo "gmmg",

    habe das Thema nun als gelöst markiert ;)

    Danke und schöne Grüße (auch von den Kolleg-/innen)

    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 10. September 2015 um 12:18

    Klar, ich stelle gerne den kompletten Code hier ein...

    Allerdings habe ich die Fenstergröße und die Fensterbezeichnungen angepaßt, sowie den Speicherort sowie den Fenstertitel geändert.
    Aber das kann sich ja jeder individuell ändern.

    Hier also der komplette Code:

    Code
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <Word.au3>
    #NoTrayIcon
    ; activate part match mode of title
    AutoItSetOption("WinTitleMatchMode",2)
    $AutoIT = GUICreate("  Memo speichern", 230, 155)
    $Read = GUICtrlCreateButton("Memo einlesen", 70, 20, 100, 25) ; Abstand von li, oben, Breite, Höhe
    $ok1 = GUICtrlCreateLabel("",180, 25, 155, 25)
    GUICtrlCreateLabel("Bitte Nummer + Name eingeben!",45, 60, 180, 25) ; Abstand von li, oben, Breite, Höhe
    $Number = GUICtrlCreateInput("", 20, 80, 190, 25)
    $Save = GUICtrlCreateButton("Memo speichern", 70, 120, 100, 25)
    GUICtrlSetState($Save, $GUI_DISABLE)	; Deaktiviert den Speichern Button
    GUISetState(@SW_SHOW)
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $Read
    			$text = "" ; leert Variable
    			_get_Text()
    			Sleep(1000)
    			If $text <> "" Then
    				GUICtrlSetData($ok1, "OK")
    				GUICtrlSetState($Save, $GUI_ENABLE)	; Aktiviert den Speichern Button
    				GUICtrlSetState($Read, $GUI_DISABLE)	; Deaktiviert den LeseButton
    			EndIf
    		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, "")
    					GUICtrlSetState($Save, $GUI_DISABLE)	; Deaktiviert den Speichern Button
    					GUICtrlSetState($Read, $GUI_ENABLE)	; Aktiviert den Lese Button
    					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 = "C:\Pfad\"  ; Pfad zum Speicher der Dokumente
    ;~ 	; Word starten
    ;~ 	$oWord = ObjCreate("Word.Application")
    ;~ 	; leeres Dokument hinzufügen
    ;~ 	$oDoc = $oWord.Documents.Add()
    ;~ 	; make word visible
    ;~ 	$oWord.Visible = true
    ;~ 	; insert text into document
    ;~ 	$oDoc.Content.Text = $text
    	$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, "", "The file exists." & @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 = "Fenstertitel"
    	; 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 (2000)
    	Send("^a"); alles markieren
    	Sleep (1000)
    	Send("^c"); kopieren
    	$text = ClipGet()
    	;MsgBox(0,"",$text)
    EndFunc
    Alles anzeigen


    Danke nochmals und schöne Grüße,
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 10. September 2015 um 11:56

    Hallo "gmmg",

    hoffe Du hast mein letztes Posting gelesen...
    Es funktioniert ja nun (siehe oben) :)

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 10. September 2015 um 11:31

    Sorry... nochmal ich.

    Ich glaube, ich hab´s.

    Habe einfach die Textzeile 77 statt 78 wieder aktiviert und jetzt klappt es... inkl. Formatierung :)

    Also diese hier habe ich aktiviert:
    $wintitle = "Stiftungsanträge / Einzelfallhilfen"

    Klappt jetzt auch durchgehend mit Aufzählungen etc.

    Danke und Gruss,
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 10. September 2015 um 11:28

    Aaaah, Du hast das jetzt mit Strg A, C, V gelöst :)

    Aber müßten die Zeilen

    Sleep (2000)
    Send("^a"); alles markieren
    Sleep (1000)
    Send("^c"); kopieren
    $text = ClipGet()

    nicht weiter hoch stehen... denn in Zeile 73 wird Word ja schon geschlossen...

    *** hoffe die Frage ist jetzt nicht total doof ***

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 10. September 2015 um 11:16

    ...da kommt schon beim Klick auf LESEN die Meldung "Konnte Fenster nicht finden"...
    Ich finde aber jetzt auf Anhieb auch keinen Schreibfehler o.ä.

    Der Code dieser Meldung steht in Zeile 83

    In Zeile 78 im neuen Code steht "$wintitle = "Dokument1 - Microsoft Word""
    Im alten Code stand "$wintitle = "Stiftungsanträge / Einzelfallhilfen"", was vom Fenstertitel her auch richtig ist.


    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 10. September 2015 um 11:06

    Habe gerade mal mit den Zielformaten herum getestet.
    Dazu habe ich einfach mal die 0 eingegeben im Code. Aber auch das brachte keine Veränderung.
    Ebenso der Test, die Tatei als RTF abzuspeichern (mit dem Zusatz 6 im Code) brachte kein formatiertes Dokument.
    Zwar wurde tatsächlich ein ".rtf" erzeugt, aber leider auch unformatiert.

    Hier mal die Zielformate, die ich in einem Thread hier im Forum gefunden hatte:

    Zielformate im _WordDocSaveAs sind u.a.:
    0 = .doc
    3 = .txt
    6 = .rtf
    8 = .htm
    11 = .xml
    12 = .docx
    17 = .pdf

    Merkwürdig ist ja, dass es problemlos funktioniert, wenn ich den Text manuell (Strg A / Strg C / Strg V) kopiere und speichere.

    Vielleicht noch wichtig:
    Meine SCI-TE-Version ist die 3.4.1
    Denn in einem Thread steht folgender Hinweis:

    reinhardt1julian verwendet die 3.3.10.2 Version von AutoIt. Dort wurde die Word UDF durch die WordEX ersetzt.
    Daher heissen alle Funktionen nun _Word_* statt _Word*.

    Meine Version ist zwar neuer, aber vielleicht hilft Dir das weiter... :)

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 10. September 2015 um 09:09

    Hallo "gmmg",

    habe das gerade mal getestet.
    Leider wird auch damit nicht die Formatierung übernommen.
    Zusätzlich bleibt das Word auch offen und wird nicht geschlossen.

    Die Abfrage nach überschreiben (ja/nein) erscheint auch da nicht.

    Das mit der Abfrage ist nicht ganz so schlimm, da eh in 99% der Fälle überschrieben werden soll.
    Aber komisch ist es ja schon, dass dieser Code-Teil nicht funktioniert.

    Mit dem formatieren ist schon schlimmer, da nicht nur fett markierte Sätze nicht übernommen werden, sondern auch Aufzählungen nicht als solche formatiert werden.

    Im Internet habe ich gestern schon nach Lösungen dafür gesucht, aber noch nichts gefunden. Werde mal weiter suchen.
    Seltsam ist, dass es manuell ja funktioniert - nur eben mit dem AutoIT-Script nicht...

    Danke und Gruss,
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 9. September 2015 um 15:54

    Kurze Rückmeldung:

    Die Kollegen sind begeistert und ich soll einen Dank ausrichten :)

    Nur aufgefallen ist, dass die Formatierungen aus dem Memofenster nicht in das Word-Dokument übernommen werden (war mir gar nicht aufgefallen).
    Liegt das am Speicherprozess über AutoIT?

    Z.B. sehe ich in Zeile 53 den Eintrag: $oWord.Selection.TypeText ($text)
    Bedeutet der, dass quasi reiner Text kopiert wird?
    Gibt es vielleicht hier eine Möglichkeit, aus Text = Doc zu machen? :)

    Ist jetzt nur eine Vermutung...

    Und es erscheint keine Abfrage, wenn der Dateiname schon existiert.
    Ist aber in unserem Fall nicht so schlimm, da eh immer überschrieben werden soll

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 9. September 2015 um 14:50

    Ich habe jetzt genau diese Zeile auskommentiert. Damit geht es.

    Das Fenster bleibt jetzt auch immer vorne stehen.

    Vielen Dank ;)

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 9. September 2015 um 13:38

    Hallo und danke nochmals...

    Ja, ich hatte schon die Buttons umgeändert. Hat prima geklappt.
    Auch ansonsten hatte ich schon mit dem Code herum probiert... leider ohne Erfolg.

    Jetzt - mit Deinem neuen Code - passiert folgendes:

    Das GUI-Fenster öffnet sich
    Ich klicke auf "Memo einlesen"
    Dann verschwindet das GUI-Fenster (minimiert sich in die Taskleiste)
    Ich hole es von dort wieder hervor
    Dann gebe ich in das Eingabefeld die Nummer und Name ein
    Jetzt klicke ich auf "Memo speichern"
    Dann öffnet sich ein neues Word-Dokument und der Inhalt des Textfeldes wird korrekt eingefügt
    Nun erscheint die folgende Fehlermeldung:

    ---------------------------
    AutoIt Error
    ---------------------------
    Line 54 (File "C:\Users\imebro\Desktop\NEU.au3"):

    _Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12)
    _Word_DocSaveAs($oDoc, "d:\"& ^ ERROR

    Error: Variable used without being declared.
    ---------------------------
    OK
    ---------------------------

    Ich frage mich, wieso dort zusätzlich auf "d:\" gespeichert wird... ist das vielleicht der Fehler?

    Danke und Gruss,
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 9. September 2015 um 09:33

    Hallo nochmal und danke für die Erklärung.

    Ich beschreibe jetzt mal Schritt für Schritt, was passiert, wenn ich Deinen Code ausführe:

    1) Klick auf lesen --> Die GUI wird in die Taskleiste minimiert (ob der Text aus dem Programm-Textfenster eingelesen wurde, weiß ich zu diesem Zeitpunkt noch nicht)

    2) Ich klicke die GUI in der Taskleiste an, damit sie wieder nach vorne kommt und gebe die Nummer ins Feld "Bitte Nummer eingeben!" ein
    --> Es öffnet sich ein weiteres Fenster mit dem Titel "Info". Darin steht "Bitte Nummer + Name eingeben".
    Darunter befindet sich ein Textfeld. Darunter ein Button "OK" und ein Button "Cancel".

    3) Ich gebe nun auch dort nochmals die Nummer ein und klicke auf OK.

    4) Nun öffnet sich ein neues Word-Dokument und der eingelesene Text wird eingefügt.
    Das zweite Fenster "Info", wo ich zum 2. Mal die Nummer eingetragen hatte, hat sich geschlossen.
    Das erste Fenster (GUI), mit Lesen und Speichern Button, ist noch sichtbar.

    5) Ich klicke im GUI-Fenster nun auf "Speichern" (die zuvor eingetragene Nummer steht dort noch drin)

    6) Es erscheint wieder das zweite Fenster mit dem Titel "Info", wo darunter "Bitte Nummer + Name eingeben" steht...

    7) Ich gebe dort nochmal die Nummer ein und klicke dann wieder auf OK

    8.) Es öffnet sich ein zweites Word-Dokument... usw... scheint eine Schleife zu sein.


    Der Ablauf sollte folgender sein:

    1) Öffnen Deiner GUI (diese soll im Vordergrund bleiben).
    --> möglichst den Button "Lesen" ändern in "Memo einlesen".
    Beim Klick auf "Memo einlesen" soll der Text eingelesen werden aus dem Programm-Textfenster.

    2) Darunter sollte in der GUI einfach nur der Text stehen "Bitte Nummer + Namen eingeben" und darunter ein Eingabefeld dafür...

    3) Darunter sollte der Text "Memo speichern" stehen und darunter der Button "Speichern".

    4) Mit einem Klick auf "Speichern" soll der anfangs eingelesene Text gespeichert werden im Verzeichnis
    "S:\ARCHIV\Mittelvergabe\Memos\" und zwar als ".doc"
    Toll wäre noch eine Prüfung, ob die Datei bereits existiert mit der Frage, ob diese überschrieben werden soll, falls sie existiert.

    So wäre es perfekt!! :)

    Danke und schöne Grüße,
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 8. September 2015 um 15:35

    Danke Dir... sieht gut aus.

    Habe im Moment eine Lösung, die (fast) auch funktioniert.
    Der Text wird ausgelesen und in ein Word-Dokument kopiert.
    Dann öffnet sich der "speichern-unter"-Dialog... aber es wird nicht das von mir angegebene Verzeichnis geöffnet (S:\Archiv\Mittelvergabe\Memos).
    Und das Eingabefeld für den Dateinamen ist auch nicht leer...

    Hier der Code:

    Code
    #NoTrayIcon
    ; activate part match mode of title
    AutoItSetOption("WinTitleMatchMode",2)
    ; Titel of Window
    $wintitle = "Stiftungsanträge / Einzelfallhilfen"
    ; 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]")
    
    
    ; Word starten
    $objWord = ObjCreate("Word.Application")
    ; leeres Dokument hinzufügen
    $doc = $objWord.Documents.Add()
    ; make word visible
    $objWord.Visible = true
    ; insert text into document
    $doc.Content.Text = $text
    
    
    ; Save document
    $objWord.SaveAs("S:\ARCHIV\Mittelvergabe\Memos\" & ".doc")
    ; close document
    $doc.Close()
    ; close word
    $objWord.Quit()
    Alles anzeigen


    Aber ich versuche zunächst mal Dein Script... bin gespannt :)

    P.S.:
    Habe jetzt das Script mal getestet, aber verstehe den Ablauf nicht so recht.
    Wenn ich auf "Lesen" klicke, weiß ich nicht so recht, was passiert. Dann werde ich 2 x nach der Nummer gefragt und daher irritiert mich das.

    Wenn in meinem Script die beiden oben beschriebenen Problemchen noch gelöst werden (Speicherndialog im richtigen Verzeichnis und Dateinamenfeld leer), dann funktioniert alles gut!

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 8. September 2015 um 12:47

    Vielen Dank nochmal...

    Problematisch ist, dass ich in diese Fensterbox ja den kopierten Text zunächst eingeben muss.
    Genau diesen Schritt wollte ich ja einsparen :)

    Hier ein AutoIT-Script, welches funktioniert bis zu dem Punkt, wo die Nummer eingegeben werden muss:

    Code
    #NoTrayIcon
    ; activate part match mode of title
    AutoItSetOption("WinTitleMatchMode",2)
    ; Titel of Window
    $wintitle = "Stiftungsanträge / Einzelfallhilfen"
    ; 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]")
    
    
    ; Word starten
    $objWord = ObjCreate("Word.Application")
    ; leeres Dokument hinzufügen
    $doc = $objWord.Documents.Add()
    ; make word visible
    $objWord.Visible = true
    ; insert text into document
    $doc.Content.Text = $text
    Alles anzeigen


    Somit habe ich ein offenes neues Word-Dokument, in dem der aus dem Programm schon automatisch kopierte Text eingefügt ist.
    Jetzt brauche ich nur noch diese Input-Box, womit die Nummer abgefragt wird und dann das speichern ins Verzeichnis "S:\ARCHIV\Mittelvergabe\Memos" als ".doc"

    Wäre toll, wenn das noch klappt ;)

    LG
    imebro

  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • imebro
    • 8. September 2015 um 11:36

    ...habe eben mal getestet.
    Wenn ich das "memo.vbs" manuell (per Doppelklick) vom Desktop aus starte, erscheint auch diese Fehlermeldung :(

    Hier mal der Code:

    Code
    Attribute VB_Name = "memo"
    
    
    Sub memo()
    Attribute memo.VB_Description = "Makro aufgezeichnet am 04.09.2015 von imebro"
    Attribute memo.VB_ProcData.VB_Invoke_Func = "Normal.NewMacros.memo2"
    '
    ' memo Makro
    ' Makro aufgezeichnet am 04.09.2015 von imebro
    '
        nummer = InputBox("Bitte Nummer + Name eingeben:")
        fname = "S:\ARCHIV\Mittelvergabe\Memos\" & nummer & ".doc"
        ActiveDocument.SaveAs FileName:=fname, FileFormat:=wdFormatDocument, _
        LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
        :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False
        Application.Quit
    End Sub
    Alles anzeigen

    LG
    imebro

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™