New: V 1.50 (Änderung und download siehe beim Script)
[Blockierte Grafik: http://img297.imageshack.us/img297/5858/peterzahltffkv5.jpg]
Hallo, ich habe nun mein erstes Script für den FireFox fertiggestellt.
THX an "Stilgar" für die Unterstützung und die FF.au3 natürlich.
Der Vorteil beim telefonieren über https://autoit.de/www.peterzahlt.de mit dieser FireFox Version gegenüber der IE Version ist, das man das Fenster auch minimieren kann.
Daher ist es z.B. beim längeren warten in der Warteschlange möglich den PC
wie gewohnt weiter zu nutzen.
Zur Kommunikation mit dem FireFox wird die MozLab Erweiterung benötigt.
Außerdem wird Stilgar´s geniale FF.au3 includet.
Nachdem man seine Daten (einmalig) in der data.ini angegeben hat, kanns losgehen.
[MyData]
MyNumber=02365123456 ;Eigene Nummer
Age=30 ;Alter
gender=m ; Geschlecht
[Telbuch]
Hat man über die GUI gewählt, begleitet einen das Script durch den ganzen
Prozess. Und anders als bei der IE Version arbeitet das Script auch weiter, wenn man in der Warteschlange kommt. (Signalisiert von einem roten flash Tray Icon)
Nach der Warteschlange wird dann der Button zum telefonieren automatisch gedrückt und das Tray Icon wird wieder grün.
Da mein Browser ab und an beim telefonieren einfriert, disconnecte ich die Verbindung zum FireFox, wenn die Verbindung hergestellt wurde.
Sollte der Browser doch mal einen Hänger haben, kann man PeterZahlt nicht über die GUI beenden, wohl aber über das Tray Menu.
Viel Spaß beim kostenlosen telefonieren
So long
Thunder-man
New:
----------------------------------------------------------
V 1.10
Der Profilname wird aus der data.ini gelesen
[MyData]
Profil="" ; "" bedeutet das default Profil wird gestartet. Oder selber eintragen, z.B. Profil="Test"
Wichtig: Bei einem Update von V 1.00 nach V 1.10 wird die vorhandene data.ini nicht überschrieben.
daher die Zeile Profil="" manuell eintragen.
----------------------------------------------------------
V 1.20
PeterZahlt - FF erkennt nun, ob bei einem Browser "MozPepl" läuft, oder halt nicht.
Dementsprechend wird eine neue Browser Instanz geöffnet, oder zu einer bestehenden mit laufendem "MozPepl" connectet.
----------------------------------------------------------
V 1.30
Add _TabExists()
Es wird geprüft, ob es schon einen Tab mit der PeterZahlt Home Page gibt, wenn ja wird dieser zum telefonieren geöffnet, ansonsten ein neuer.
----------------------------------------------------------
V 1.40
----------------------------------------------------------
Es wird die FF.au3 V0.2.7.7b (oder höher) benötigt
----------------------------------------------------------
- Ländervorwahl zum telefonieren ins Ausland in der GUI eingefügt.
- Das Telefonbuch bekommt beim start den Focus und man kann mit den Pfeiltasten oder
dem Wheel Rad der Maus Telefonpartner auswählen.
- Die Farbe der GUI wird nun in der data.ini definiert.
[GUI]
StartColor=F0F8FF
EndColor=A2B5CD
Den Farbcode gibt´s hier
----------------------------------------------------------
Update auf die neue Version.
----------------------------------------------------------
data.ini umbenennen oder in einem anderen Ordner verschieben.
"PeterZahlt FF" starten. (Die GUI ist erst einmal schwarz)
Programm schließen und von der gesicherten data.ini die Daten in die neu generierte hereinkopieren...
z.B.
[MyData] und [Telbuch]
----------------------------------------------------------
V 1.50
Wichtig, wer selber kompilieren will, der muss in Zeile 41 den Pfad ändern.
;-------------------------- Den Pfad zur Icon Datei ändern
; Nur den Pfad bis zum Komma ändern z.B. FileInstall("C:\Test\icon.icl",
;
FileInstall("C:\Pfad\zur\Datei\icon.icl", @TempDir & "\PeterZahlt\icon.icl")
;
;-------------------------- Den Pfad zur Icon Datei ändern
- Die zuletzt gewählte Telefonnummer wird beim schließen der GUI gespeichert (Wahlwiederholung)
- Die Icon befinden sich nun in der Icon Bibliothek icon.icl (Auch die von TychoBarfy)
Diese werden in die fertige PeterZahlt.exe mit einkompiliert (Include ) und unter ...Temp/PeterZahlt/icon.icl
gespeichert.
Angegeben werden diese in der data.ini unter:
[GUI]
Icon_g=1
Icon_r=2
3 und 4 sind dann die Icon von TychoBarfy
[GUI]
Icon_g=3
Icon_r=4
[Blockierte Grafik: http://img149.imageshack.us/img149/6441/iconrh7.jpg]
- data.ini
Ist diese z.B beim ersten start noch nicht vorhanden, wird nun eine unter Start==>Programme==>PeterZahlt erstellt.
(Die GUI startet automatisch neu und man kann sofort loslegen..)
Im Tray Menü kann man die data.ini dann unter Setup öffnen und bearbeiten. (noch ohne GUI)
Nach dem schließen der ini startet die GUI neu.
Die Reihenfolge der Daten in der ini sind [MyData] [Telbuch] [GUI]
Daher kann man die alten Daten nach einem update schneller einpflegen..
----------------------------------------------------------
Das Script:
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.6.0
Author: Thunder-man
Script Function:
PeterZahlt - FF Version"
FireFox Version
V 1.00
#ce ----------------------------------------------------------------------------
#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
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") ; [Test]kann gelöscht werden
IniWrite(@ScriptDir & "\data.ini", "Telbuch", "Erika", "02365212121") ; [Test]kann gelöscht werden
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")
#Region ### START Koda GUI section ###
$Peter = GUICreate("PeterZahlt - FF Version", 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 -----------------------
$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
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 =============================================
Func _FireFox()
$Socket = _FFStart ("http://www.peterzahlt.de/c2c-peterzahlt/index.do", "", Not ProcessExists("FireFox.exe"))
If $Socket = -1 Then Exit
Sleep(1000)
$oObj = 'content.document.frmCall.'
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)
_FFSetGet ($Socket, $oObj & 'submit()')
Sleep(2000)
AdlibEnable("_StateNoWait", 500)
Else
_FFSetValueByName ($Socket, "aNumber", $aNumber)
_FFSetValueByName ($Socket, "bNumber", $bNumber)
Sleep(100)
_FFSetGet ($Socket, $oObj & 'submit()')
Sleep(2000)
AdlibEnable("_StateNoWait", 500)
EndIf
EndFunc ;==>_FireFox
;=======================================================================
Func _StateNoWait()
Local $find
$find = _FFAction ($Socket, "find", "Bitte warten Sie, bis Ihr Telefon klingelt.")
If $find Then
Sleep(2000)
_FFDisConnect($Socket)
AdlibDisable()
EndIf
Sleep(1000)
_StateWait()
EndFunc
;=======================================================================
Func _StateWait()
Local $find
$find = _FFAction ($Socket, "find", "Im Moment sind leider alle Leitungen belegt.")
If $find Then
TraySetIcon("red.ico")
TraySetState(4)
AdlibDisable()
AdlibEnable("_StateWaitEnd", 500)
EndIf
EndFunc
;=======================================================================
Func _StateWaitEnd()
Local $find
$find = _FFAction ($Socket, "find", "Automatischer Abbruch in") ;Vielen Dank für Ihre Geduld.
If $find Then
TraySetIcon("green.ico")
TraySetState(8)
Sleep(100)
_FFClickImage ($Socket, "btn_callForFree2.gif", "src")
_FFDisConnect($Socket)
AdlibDisable()
EndIf
EndFunc
;=======================================================================
; 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
;=======================================================================
; 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
;=======================================================================