Hallo Oscar,
mal wieder was gelernt. Auf jedenfall herzlichen Dank!
Ich muß mein Script kpl. umbauen mit den Loops ...
hoffe das klappt.
DANKE!
Hallo Oscar,
mal wieder was gelernt. Auf jedenfall herzlichen Dank!
Ich muß mein Script kpl. umbauen mit den Loops ...
hoffe das klappt.
DANKE!
Hallo Oscar,
ich habe mal ein Beispielscript gemacht (Sorry, ging anders leider nicht)
Ich fasse mal alles zusammen:
1. Es gibt mehrere RegEx Suchpattern.
2. Die müssen in eine Zeile geschrieben werden. (CSV m. Trenner)
Ich denke dass man das jetzt nachvollziehen kann.
[autoit][/autoit][autoit][/autoit][autoit]#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
$Form1 = GUICreate("Form1", 440, 256, 422, 225)
$btnDatei = GUICtrlCreateButton("Textdatei generieren", 216, 152, 123, 41)
GUISetState(@SW_SHOW)
$Text = "Suche1Hans MüllerEnde1,Suche2HauptstrasseEnde2,Suche366554Ende3,Suche4HamelnEnde4"; hier kommen die Ergebnisse her!
[/autoit][autoit][/autoit][autoit]$Name = StringRegExp($text,'Suche1(.*?)Ende',3)
$Strasse = StringRegExp($text,'Suche2(.*?)Ende',3)
$Plz = StringRegExp($text,'Suche3(.*?)Ende',3)
$Ort = StringRegExp($text,'Suche4(.*?)Ende',3)
$datei = "test.txt"
;~ _ArrayDisplay($Name)
;~ _ArrayDisplay($Strasse)
;~ _ArrayDisplay($Plz)
;~ _ArrayDisplay($Ort)
$Adresse = $Name&";"&$Strasse&";"&$Plz&";"&$Ort ; Diese Felder sollen alle in die Textdatei in einer Zeile!
[/autoit][autoit][/autoit][autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btnDatei
[/autoit][autoit][/autoit][autoit]For $in In $Adresse ;alle items im array
FileWrite($datei, $in & @CRLF) ;in Datei schreiben
Next
ShellExecute($datei)
EndSwitch
WEnd
Liebe Grüße
Ilse
Hallo Andy,
erstmal Danke. Es klappt mit einer Suche.
Wenn ich jedoch mehrere Ergebnisse Verknüpfe dann nicht!
$Name = StringRegExp($text,'"name">\s\s(.*?)</span>\s\s</a>',3)
$Strasse = StringRegExp($text,'"streetAddress">(.*?)</span>',3)
$Plz = StringRegExp($text,'"postalCode">(.*?)</span>',3)
$Ort = StringRegExp($text,'"addressLocality">(.*?)</span>',3)
$datei = "test.txt"
[/autoit][autoit][/autoit][autoit]$Adresse = $Name&";"&$Strasse&";"&$Plz&";"&$Ort
[/autoit][autoit][/autoit][autoit]For $in In $Adresse ;alle items im array
FileWrite($datei, $in & @CRLF) ;in Datei schreiben
Next
Kannst du mir da noch bitte helfen.
Liebe Grüße
Ilse
Hallo Andy,
merci für die Tipps.
Das verwirrt mich etwas:
Dim $array[5] = [0, 1, 2, 3, 4]
Ich ermittle meine Arrays mit regex
$Test = StringRegExp($text,'"name">\s\s(.*?)</span>\s\s</a>',3)
muß ich das dann auch mit dim machen?
Liebe Grüße
Ilse
Hallo Techmix,
Deine Variante hatte ich auch schon probiert!
Mit Filewrite....
For $i = 1 to $Seite Step 1
$Name = StringRegExp($Daten,'"name">\s\s(.*?)</span>\s\s</a>',3)
[/autoit][autoit][/autoit][autoit]_ArrayDisplay($Name) ; zeigt z.B. 10 Einträge beim ersten Durchlauf
; zeigt z.B. 13 Einträge beim zweiten Durchlauf, die sollten ngehängt werden!
_FileWriteFromArray($sFile, $Name, -1 &@CRLF)
Next
$Name ist ein Array! (wird mit rexex ermittelt!
Wie kann ich diese Arrays (es sind ja mehrere) pro Loop (_Arraydisplay z. 13)
in die textdatei schreiben?
FileWriteLine($file, $Name[$i] & @CRLF)
Im Loop noch ein Loop... ich weiß nicht wo ich da ansetzen muß!
Hallo,
merci für deine Hilfe.
Das war's leider auch nicht!
Auch wenn ich den Parameter änder (1-2)
_FileWriteFromArray($sFile, $Test, 2& @CRLF)
Beispiel: Im ersten Durchlauf sind es COL 0 - 14 Einträge (15 Namen)
Im zwiten Durchlauf sind es COL 0 - 1 Einträge (2 Namen)
Und die Textdatei besteht aus 13 Einträgen!
Sollten aber 17 sein!
EDIT
[autoit]
For $i = 1 to $Seite
...
_ArrayDisplay($test)
_FileWriteFromArray($sFile, $Name, -1 &@CRLF)
Run("notepad.exe " & $sFile); Kontrolle
next
Also jeder Durchlauf wird geschrieben, nur nicht angehängt!
Hallo,
wie kann man die Werte v. _Arraydisplay an eine Textdatei anfügen.
Beispiel:
Bei jedem Loopvorgang werden unterschiedliche Werte m. _Arraydisplay angezeigt!
Und genau diese Werte sollen in einer Textdatei jedesmal angehängt werden!
Ein _Arraydisplay landet in der Textdatei. Aber beim nächsten Loop wird dieses übeschrieben.
Welchen Befehl gibt es fürs anhängen?
(Sorry, aber ich kann nur diesen Beispielcode posten. Https...)
[autoit]
#include <file.au3>
#include <array.au3>
dim $Name[14]
$sFile = @ScriptDir & "\Namen.txt"
For $i = 1 to $Seite Step 1
$Name = StringRegExp($Daten,'"name">\s\s(.*?)</span>\s\s</a>',3)
[/autoit][autoit][/autoit][autoit]_ArrayDisplay($Name) ; zeigt z.B. 10 Einträge beim ersten Durchlauf
; zeigt z.B. 13 Einträge beim zweiten Durchlauf, die sollten ngehängt werden!
Next
[/autoit][autoit][/autoit][autoit]_FileWriteFromArray($sFile, $Test, 1); hier sollen alle Loopwerte angefügt werden!
[/autoit][autoit][/autoit][autoit][/autoit]Würde mich über eure Hilfe freuen.
Viele Grüße
Ilse
Hallo,
konnte mich erst heute wieder melden.
Ich habe natürlich im Treeview alles probiert.
Man kann m. Tastaturabkürzungen
zwar den Baum in der TreeView aufklappen...
aber was mir noch aufgefallen ist. Wenn ich in der TreeView
einen bestimmten Eintrag anklicke, dann ändert sich die
(Autoit-Info) die ControlID.(Der Baum wird kpl. ausgewählt)
Die Logik wäre ja: einfach z.B. nacheinander die ControlID's
anzuklicken (1,2,3,4...) bis ich bei 5 bin.
Und das geht nicht. Gibt es da vielleicht noch andere Befehle
die man ausser ControlClick einsetzen muß.
Mit ControlSend ControlCommand bin ich da auch nicht weiter gekommen.
Liebe Grüße
Ilse
Hallo,
ich probiere schon seit einigen Tagen das Problem zu lösen.
Es handelt sich um ein (Finanz-Programm)
Ich möchte mit ControlClick einzelne Seiten aufrufen.
Ich habe m. Control-Befehlen u.v.m probiert
1. Problem:
Ich muß von Hand im Steuer-Program per TreeView mich mühsam
bis zur jeweiligen Maske heranklicken. Erst dann kann ich ControlClick f. die blauen Buttons verwenden.
2. Problem
In derTreeView kann ich nicht mit Autoit Info die einzelnen Controls anwählen.
Es wird nur das gesamte Control gezeigt.
Ich kann also nicht z.B. 5 ControlClicks verwenden um an mein Ziel zu kommen.
Wenn das Fenster aktiv ist kann ich ControlClick verwenden
[autoit]
WinActivate("Steuer","")
ControlClick("Steuer","","QWidget89","left",1); funktioniert (Blauer Button)
ändere ich in derTreeView den Eintrag, dann arbeitet dieser Befehl nicht mehr!
Ich möchte quasi per Control genau diese Maske aufrufen.
Ich habe aber gesehen, das das Steuer-Programm für jede Eingabemaske( MASKE RECHTS, zu der ich hin will)
bei den Controls (autoit-Info) Karteikarten benennt.
Zitat
zWinDialog_17021_Karteikarte
zWinDialog_1801_Karteikarte...
Wenn ich diese aufrufen könnte wäre das Problem gelöst!
Meine Frage:
Wie kann man diese Karteikarten direkt mit Controls... anspringen?
Oder, wie kann ich im TreeView einzelne Links auslesen. (da komme ich mit AutoIt-Info) nicht weiter!
Ich hoffe die Profis können mir helfen!
Liebe Grüße
Ilse
i2c
ja habe ich gelesen.
merci. Muß ich mir noch genauer ansehen
Andy
du hast ja recht.
Ich habe Probleme m. Formulierungen.
Sorry, bin heute etwas down nach Stunden tippen...
Kein Quiz...
Es müssen viele Daten ausgefüllt werden.
Sobald was geschrieben wurde ist diese Box nach 2 Sekunden beendet und es geht weiter...
Ilse
Zitat
reichlich Überflüssig, denn wer in der Hilfe zur InputBox() nachliest, findet den Parameter "timeout" den man ohne weiteres auf 2 Sekunden einstellen kann...
1. Timeout weiss ich, das ist nicht die Lösung.
$IPT1 = InputBox("Frage1", "Die Erste Frage","","","","","","",2)
3. Google suche (timer...kenne ich)
Wie kann ich diese 2 Sekunden (INPUTBOX) mit Eintrag kombinieren.
Grüße
Ilse
@ Bugfix
Dein Kommentar ist wohl leicht daneben.
Hallo Bugfux,
hm eine kleine Gui habe ich.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1_1 = GUICreate("Frage", 389, 213, 527, 211)
GUISetFont(12, 400, 0, "Verdana")
$Input1 = GUICtrlCreateInput("", 24, 128, 353, 26)
$lblFrage = GUICtrlCreateLabel("Frage", 24, 24, 49, 22)
$btnOK = GUICtrlCreateButton("ok", 296, 168, 75, 25)
$btnCancel = GUICtrlCreateButton("Cancel", 176, 168, 99, 25)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btnOK
Case $btnCancel
EndSwitch
WEnd
aber wie gesagt, es soll automatisch weitergehen, sobald ein Eintrag erfolgt ist!
Kannst du mir da ein Beispiel geben.
Wie ich mehrere "Guis" (Inputboxen) organisieren?
Liebe Grüße
Ilse
Hallo,
ich möchte einen Inputbox Code
in diverse Scripte einbauen.
Im Prinzip 2 oder mehrere Inputboxen.
Meine Frage:
Wie kann ich bei den Inputboxen einbauen,
1. Sobal Text eingetragen wurde (nach 2 Sekunden automatisch weiter) also OK
2. Zusätzlich kann man auch auf OK klicken!
Kann man das in eine einzele Funktion machen die ich dann
in andere Scripte einbauen kann?
[spoiler]
[autoit]
$IPT1 = InputBox("Frage1", "Die Erste Frage")
$IPT2 = InputBox("Frage2", "Die zweite Frage")
$IPT3 = InputBox("Frage3", "Die dritte Frage")
Msgbox(4096,"Ende","Fertig")
[/autoit]
[/spoiler
Viele Grüße
Ilse
Hallo zusammen,
Dank euch mal wieder für die Tipps.
Liebe Grüße
Ilse
Hallo,
merci für den Tipp!
Kann man die Variablen nicht auch per Funktion & #Include
einbinden?
Ich erkläre das nochmal:
Ein StartScript öffnet und schliesst div. weitere Scripts.
Das Startscript wählt z.B. den 2014 Ordner und startet das Script Beispiele.
Im Script Beispiel muß ich nun ein Label m. der Variablen d. ersten Scripts (2014 Ordner) versehen.
Muß ich zusätzlich in den "geöffneten Scripts" etwas ändern?
Wie spreche ich diese Variable im 2. Script an? (...hat bei mir irgendwie nicht geklappt.)
Liebe Grüße
Ilse
Hallo,
Ich habe folgendes Problem:
1. Eine Hauptgui selektiert einen Ordner
2. Diese Gui startet mit einem Button ein weiteres Script
Wie kann ich in dem 2. Script abfragen, welcher Ordner in dem ersten Script gewählt wurde?
;Gui 1 Wählt aus
Global $ProjektFolder
$ProjektFolder = FileSelectFolder("Ordner wählen",@ScriptDir)
MsgBox(4096,"Dieser Ordner wurde gewählt",$ProjektFolder)
;Es wird eine weiteres Script gestartet. Fenster2.au3
[/autoit] [autoit][/autoit] [autoit];Wie kann ich in diesem 2. Script den $ProjektFolder abfragen?
[/autoit]Liebe Grüße
Ilse
Hallo Misterspeed,
das habe ich mir fast gedacht. Schade.
IE und FF Funktionen sind bekannt.
Dank deiner tollen Erklärung sehe ich mal wieder etwas klarer.
Liebe Grüße
Ilse
Hallo Rynow,
meine Versuche mit ControlClick klappen nicht!
All meine Mausklicks funktionieren.
Wie kann man das umwandeln auf ControlClicks? Ohne Angabe v. ID's, Fenster nur Coordinaten!
geht das?
Opt('MouseCoordMode',0)
ShellExecute("Notepad.exe","","","", @SW_MAXIMIZE)
WinActivate("[CLASS:Notepad]", "")
Sleep(4000)
Local $size = WinGetPos("[active]")
;MsgBox(0, "Die Koordinaten des aktuellen Fensters lauten (x, y, Breite, Höhe):", $size[0] & " " & $size[1] & " " & $size[2] & " " & $size[3])
;SplashTextOn("Titel", "Klicks werden im Hintergrund gemacht!", -1,-1 , $size[0]+@Desktopwidth/4, $size[1]+@Desktopheight/4, 4, 2, 24)
;MouseClick("left",23,41,1); klappt
;ControlClick("","","","left",1,$size[0]+23,$size[1]+41); klappt nicht
ControlClick("","","","left",1,23,41); klappt nicht
ControlClick("","","","left",1,1939,89); klappt nicht! (m. Infotool ermittelt)
Sleep(4000)
[/autoit] [autoit][/autoit] [autoit]SplashOff()
[/autoit]Hallo,
ich muß MouseClicks im Hintergrund ausführen.
Das ganze soll aber mit einem InfoText (Splahtext) versehen werden.
Das klappt leider nicht!
Hier mal mein Beispiel :
Opt('MouseCoordMode',0)
ShellExecute("Notepad.exe","","","", @SW_MAXIMIZE)
WinActivate("[CLASS:Notepad]", "")
Local $size = WinGetPos("[active]")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]SplashTextOn("Titel", "Klicks werden im Hintergrund gemacht!", -1,-1 , $size[0]+@Desktopwidth/4, $size[1]+@Desktopheight/4, 4, 2, 24)
[/autoit] [autoit][/autoit] [autoit]MouseClick("left",749,313,1)
;~ MouseClick("left",245,158,1)
;~ MouseClick("left",985,160,1)
;~ MouseClick("left",453,761,1)
;~ MouseClick("left",267,562,1)
;~ MouseClick("left",1096,706,1)
Sleep(3000)
SplashOff()
Wenn Splashtext deaktiviert wird, werden die Klicks gemacht.
Wie kann ich einen Infotext über die Klicks setzen
ohne dass die Klicks beeinflusst werden! ToolTipps sind zu klein!
2 = Ohne "immer im Vordergrund" Attribut. geht auch nicht!
Keine ControlClicks! Das geht sehr oft nicht!
(Oder gibt es eine sichere Möglichkeit MouseClicks in ControlClicks umzuwandeln?)
Opt('MouseCoordMode',0)
ShellExecute("Notepad.exe","","","", @SW_MAXIMIZE)
WinActivate("[CLASS:Notepad]", "")
Sleep(4000)
Local $size = WinGetPos("[active]")
MsgBox(0, "Die Koordinaten des aktuellen Fensters lauten (x, y, Breite, Höhe):", $size[0] & " " & $size[1] & " " & $size[2] & " " & $size[3])
;SplashTextOn("Titel", "Klicks werden im Hintergrund gemacht!", -1,-1 , $size[0]+@Desktopwidth/4, $size[1]+@Desktopheight/4, 4, 2, 24)
MouseClick("left",23,41,1)
;ControlClick("","","","left",1,$size[0]+23,$size[1]+41)
Sleep(4000)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Sleep(3000)
SplashOff()
Mouseclick funktioniert, Controlclick nicht!
Grüße
Ilse