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. gmmg

Beiträge von gmmg

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

    • gmmg
    • 10. September 2015 um 12:11

    Ja, hab ich.
    Wollte dir nur nochmal erklären, für was eine Funktion ist usw.

    Stellst du dein Script nochmal komplett zur verfügung, eventuell haben daran auch andere interesse.

    Danke

    Gruß gmmg

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

    • gmmg
    • 10. September 2015 um 11:53

    ja, gibt sicher auch noch eine andere möglichkeit, aber auf die schnelle, kenne ich da auch nichts.

    die Zeilen haben nichts damit zu tun ..

    es gibt ja einaml die funktion _get_Text() und einmal die _Save_to_Word() und werden jeweils in dem Case zweig aufgerufen.
    in der _get_Text() steht alles, was mit dem auslesen des textes zu tun hat. in der _Save_to_Word() alles, vom word öffnen bis speichern.
    dabei ist es egal, ob die eine weiter oben oder unter der anderen funktion im quelltext steht.

    als erklärung...
    du startest das autoit script. wenn alles geladen ist, bleibt das in der While1 Wend schleife (durchläuft diese permanent) klickst du nun den Button lesen, welcher im case zweig Case $Read ist, wird alles ausgeführt was darunter in dem Case steht unter anderem die Funktion _get_Text(). Praktisch ruft das Script die Funktion auf, spring zu dem Quelltext der funktion arbeitet die befehle ab und springt wieder zurück, um den rest Sleep (1000) usw. abzuarbeiten.


    AutoIt
    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


    man könnte die Funktion jetzt an einer beliebigen anderen stelle zum aufruf einbauen.
    Die Befehle innerhalb der Funktion könntest du auch im Case rein schreiben, zum einen Wird das bei einem großen Script unübersichtlich und man könnte aus einem weiteren Case zweig diese nicht nochmal aufrufen.

    gruß gmmg

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

    • gmmg
    • 10. September 2015 um 11:08

    dann probiere es doch mal so ...

    in der Funktion _Save_to_Word() ist das "$oWord.Selection.TypeText ($text)" ist durch "$oWord.Selection.Paste" ersetzt ...
    Eingelesen wir der Text über die Send("^a") = alles Markieren und Send("^c") kopieren Funktion.

    eventuell kannst du die Sleep (pause) rausnehmen oder verringern..

    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("", 200, 150)
    $Read = GUICtrlCreateButton("Lesen", 50, 20, 100, 25)
    $ok1 = GUICtrlCreateLabel("",160, 25, 150, 25)
    GUICtrlCreateLabel("Bitte Nummer eingeben!",20, 60, 150, 25)
    $Number = GUICtrlCreateInput("", 20, 80, 150, 25)
    $Save = GUICtrlCreateButton("Speichern", 50, 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 = "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, "", "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 = "Stiftungsanträge / Einzelfallhilfen"
    	$wintitle = "Dokument1 - Microsoft Word"
    	; 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

    gruß gmmg

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

    • gmmg
    • 10. September 2015 um 08:45

    Hallo imebro,

    eigentlich sollte die Abfrage im folgenden Abschnitt kommen.

    AutoIt
    If $iFileExists Then
        $ja_nein = MsgBox(4, "", "The file exists." & @CRLF & "Überschreiben Ja/Nein")
        IF $ja_nein = 6 Then _Word_DocSaveAs($oDoc, "S:\ARCHIV\Mittelvergabe\Memos\" & $txt_Number) ; save as doc"
        IF $ja_nein = 7 Then MsgBox(0,"","Datei wird nicht gespeichert!")
        Else


    Wegen dem Format musst du mal im Internet schauen, ob es da Beispiele gibt ...
    Hast du denn mal den Code aus deinem Script genommen?

    AutoIt
    ;anstelle von
    
    
    $oWord = _Word_Create(1)
    $oDoc = _Word_DocAdd($oWord)
    $oWord.Selection.TypeText ($text)
    
    
    ;nimmst du den Bereich aus deinem Script und testest mal ob das mit dem Format dann passt 
    
    
    ; 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
    Alles anzeigen

    Gruß gmmg

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

    • gmmg
    • 9. September 2015 um 15:14

    Hallo,

    klar verschwindet das Word wieder, weil es mit dem Befehl _Word_Quit($oWord) geschlossen wird.

    Hast du mal ein gespeichertes Dokument überprüft, ob die Daten drin stehen?

    Ursprünglich hast du ja mal erwähnt, dass du für jedes Memo was du aus deinem Hauptprogramm ziehst ein einzelnes Word abspeichern willst.
    Wenn das nicht so ist, müsste das Script umgebaut werden, das der Text aus mehreren Memos angefügt wird.

    Die Autoit GUI aus meinem Quelltext bleibt offen, bis man es über das Kreuz schließt.
    Du kannst daher so oft du möchtest den Text aus deinem Hauptprogramm auslesen.
    Du drückst den Lesen Button (Text wird aus dem anderen Programm gelesen), danach wieder Speichern usw. So kannst du das wiederholen, bis die Tasten glühen :)

    zu 2. kann ich nicht testen, weil ich eure Anwendung nicht habe, die auf den Fenstertitel reagiert. Da der Text aber ausgelesen wird, sollte das ja funktionieren.

    Gruß gmmg

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

    • gmmg
    • 9. September 2015 um 14:18

    1. die Zeile _Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12) solltest du auskommentieren und ist es auch in meinem letzten Script! mit dem Parameter 12 _Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12) speichert man die datei im docx format

    2. dein Code WinActivate($wintitle) aktiviert das Fenster mit dem Titel "Stiftungsanträge / Einzelfallhilfen"

    den Bereich im Quelltext kann ich nicht testen, da ich die Anwendung nicht habe ...


    • ; 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]")


    gruß gmmg :)

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

    • gmmg
    • 9. September 2015 um 13:16

    Hallo,

    habe ja zu meinem Script geschrieben, das es noch nicht kommplett umgesetzt ist.
    Das solltest du ja entsprechend abändern, das du auch was lernst :)

    Teste mal das Script ... Die Namen der Button kannst du selbst abändern. ($Read = GUICtrlCreateButton("Lesen", 50, 20, 100, 25)) usw.

    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("", 200, 150)
    $Read = GUICtrlCreateButton("Lesen", 50, 20, 100, 25)
    $ok1 = GUICtrlCreateLabel("",160, 25, 150, 25)
    GUICtrlCreateLabel("Bitte Nummer eingeben!",20, 60, 150, 25)
    $Number = GUICtrlCreateInput("", 20, 80, 150, 25)
    $Save = GUICtrlCreateButton("Speichern", 50, 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()
    
    
    	$oWord = _Word_Create(1)
    	$oDoc = _Word_DocAdd($oWord)
    	$oWord.Selection.TypeText ($text)
    	;_Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12) ; save as docx")
    
    
    	Local $iFileExists = FileExists("S:\ARCHIV\Mittelvergabe\Memos\" & $txt_Number)
    
    
    	If $iFileExists Then
    		$ja_nein = MsgBox(4, "", "The file exists." & @CRLF & "Überschreiben Ja/Nein")
    		IF $ja_nein = 6 Then _Word_DocSaveAs($oDoc, "S:\ARCHIV\Mittelvergabe\Memos\" & $txt_Number) ; save as doc"
    		IF $ja_nein = 7 Then MsgBox(0,"","Datei wird nicht gespeichert!")
    	Else
    		_Word_DocSaveAs($oDoc, "S:\ARCHIV\Mittelvergabe\Memos\" & $txt_Number) ; save as doc"
    	EndIf
    
    
    	_Word_Quit($oWord)
    
    
    EndFunc
    
    
    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]")
    
    
    EndFunc
    Alles anzeigen

    Gruß gmmg

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

    • gmmg
    • 9. September 2015 um 08:42

    Wenn du in meinen Script auf lesen klickst, wird der Text des Elementes [CLASS:TwwDBRichEdit; INSTANCE:1]") ausgelesen.
    1. Grundsätzlich müsstest du uns mal noch sagen, ob sich das Programm wie in deinem SScript bei jedem aufruf wieder beenden soll oder die GUI, wie in meinem Script offen bleibt.

    Dafür ist die While 1 - Wend Schleife vorhanden. In dieser Steuert man nun die Switch Case Abfragen.

    Wenn man nun z.B. den Speichern Button drückt, wird der Quellcode bei Case $Save ausgeführt.
    Drückt man den Lesen Button, wird der Quelltext von Case $Read ausgeführt, das ist in dem Fall, dass die Variable $text geleert wird und es wird die Funktion zum auslesen des Textes deiner Stiftungsanträge / Einzelfallhilfen ausgeführt.

    Das mal zum Verständnis ...

    Gruß gmmg

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

    • gmmg
    • 8. September 2015 um 15:30

    Ich würde das über die GUI machen.

    Einen Lese Button und einen für Speichern. (siehe Anhang)

    Du möchtest ja sicher auch noch eine Fehlerbehandlung mit einbauen.

    Ist aber noch nicht kommplett umgesetzt ...

    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("", 200, 150)
    $Read = GUICtrlCreateButton("Lesen", 50, 20, 100, 25)
    GUICtrlCreateLabel("Bitte Nummer eingeben!",20, 60, 150, 25)
    $Number = GUICtrlCreateInput("", 20, 80, 150, 25)
    $Save = GUICtrlCreateButton("Speichern", 50, 120, 100, 25)
    
    
    GUISetState(@SW_SHOW)
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $Read
    			$text = ""
    			_get_Text()
    
    
    		Case $Save
    			;$txt_Edit = GUICtrlRead($Edit)
    			;$txt_Filename = GUICtrlRead($Filename)
    
    
    			$nummer = ""
    
    
    			While 1
    				$nummer = InputBox("Info","Bitte Nummer + Name eingeben:", "")
    				If @error = 1 Then
    					MsgBox(0,"Achtung","speichern abgebrochen")
    					ExitLoop
    				Else
    					If  $nummer <> "" Then
    						_Save_to_Word()
    						ExitLoop
    					Else
    						MsgBox(0,"Achtung","darf nicht leer sein")
    					EndIf
    				EndIf
    			WEnd
    	EndSwitch
    WEnd
    
    
    Func _Save_to_Word()
    
    
    	$oWord = _Word_Create(1)
    	$oDoc = _Word_DocAdd($oWord)
    	$oWord.Selection.TypeText ($text)
    	;_Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12) ; save as docx")
    	;_Word_DocSaveAs($oDoc, "S:\ARCHIV\Mittelvergabe\Memos\" & $nummer) ; save as doc")
    	;_Word_Quit($oWord)
    
    
    EndFunc
    
    
    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]")
    
    
    EndFunc
    Alles anzeigen


    Gruß gmmg

    Bilder

    • gui.JPG
      • 14,91 kB
      • 232 × 191
  • copy & paste und Aufruf eines VB-Scriptes mit AutoIT möglich?

    • gmmg
    • 8. September 2015 um 13:29

    eigentlich muss du nur anstelle von $txt_Edit = GUICtrlRead($Edit) deinen Teil $text = ControlGetText($wintitle,"","[CLASS:TwwDBRichEdit; INSTANCE:1]") einsetzen ...


    hab grad keine zeit, sonsdt würde ich mir das nochmal ansehen...

  • Einfügen von msTSHomeDirectory?

    • gmmg
    • 8. September 2015 um 13:03

    eine Suche nach dem Attribute msTSProfilePath brachte folgendes

    https://www.faq-o-matic.net/2010/01/13/ter…utzte-neuerung/
    http://blogs.msdn.com/b/alejacma/arc…-ad-vb-net.aspx


    zum setzen sollte die AD Funktion _AD_ModifyAttribute gehen, falls es überhaupt geht

    gruß gmmg

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

    • gmmg
    • 8. September 2015 um 12:29

    hier nochmal mit Inputbox und Fehlerabfragen ... :)

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <Word.au3>
    
    
    $AutoIT = GUICreate("", 500, 500)
    $Edit = GUICtrlCreateEdit("First line" & @CRLF, 10, 10, 480, 300, 0x0080 + 0x0040)
    ;$Filename = GUICtrlCreateInput("filename ohne endung", 40, 350, 150, 25)
    $Save = GUICtrlCreateButton("Save", 40, 380, 100, 25)
    
    
    GUISetState(@SW_SHOW)
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $Save
    			$txt_Edit = GUICtrlRead($Edit)
    			;$txt_Filename = GUICtrlRead($Filename)
    			$nummer = ""
    
    
    			While 1
    				$nummer = InputBox("Info","Bitte Nummer + Name eingeben:", "")
    				If @error = 1 Then
    					MsgBox(0,"Achtung","speichern abgebrochen")
    					ExitLoop
    				Else
    					If  $nummer <> "" Then
    						_Save_to_Word()
    						ExitLoop
    					Else
    						MsgBox(0,"Achtung","darf nicht leer sein")
    					EndIf
    				EndIf
    			WEnd
    	EndSwitch
    WEnd
    
    
    Func _Save_to_Word()
    
    	$oWord = _Word_Create(1)
    	$oDoc = _Word_DocAdd($oWord)
    	$oWord.Selection.TypeText ($txt_Edit)
    	;_Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12) ; save as docx")
    	_Word_DocSaveAs($oDoc, "S:\ARCHIV\Mittelvergabe\Memos\" & $nummer) ; save as doc
    	_Word_Quit($oWord)
    
    EndFunc
    Alles anzeigen

    gruß gmmg

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

    • gmmg
    • 8. September 2015 um 11:32

    startet denn dein Script über Start-> ausführen bzw. in der cmd?

    das scheint mir kein fehler vom autoit zu sein.
    stell uns doch mal den quelltext vom vbs zur verfügung.

    kannst ja auch nochmal folgendes probieren

    #include <Process.au3>
    _RunDos("C:\VBS_Scripte\test_.vbs")

    obwohl ich denke, das Autoit das VBS Script startet

    gruß gmmg

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

    • gmmg
    • 8. September 2015 um 11:20

    so startet es bei mir.

    Beispiel
    ShellExecute("C:\VBS_Scripte\DateToInteger8.vbs")

    gruß gmmg

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

    • gmmg
    • 7. September 2015 um 16:26

    Ach Quatsch, das ist ganz easy :)

    Hast du mein Beispiel mal getestet?
    Einfach mal im Scripteditor mit F5 starten, einen Text reinkopieren und speichern drücken ...

    Das Word wird automatisch geöffnet, ein leeres Dokument erzeugt und der Text eingefügt.

    Hier nochmal mein beispiel mit Speichern unf schließen ...

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <Word.au3>
    
    
    $AutoIT = GUICreate("", 500, 500)
    $Edit = GUICtrlCreateEdit("First line" & @CRLF, 10, 10, 480, 300, 0x0080 + 0x0040)
    $Filename = GUICtrlCreateInput("filename ohne endung", 40, 350, 150, 25)
    $Save = GUICtrlCreateButton("Save", 40, 380, 100, 25)
    
    
    GUISetState(@SW_SHOW)
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $Save
    			$txt_Edit = GUICtrlRead($Edit)
    			$txt_Filename = GUICtrlRead($Filename)
    			_Save_to_Word()
    	EndSwitch
    WEnd
    
    
    Func _Save_to_Word()
    
    
    	$oWord = _Word_Create(1)
    	$oDoc = _Word_DocAdd($oWord)
    	$oWord.Selection.TypeText ($txt_Edit)
    	;_Word_DocSaveAs($oDoc, "d:\"& $txt_Filename,12) ; save as docx")
    	_Word_DocSaveAs($oDoc, "d:\"& $txt_Filename) ; save as doc")
    	_Word_Quit($oWord)
    
    
    EndFunc
    Alles anzeigen

    dir wird hier sicher auch noch geholfen :)
    kannst du mal von deinem Fenster, wo du die Daten raus kopierst, einen Screenshot anhängen? die Daten darin, kannst du ja unkenntlich machen.

    mit dem Befehl Send() kannst du das Markieren, Kopieren, Einfügen automatisieren.

    Send("^a"); alles markieren
    Send("^c"); kopieren
    Send("^v"); einfügen

    Gruß gmmg :D

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

    • gmmg
    • 7. September 2015 um 14:26

    Der Code ist ja nur ein Grundgerüst als Beispiel, den musst du natürlich noch anpassen :)

    Ja, kannst du einfach in den Script Editor kopieren und über F5 starten, ohne da jedesmal eine Exe zu erstellen.
    Richtig, damit brauchst du kein vbs makro in Word.

    Dein GUI (Class: TwwDBRichEdit) auszulesen und einzubauen sollte nicht so schwer sein ...

    Du öffnest diese, aktivierst das entsprechende Fenster, markierst deinen Text und sendest ihn an Word .. dazu brauchst du den Zwischenschritt mit dem $Edit in meinem Beispiel natürlich nicht.

    Schau dir dazu auch "WinExists", "WinActivate", "ClipPut - Zwischenablage", "Send Key List" bzw. "Send", eventuell noch Mousclick in der Hilfe an...

    Gruß gmmg

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

    • gmmg
    • 7. September 2015 um 13:07

    Ich würde das in etwas so machen ...

    In Autoit eine GUI Basteln, mit einem Editfeld (für den Text), einem Textfeld (für die Nummer des DOC) und einem Save Button.


    Beispiel ...

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <Word.au3>
    
    
    $AutoIT = GUICreate("", 500, 500)
    $Edit = GUICtrlCreateEdit("First line" & @CRLF, 10, 10, 300, 300, 0x0080 + 0x0040)
    ;$Filename = GUICtrlCreateInput("", 40, 350, 180, 25)
    $Save = GUICtrlCreateButton("Save", 40, 380, 100, 25)
    
    
    GUISetState(@SW_SHOW)
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Save
                $txt = GUICtrlRead($Edit)
                _Save_to_Word()
        EndSwitch
    WEnd
    
    
    Func _Save_to_Word()
    
    
        Local $oWord = _Word_Create()
    
    
        If @error <> 0 Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_Create Example", _
                "Error creating a new Word application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
        If @extended = 1 Then
            ;MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_Create Example", "MS Word was not running when _Word_Create was called.")
        Else
            ;MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_Create Example", "MS Word was already running when _Word_Create was called.")
        EndIf
    
    
        _Word_DocAdd($oWord)
        $oWord.Selection.TypeText ($txt)
        ;speicher word dokument
        ;beende Word
    
    
    EndFunc
    Alles anzeigen


    Gruß gmmg

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

    • gmmg
    • 7. September 2015 um 09:32

    Hallo imebro :)

    wie water schon geschrieben hat am besten die Word Funktion dazu benutzen. Am besten mal in die Hilfe schauen.

    Poste doch mal das VB Schript, da kann man dir sicher schenller helfen :)

    Gruß gmmg

  • UNIX Timestamp in Millisekunden

    • gmmg
    • 3. September 2015 um 13:25

    schau mal hier, ob das dir weiterhilft ...

    http://www.rlmueller.net/Integer8Attributes.htm

    hierzu das VBS Script dazu ...

    AutoIt
    ' DateToInteger8.vbs
    ' VBScript program demonstrating how to convert a datetime value to
    ' the corresponding Integer8 (64-bit) value. The Integer8 value is the
    ' number of 100-nanosecond intervals since 12:00 AM January 1, 1601,
    ' in Coordinated Universal Time (UTC). The conversion is only accurate
    ' to the nearest second, so the Integer8 value will always end in at
    ' least 7 zeros.
    
    
    ' beispiel: "C:\test.vbs" "5/5/2010 0:00:00 PM"
    '
    ' ----------------------------------------------------------------------
    ' Copyright (c) 2004 Richard L. Mueller
    ' Hilltop Lab web site - http://www.rlmueller.net
    ' Version 1.0 - June 11, 2004
    '
    ' You have a royalty-free right to use, modify, reproduce, and
    ' distribute this script file in any way you find useful, provided that
    ' you agree that the copyright owner above has no warranty, obligations,
    ' or liability for such use.
    
    
    Option Explicit
    
    
    Dim dtmDateValue, dtmAdjusted, lngSeconds, str64Bit, objShell, lngBiasKey, lngBias, k, fso, file
    Dim WshShell
    dtmDateValue = InputBox("   Enter Date to convert" & vbcrlf & vbcrlf &"    5/5/2010 0:00:00 PM","Integer8 Converter", " 5/5/2010 0:00:00 PM")
    
    
    ' Evaluate the user input.
    If dtmDateValue = "" Then    ' Canceled by the user
        WScript.Echo "Canceled by the user"
    	WScript.Quit
    Else 
        'WScript.Echo dtmDateValue
    End If
    
    
    ' Obtain local Time Zone bias from machine registry.
    Set objShell = CreateObject("Wscript.Shell")
    lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _
    & "TimeZoneInformation\ActiveTimeBias")
    If UCase(TypeName(lngBiasKey)) = "LONG" Then
    lngBias = lngBiasKey
    ElseIf UCase(TypeName(lngBiasKey)) = "VARIANT()" Then
    lngBias = 0
    For k = 0 To UBound(lngBiasKey)
    lngBias = lngBias + (lngBiasKey(k) * 256^k)
    Next
    End If
    
    
    ' Convert datetime value to UTC.
    dtmAdjusted = DateAdd("n", lngBias, dtmDateValue)
    
    
    ' Find number of seconds since 1/1/1601.
    lngSeconds = DateDiff("s", #1/1/1601#, dtmAdjusted)
    
    
    ' Convert the number of seconds to a string
    ' and convert to 100-nanosecond intervals.
    str64Bit = CStr(lngSeconds) & "0000000"
    'Wscript.Echo "Integer8 value: " & str64Bit
    
    
    'Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.CreateTextFile("C:\ScriptLog.txt")
    
    
    'Set File = fso.OpenTextFile("C:\log.txt",8,true)
    file.WriteLine "Integer8 value: " & str64Bit
    file.close
    
    
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "%windir%\notepad C:\ScriptLog.txt"
    'WScript.Sleep 2000
    Alles anzeigen


    ansonsten gibt es ja diverse Webseiten, die einen Unix Timestamp umrechnen, da könntest du auch mal schauen, ob was passendes dabei ist.

  • IE: Login auf Website funktioniert nicht

    • gmmg
    • 1. September 2015 um 14:10

    Hallo aeiou123456,

    du musst hier erstmal die Form usw. auslesen. Ich mache das immer mit dem Firefox und dem Plugin Firebug

    Ein Beispiel ...

    $oForm = _IEFormGetObjByName($oIE, "Name der Form")
    $oUsername = _IEFormElementGetObjByName($oForm, "das entsprechende Element z.B. Username")
    _IEFormElementSetValue($oUsername, $user)
    $oPasswd = _IEFormElementGetObjByName($oForm, "das entsprechende Element z.B. Password")
    _IEFormElementSetValue($oPasswd, $pass)
    _IEFormSubmit ($oForm)
    $oSubmit = _IEGetObjByName($oIE, "Submit")
    _IEAction($oSubmit, "click")

    Dazu sollte es jede menge Beispiele geben, unter anderem auch in der Hilfe ...
    Alles andere haben die Vorgänger schon geschrieben.

    Gruß gmmg

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™