FF-Management - FireFox.au3

  • Tssssss ich weis auch nicht, es ist irgendwie zum Mäuse melken.
    Die ganze zeit geht´s nicht und gibt immer Null zurück.

    Und nun geht´s ohne Änderung gibt aber noch Null zurück was ich gleich mit der neuen FF.au3 beseitige.


    Aber egal, THX dafür, die Freude ist groß ... :D

    Das mit _FFSend: document.getElementById('statusbar-icon').value ist
    interessant. Ich fragte mich schon die ganze Zeit, wofür man wohl das
    statusbar-icon abfragt ...

    Mal ne andere Frage, was ist daran wohl falsch, ich bekommen immer ein syntax error

    [autoit]


    $sIndex = '= 2'
    'content.document.direction.Auswahl.selectedIndex' & $sIndex & '"'

    [/autoit]


    Jo, jetzt klappt´s wirklich mit den kleinen Bildchen und nun weiß ich auch warum nur ab und zu.
    Ich habe in meinem Neuen Profil so gut wie alle Erweiterungen installiert
    so auch No Script und was soll ich sagen, hatte den Peter nur Temporär freigegeben...

    Ein anderes Problem habe ich noch mit den Bildern, es sind ja wohl nur Div Container, welche dann mit JavaScript aufgehen.
    Wenn ich in die Warteschlange komme, geht auch so´n Ding auf, aber wie könnte ich darauf reagieren (abfragen).
    Wenn es ein HTML Fenster wäre, könnte ich ja nach inneren Text suchen lassen, das geht aber hier nicht ???

    Einmal editiert, zuletzt von thunder-man (26. August 2007 um 23:21)

  • Weis zwar nicht genau was du da machst, aber das Anführungszeichen hinter der Zahl gehört da nicht hin:

    [autoit]

    $sIndex = '= 2'
    'content.document.direction.Auswahl.selectedIndex' & $sIndex

    [/autoit]


    Vermutlich das Dings hier:

    PHP
    <div id="msgStatus">
    		<div class="ani"><img src="images/common/home/status_ani.gif" alt="Status-Animation" /></div>
    		<div class="content">
    			<h3>Einen Augenblick bitte, <br />wir verbinden Sie...</h3><p>PeterZahlt verbindet Sie jetzt kostenlos <br />mit Ihrem gew&uuml;nschten Gespr&auml;chspartner.<br /></p><p><strong>Bitte warten Sie, bis Ihr Telefon klingelt</strong>.</p>
    
    
    		</div>
    	</div>


    Was willst du denn machen wenn du in die Warteschlange kommst?
    Da dieses "Fenster" dann ja ganz "vorne" ist könnte man sich über eine Abfrage des entsprechenden Layers was basteln.

    Grüße
    Thorsten

    Einmal editiert, zuletzt von Stilgar (26. August 2007 um 23:43)

  • Das 1. ist immer noch mein Versuch ein Option Listenfeld auf eine anderen HP
    zu öffnen.

    ========
    Ja, das 2. ist der Div Container vom Peter, diesen muss man abwarten und danach kommt ein weiterer Container mit nem Image jetzt Telefonieren, wo man dann innerhalb von einer Minute drauf drücken muss.

    Beim IE habe ich das auch nicht abfragen können... Und hier, oder im nLite Forum gab´leider auch keine Antwort.

    [autoit]


    Func _Exlporer()
    $oIE = _IECreate('http://www.peterzahlt.de')
    If @error Then Exit
    _IELoadWait($oIE)

    [/autoit][autoit][/autoit][autoit]

    $o_form = _IEGetObjById($oIE, "aAge")
    If _IEFormElementGetValue($o_form) = "?" Then
    _IEImgClick($oIE, "images/common/home/icon_inputRefresh.gif", "src")
    _IEFormElementSetValue($o_form, $Age)
    $o_form = _IEFormGetObjByName($oIE, "frmCall")
    Sleep(1000)
    _IEFormElementRadioSelect($o_form, $gender, "aGender", 1, "byValue")
    Sleep(100)
    _IEImgClick($oIE, "images/de/home/btn_submit.gif", "src")

    [/autoit][autoit][/autoit][autoit]

    $o_form = _IEGetObjById($oIE, "txtPhoneA")
    _IEFormElementSetValue($o_form, $aNumber)
    $o_form = _IEGetObjById($oIE, "txtPhoneB")
    _IEFormElementSetValue($o_form, $bNumber)
    Sleep(100)
    _IEFormImageClick($oIE, "images/de/home/btn_callForFree.gif", "src")
    Else
    $o_form = _IEGetObjById($oIE, "txtPhoneA")
    _IEFormElementSetValue($o_form, $aNumber)
    $o_form = _IEGetObjById($oIE, "txtPhoneB")
    _IEFormElementSetValue($o_form, $bNumber)
    Sleep(100)
    _IEFormImageClick($oIE, "images/de/home/btn_callForFree.gif", "src")
    EndIf
    EndFunc ;==>_Exlporer

    [/autoit]


    Edit:
    Aber wie erfahre ich was von dem Layer?
    Ich weiß wohl, das ich den auch mit CSS sichtbar machen kann, was aber ja
    da nich´s mit zu tun hat.

    so long
    Frank

    Einmal editiert, zuletzt von thunder-man (26. August 2007 um 23:58)

  • Aus Mangel an Funktionen für Forms habe ich mal den universal Befehl _FFSetGet genommen:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>

    [/autoit] [autoit][/autoit] [autoit]

    _FireFox()

    [/autoit] [autoit][/autoit] [autoit]

    Func _FireFox()

    [/autoit] [autoit][/autoit] [autoit]

    $Socket = _FFStart("http://www.peterzahlt.de")
    If $Socket = -1 Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    $oObj = 'content.document.frmCall.'

    [/autoit] [autoit][/autoit] [autoit]

    If _FFGetValueById($Socket,"aAge") = "?" Then
    _FFClickImage($Socket,"Angaben", "alt")
    sleep(100)
    _FFSetValueByName($Socket,"aAge","30")
    _FFSetGet($Socket, $oObj & 'aGender[0].checked=true')
    _FFSetValueByName($Socket,"aNumber","4711")
    _FFSetValueByName($Socket,"bNumber","0815")
    _FFSetGet($Socket, $oObj & 'submit()')
    Else
    _FFSetValueByName($Socket,"aNumber","4711")
    _FFSetValueByName($Socket,"bNumber","0815")
    _FFSetGet($Socket, $oObj & 'submit()')
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_FireFox

    [/autoit]

    Sieht nicht ganz so wüst aus wie mit dem Explorer.

    Für die weitere Abfrage muß ich erst noch schauen wie die Seite funktioniert.

    Viele Grüße
    Thorsten

  • Hi, danke erst einmal für Deine Mühe.
    Das mit der Altersangabe klappt wohl nicht, jedenfalls geht das Fenster bei mir nicht auf.

    [autoit]


    If _FFGetValueById($Socket,"aAge") = "?" Then

    [/autoit]

    Wenn ich nur das Alter Abfrage, bleibt die MsgBox auch leer

    [autoit]

    $Value_ = _FFGetValueById($Socket, "aAge")
    MsgBox(0, "", $Value_)

    [/autoit]

    Vielleicht ist es aber auch dieses hier..., da wo ich Hallo hingeschrieben habe steht sonst das ?

    PHP
    <span
    id="aAgeDisplay">&nbsp;&nbsp;&nbsp;&nbsp;Hallo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>


    [autoit]

    $Value_ = _FFGetValueById($Socket, "aAgeDisplay")

    [/autoit]


    Dann gibt´s vielleicht auch Probleme wegen den onclick.
    Oder funktioniert _FFGetValueById mit onklick?

  • Mit der Beta 3 poppt alles auf, auch die Länderauswahl.
    Ich muss mal noch was testen, weil da nachdem das Alter und Geschlecht
    eingetragen wurde noch ein Image klick zur Übernahme hin muss.

    _FFClickImage($Socket,"btn_submit.gif", "src")

    Hintergrund:
    Nachdem man dann einmal auf der Seite war und das Alter und Geschlecht
    angegeben hat bekommt man ein Cookie...

    greeting
    Frank


    Edit: Ausgabe der Console:

    Spoiler anzeigen


    _FFSend: function FF__SimulateClick(oObject){try {var evt = document.createEvent("MouseEvents");evt.initMouseEvent("click", true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);oObject.dispatchEvent(evt);return 1;}catch(e){return 0;}}
    _FFRecv:
    _FFSend: function FF__SearchImageLink(RegEx) {var html;for (i=0;i<content.document.links.length;i++){html=content.document.links[i].innerHTML;if (RegEx.test(html) && html.toLowerCase().indexOf("<img") > -1) return i;}return -1;}
    _FFRecv:
    _FFSend: content.document.location.href="http://www.peterzahlt.de/c2c-peterzahlt/index.do"
    _FFRecv: http://www.peterzahlt.de/c2c-peterzahlt/index.do
    _FFSend: document.getElementById('statusbar-icon').value
    _FFRecv: 96
    _FFSend: document.getElementById('statusbar-icon').value
    _FFRecv: 100
    _FFSend: content.document.getElementById("aAge").value
    _FFRecv:
    _FFSend: content.document.getElementsByName("aNumber")[0].value="4711"
    _FFRecv: 4711
    _FFSend: content.document.getElementsByName("bNumber")[0].value="0815"
    _FFRecv: 0815
    _FFSend: function FF__SimulateClick(oObject){try {var evt = document.createEvent("MouseEvents");evt.initMouseEvent("click", true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);oObject.dispatchEvent(evt);return 1;}catch(e){return 0;}}
    _FFRecv:
    _FFSend: function FF__SearchImageLink(RegEx) {var html;for (i=0;i<content.document.links.length;i++){html=content.document.links[i].innerHTML;if (RegEx.test(html) && html.toLowerCase().indexOf("<img") > -1) return i;}return -1;}
    _FFRecv:
    _FFSend: content.document.location.href="http://www.peterzahlt.de/c2c-peterzahlt/index.do"
    _FFRecv: http://www.peterzahlt.de/c2c-peterzahlt/index.do
    _FFSend: document.getElementById('statusbar-icon').value
    _FFRecv: 95
    _FFSend: document.getElementById('statusbar-icon').value
    _FFRecv: 100
    _FFSend:
    _FFRecv:
    _FFSend: FF__SearchImageLink(/alt[ \t]*=[ \t]*(.*)Angaben/)
    _FFRecv: 8
    _FFSend: FF__SimulateClick(content.document.links[8])
    _FFRecv: 1
    _FFSend:
    _FFRecv:
    _FFSend: FF__SearchImageLink(/src[ \t]*=[ \t]*(.*)icon_inputRefresh.gif/)
    _FFRecv: 9
    _FFSend: FF__SimulateClick(content.document.links[9])
    _FFRecv: 1
    _FFSend:
    _FFRecv:
    _FFSend: FF__SearchImageLink(/src[ \t]*=[ \t]*(.*)btn_dropdown.gif/)
    _FFRecv: 12
    _FFSend: FF__SimulateClick(content.document.links[12])

    Einmal editiert, zuletzt von thunder-man (27. August 2007 um 02:34)

  • Ich habe extra mal die Zahlen geändert um alles besser kontrollieren zu können.

    Die IF Anweisung wird ignoriert und zuerst die Nummern 404040 und 505050
    eingetragen.
    Dann öffnet kurz das Fenster für Alter und sofort komischerweise das Fenster für die Länderauswahl.

    Edit:
    Habe die neue AutoIt Version 3.2.6.0 drauf

    Spoiler anzeigen
    [autoit]


    #include <FF.au3>

    _FireFox()

    Func _FireFox()

    $Socket = _FFStart("http://www.peterzahlt.de/c2c-peterzahlt/index.do")
    If $Socket = -1 Then Exit

    $oObj = 'content.document.frmCall.'

    If _FFGetValueById($Socket,"aAge") = "?" Then
    _FFClickImage($Socket,"Angaben", "alt")
    sleep(100)
    _FFSetValueByName($Socket,"aAge","30")
    _FFSetGet($Socket, $oObj & 'aGender[0].checked=true')
    sleep(100)
    _FFClickImage($Socket,"btn_submit.gif", "src")
    _FFSetValueByName($Socket,"aNumber","202020")
    _FFSetValueByName($Socket,"bNumber","303030")
    ;_FFSetGet($Socket, $oObj & 'submit()')
    Else
    _FFSetValueByName($Socket,"aNumber","404040")
    _FFSetValueByName($Socket,"bNumber","505050")
    ;_FFSetGet($Socket, $oObj & 'submit()')
    EndIf

    EndFunc ;==>_FireFox

    [/autoit]

    Einmal editiert, zuletzt von thunder-man (27. August 2007 um 03:08)

  • @thunder-man:

    Das mit dem Cookie war mir klar, nur da das ganze das gleiche Formular ist wie die Telefonnummern reicht einmal submit() und die Daten landen auch im Cookie; vorausgesetzt du läßt es nicht als Kommentar so stehen ;)


    Das das Fragezeichen bei mir funktioniert hat war wohl eher ein Fehler. Wenn du dir das Formular mal genau anschaust, ist (wenn man ein Fragezeichen sieht) im input "aAge" nichts gespeichert, das sieht man auch in der Console:

    Code
    _FFRecv: 100
    _FFSend: content.document.getElementById("aAge").value
    _FFRecv: 
    _FFSend: FF__SearchImageLink(/alt[ \t]*=[ \t]*(.*)Angaben/)
    _FFRecv: 8


    Das Recv hat nach der Abfrage hat nichts zurückbekommen. Würde die ID nicht existieren käme eine Fehlermeldung wie z.B:

    Code
    repl>
    _FFRecv: @data:application/x-javascript,content.document.getElementById(%22sAge%22).value%0D%0A:1
    
    
    !!! TypeError: content.document.getElementById("sAge") has no properties

    Und da ja nichts in diesem Input drinsteht, reicht auch das hier:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>

    [/autoit] [autoit][/autoit] [autoit]

    _FireFox()

    [/autoit] [autoit][/autoit] [autoit]

    Func _FireFox()

    [/autoit] [autoit][/autoit] [autoit]

    $Socket = _FFStart("http://www.peterzahlt.de/c2c-peterzahlt/index.do")
    If $Socket = -1 Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    $oObj = 'content.document.frmCall.'

    [/autoit] [autoit][/autoit] [autoit]

    If Not _FFGetValueById($Socket,"sAge") Then ; kein Inhalt in sAge!
    _FFClickImage($Socket,"Angaben", "alt")
    sleep(100)
    _FFSetValueByName($Socket,"aAge","30")
    _FFSetGet($Socket, $oObj & 'aGender[0].checked=true')
    _FFSetValueByName($Socket,"aNumber","202020")
    _FFSetValueByName($Socket,"bNumber","303030")
    _FFSetGet($Socket, $oObj & 'submit()')
    Else
    _FFSetValueByName($Socket,"aNumber","404040")
    _FFSetValueByName($Socket,"bNumber","505050")
    ;_FFSetGet($Socket, $oObj & 'submit()')
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_FireFox

    [/autoit]

    Viele Grüße
    Stilgar

    2 Mal editiert, zuletzt von Stilgar (27. August 2007 um 09:33)

  • Stilgar

    ich hatte das submit() gestern nur temporär ausgestellt, weil Peter nach 12 Uhr Nachtruhe hat.

    Nun ja, so wie der Code jetzt ist klappt´s. (THX) :party4:

    Lustig das mit dem ?

    Und der IE hat dann ein ? zurückgegeben, wo gar keines ist, das steht nähmlich in

    PHP
    <span
    id="aAgeDisplay">&nbsp;&nbsp;&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
    Zitat

    ....einmal submit()


    ja das stimmt wohl, ist ja ein Div Fenster, daher ist es dann egal ob es auf ist oder zu, sieht halt nur cooler aus.

    Danke noch einmal, freue mich schön falls Du später mal ne Lösung für die Div Layer findest, aber nun habe ich Dich lange genug vom Weg abgehalten. lol

    so long
    Frank


    Edit:
    Hatte mich schon gewundert, warum nun immer das Fenster für Alter aufpoppt, auch wenn schon ein Cookie da ist.

    Hast aus versehen sAge anstelle von aAge geschrieben...

    [autoit]

    If Not _FFGetValueById($Socket,"sAge") Then ; kein Inhalt in sAge!

    [/autoit]

    Einmal editiert, zuletzt von thunder-man (27. August 2007 um 11:06)

  • Hey,
    habe das Peterzahlt Script um eine Warteschleife Funktion erweitert.
    Wenn diese kommt und man geduldig gewartet hat, öffnet sich ein weiteres Fenster, bei welchen man innerhalb von einer Minute auf dem Button klicken soll. Der Counter wird auch im FF Titelzeile angezeigt.

    [autoit]

    ;=======================================================================
    Func _WinTitle()
    $Window = _FFSetGet($Socket, "title")
    If $Window = 'Bitte innerhalb von 59 Sekunden bestätigen! - Mozilla Firefox' Then
    Sleep(100)
    _FFClickImage ($Socket, "btn_callForFree2.gif", "src")
    AdlibDisable()
    EndIf
    EndFunc ;==>_WinTitle
    ;=======================================================================

    [/autoit]

    Allerdings bin ich nicht ganz zufrieden, die AdlibEnable("_WinTitle", 500) Funktion wird beendet, wenn das "Bitte innerhalb ..." Fenster kommt, allerdings nur dann ...

    Hier mal das ganze Script, (Ist von der IE Version, muss ich noch aufräumen.)

    Der Vorteil der FF Version gegenüber der IE Version ist, das man während
    des telefonierens weiter arbeiten kann. (Mails lesen usw.)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiCombo.au3>
    #include <FF.au3>
    #include <Color.au3>
    Dim $Socket
    Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
    Opt("TrayOnEventMode", 1)
    Global $aNumber, $bNumber, $oIE, $Age, $gender, $o_form, $los, $a, $b, $c, $d, $Del_string = "", $Combo_TelN, $Tel_Name
    Dim $StartColor = 0x6ca6cd ;Color GUI
    Dim $EndColor = 0xD4D0C8 ;Color GUI

    [/autoit] [autoit][/autoit] [autoit]

    If $CmdLine[0] > 0 Then
    $aNumber = $CmdLine[1]
    If $CmdLine[0] > 1 Then $bNumber = $CmdLine[2]
    If $CmdLine[0] > 2 Then $Age = $CmdLine[3]
    If $CmdLine[0] > 3 Then $gender = $CmdLine[4]
    _FireFox()
    EndIf
    ;====================== GUI ========================
    If $CmdLine[0] = 0 Then
    If Not FileExists(@ScriptDir & "\data.ini") Then
    IniWrite(@ScriptDir & "\data.ini", "MyData", "MyNumber", "1234567")
    IniWrite(@ScriptDir & "\data.ini", "MyData", "Age", "30")
    IniWrite(@ScriptDir & "\data.ini", "MyData", "gender", "m")
    IniWrite(@ScriptDir & "\data.ini", "Telbuch", "Peter", "02365202020")
    IniWrite(@ScriptDir & "\data.ini", "Telbuch", "Erika", "02365212121")
    EndIf

    $aNumber = IniRead(@ScriptDir & "\data.ini", "MyData", "MyNumber", "NotFound")
    $Age = IniRead(@ScriptDir & "\data.ini", "MyData", "Age", "NotFound")
    $gender = IniRead(@ScriptDir & "\data.ini", "MyData", "gender", "NotFound")

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ###
    $Peter = GUICreate("Tel. mit peterzahlt.de", 249, 211, 331, 245)
    $los = GUICtrlCreateButton("los geht's", 108, 177, 55, 25, 0)
    $Group1 = GUICtrlCreateGroup("", 8, 8, 232, 161)
    $Lbl_EigeneN = GUICtrlCreateLabel("Eigene Nummer:", 18, 66, 81, 17)
    _BKColor(-1)
    $a = GUICtrlCreateInput($aNumber, 108, 64, 120, 21) ; My Number
    $Lbl_ZielN = GUICtrlCreateLabel("Ziel Nummer:", 18, 91, 81, 17)
    _BKColor(-1)
    $b = GUICtrlCreateInput("", 108, 87, 120, 21) ; Destination
    $Lbl_Age = GUICtrlCreateLabel("Alter:", 18, 116, 81, 17)
    _BKColor(-1)
    $c = GUICtrlCreateInput($Age, 108, 110, 120, 21) ; Age
    $Lbl_Gender = GUICtrlCreateLabel("Geschlecht:", 18, 140, 81, 17)
    _BKColor(-1)
    $d = GUICtrlCreateInput($gender, 108, 133, 120, 21) ; Gender
    $Lbl_TelBuch = GUICtrlCreateLabel("Telefonbuch:", 18, 32, 67, 17)
    _BKColor(-1)
    $Combo_TelN = GUICtrlCreateCombo("", 108, 28, 120, 25, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SORT))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Btn_Entry = GUICtrlCreateButton("eintragen", 7, 177, 55, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    XSkinGradient($Peter, $StartColor, $EndColor)
    ;---------- Set Tray Menu -----------------------
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "Close")
    TraySetState()
    ;---------- Set Tray Menu -----------------------

    [/autoit] [autoit][/autoit] [autoit]

    $var = IniReadSection(@ScriptDir & "\data.ini", "Telbuch")
    If @error Then
    MsgBox(4096, "", "Error occurred, probably no INI file.")
    Else
    For $i = 1 To $var[0][0]
    GUICtrlSetData($Combo_TelN, $var[$i][0])
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    _GUICtrlComboAutoComplete($Combo_TelN, $Del_string)
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Combo_TelN
    $Tel_Name = GUICtrlRead($Combo_TelN)
    $Tel_Name_ini = IniRead(@ScriptDir & "\data.ini", "Telbuch", $Tel_Name, "NotFound")
    GUICtrlSetData($b, "")
    GUICtrlSetData($b, $Tel_Name_ini)
    Case $msg = $los
    $aNumber = GUICtrlRead($a)
    $bNumber = GUICtrlRead($b)
    $Age = GUICtrlRead($c)
    $gender = GUICtrlRead($d)
    If $gender = "m" Then
    $gender_send = 'aGender[0].checked=true'
    Else
    $gender_send = 'aGender[1].checked=true'
    EndIf
    _FireFox()
    Case $msg = $Btn_Entry
    _Entry()
    EndSelect
    WEnd
    EndIf
    ;====================== GUI =============================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _FireFox()
    $Socket = _FFStart ("http://www.peterzahlt.de/c2c-peterzahlt/index.do", "")
    If $Socket = -1 Then Exit
    Sleep(1000)
    $oObj = 'content.document.frmCall.'

    [/autoit] [autoit][/autoit] [autoit]

    If Not _FFGetValueById ($Socket, "aAge") Then
    _FFClickImage ($Socket, "Angaben", "alt")
    _FFSetValueByName ($Socket, "aAge", $Age)
    _FFSetGet ($Socket, $oObj & $gender_send)
    Sleep(100)
    _FFClickImage ($Socket, "btn_submit.gif", "src")
    Sleep(100)
    _FFSetValueByName ($Socket, "aNumber", $aNumber)
    _FFSetValueByName ($Socket, "bNumber", $bNumber)
    AdlibEnable("_WinTitle")
    ;~ $Window = _FFSetGet ($Socket, "title =" & "'" & "REPL-powered Firefox" & "'")
    ;~ MsgBox(0, "Full title read was:", $Window)
    _FFSetGet ($Socket, $oObj & 'submit()')
    AdlibEnable("_WinTitle", 500)
    Else
    _FFSetValueByName ($Socket, "aNumber", $aNumber)
    _FFSetValueByName ($Socket, "bNumber", $bNumber)
    Sleep(100)
    $Window = _FFSetGet ($Socket, "title =" & "'" & "REPL-powered Firefox" & "'")
    _FFSetGet ($Socket, $oObj & 'submit()')
    AdlibEnable("_WinTitle", 500)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_FireFox
    ;=======================================================================
    Func _WinTitle()
    $Window = _FFSetGet($Socket, "title")
    If $Window = 'Bitte innerhalb von 59 Sekunden bestätigen! - Mozilla Firefox' Then
    Sleep(100)
    _FFClickImage ($Socket, "btn_callForFree2.gif", "src")
    AdlibDisable()
    EndIf
    EndFunc ;==>_WinTitle
    ;=======================================================================
    ; ini Einträge
    Func _Entry()
    Local $read_Destination, $read_Combo
    $read_Destination = GUICtrlRead($b)
    $read_Combo = GUICtrlRead($Combo_TelN)
    If $read_Destination = "" Or $read_Combo = "" Then
    MsgBox(0, "Error", " Keine Einträge gefunden")
    Else
    IniWrite(@ScriptDir & "\data.ini", "Telbuch", $read_Combo, $read_Destination)
    _restart()
    EndIf
    EndFunc ;==>_Entry
    ;=======================================================================
    Func Close()
    Exit
    EndFunc ;==>Close

    [/autoit] [autoit][/autoit] [autoit]

    ;=======================================================================
    ; Restart your program - Author UP_NORTH
    Func _restart()
    If @Compiled = 1 Then
    Run(FileGetShortName(@ScriptFullPath))
    Else
    Run(FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath))
    EndIf
    Exit
    EndFunc ;==>_restart
    ;=======================================================================
    ; XSkinGradient from XSkinGradient.au3
    Func XSkinGradient($nXSkinGUI, $nStartColor, $nEndColor)
    Local $nSize = WinGetClientSize($nXSkinGUI)
    Local $nX = 0, $nY = 0, $nWidth = $nSize[0], $nHeight = $nSize[1]
    Local $color1R = _ColorGetRed($nStartColor)
    Local $color1G = _ColorGetGreen($nStartColor)
    Local $color1B = _ColorGetBlue($nStartColor)
    Local $nStepR = (_ColorGetRed($nEndColor) - $color1R) / $nHeight
    Local $nStepG = (_ColorGetGreen($nEndColor) - $color1G) / $nHeight
    Local $nStepB = (_ColorGetBlue($nEndColor) - $color1B) / $nHeight
    $nGraph = GUICtrlCreateGraphic($nX, $nY, $nWidth, $nHeight)
    For $i = 0 To $nHeight - $nY
    $sColor = "0x" & StringFormat("%02X%02X%02X", $color1R + $nStepR * $i, $color1G + $nStepG * $i, $color1B + $nStepB * $i)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, $sColor, 0xffffff)
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 0, $i)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, $nWidth, $i)
    Next
    GUICtrlSetState($nGraph, $GUI_DISABLE)
    Return $nGraph
    EndFunc ;==>XSkinGradient
    ;=======================================================================
    ; by Thunder-man
    Func _BKColor($GuiID)
    GUICtrlSetBkColor($GuiID, $GUI_BKCOLOR_TRANSPARENT)
    EndFunc ;==>_BKColor
    ;=======================================================================

    [/autoit]

    Einmal editiert, zuletzt von thunder-man (27. August 2007 um 20:45)

  • Habe ein Problem mit True und False.
    Egal ob ich schreibe:
    If $find_1 = True Then
    oder
    If Not $find_1 = False Then

    Die Funktion unten wurde bei False ausgeführt. (Soll aber bei True)

    [autoit]

    ;=======================================================================
    Func _StateNoWait()
    Local $find_1, $State
    $find_1 = _FFAction ($Socket, "find", "Einen Augenblick bitte")
    If Not $find_1 = False Then
    $State = _FFDisConnect($Socket)
    MsgBox(0, "DisConnect _StateNoWait", $State)
    AdlibDisable()
    EndIf
    Sleep(1000)
    ;_StateWait()
    EndFunc
    ;=======================================================================

    [/autoit]

    _FFSend: content.document.frmCall.submit()
    _FFRecv:
    _FFSend: content.find("Einen Augenblick bitte")
    _FFRecv: false

    Obwohl der Befehl Disconnect bei True, oder Not False ausgeführt werden soll, wurde er bei false ausgeführt....

    Kann mir da jemand helfen?

    • Offizieller Beitrag
    Zitat

    If $find_1 = True Then
    oder
    If Not $find_1 = False Then

    Das ist schon doppelt gemoppelt ;)
    Wenn eine Variable einen boolschen Wert hat brauchst du nicht explizit den Inhalt abfragen.
    Statt

    [autoit]

    If $find_1 = True Then

    [/autoit]


    besser

    [autoit]

    If $find_1 Then

    [/autoit]


    und statt

    [autoit]

    If Not $find_1 = False Then

    [/autoit]


    besser

    [autoit]

    If Not $find_1 Then

    [/autoit]
  • OK Danke werde das sofort mal umsetzen.

    (Die Hilfe sagt dazu)

    [autoit]

    $bool= False
    if NOT $bool = true Then Msgbox(0,"Bool comparison", "OK")

    [/autoit]

    Edit:
    Ach, das ist echt ärgerlich, das Problem bleibt das selbe, obwohl
    $find_2 false ist, wird die Funktion ausgeführt. (If $find_2 Then)

    so long
    Frank

    2 Mal editiert, zuletzt von thunder-man (28. August 2007 um 22:27)

  • Das "Problem" bei find ist, das zwar der logische Zustand in diesem Fall "false" ist, dieser aber als String von MozRepl zurückkommt. Du darfst in diesem Fall nicht den logischen Zustand abfragen sondern mußt ein Stringvergleich machen, also:

    If $find ="true" Then

    und da ein String mit Inhalt immer logisch "true" ist, funktioniert deine Abfrage auch nicht.

    Ist unschön, ich hab es bei _FFAction mal umgebaut:
    http://www.thorsten-willert.de/Software/AutoIt/unstable/
    damit sollte dein Programm funktionieren.


    Grüße
    Stilgar

    Einmal editiert, zuletzt von Stilgar (28. August 2007 um 22:19)

  • Oh, so ist das, teste gleich Deine neue V.

    Aber wenn ein String zurück kommt, dann kann ich doch ne normale Abfrage machen und den String abfragen, oder?
    If $find ="true" Then

    If $find ="false" Then

    THX
    Frank

  • Ja kann man.
    Ich habe die neue Version mal so umgebaut, daß true und false konvertiert werden. Jetzt kannst du wieder ganz normal die logischen Zustände abfragen.

    Grüße
    Stilgar

  • Super, Danke.

    Kann es im Moment nicht testen, weil ich nicht in der Warteschlange komme. (lol)
    Ich muss ja sehen, das in meine 2. Funktion gesprungen wird...

    [autoit]

    ;=======================================================================
    Func _StateNoWait()
    Local $find_1, $State
    $find_1 = _FFAction ($Socket, "find", "Einen Augenblick bitte")
    If $find_1 Then
    $State = _FFDisConnect($Socket)
    MsgBox(0, "DisConnect _StateNoWait", $State)
    AdlibDisable()
    EndIf
    Sleep(1000)
    _StateWait()
    EndFunc
    ;=======================================================================
    Func _StateWait()
    Local $find_2
    $find_2 = _FFAction ($Socket, "find", "Bitte haben Sie etwas Geduld.");Im Moment sind leider alle Leitungen belegt.
    If $find_2 Then
    TraySetIcon("Blankr16.ico") ;rot
    TraySetState(4)
    AdlibDisable()
    AdlibEnable("_StateWaitEnd", 500)
    EndIf
    EndFunc
    ;=======================================================================

    [/autoit]

    Find ist ja ne interne Firefox Funktion und es ist ja logisch, das das gefundene nach dem suchen markiert wird. Ich hätte es aber lieber ohne.
    Gibt´s ne Option das abzustellen?

  • Hi Hi, sieht in der Tat für mein vorhaben ein bisschen komisch aus.
    (Fast aggressiv lol)
    Wäre schön, wenn´s da was zu machen wäre.


    Edit:
    Wenns keine Option gibt, die Markierung auszustellen, dann kann man das vielleicht auch mit nem klick erledigen, so ist die Markierung nur kurz zu sehen.

    Habe die neue klick Funktion noch nicht benutzt, wie wendet man die denn
    an, wenn ich z.B einfach irgendwo im Fenster klicken will.
    (Ne stelle mit ID suchen?)

    greeting
    Frank

    Einmal editiert, zuletzt von thunder-man (29. August 2007 um 00:06)