Hallo! Ich habe mir ein kleines Projekt überlegt: Ich möchte die Zeit , die eine Webseite zum Aufbau benötigt messen. Man soll vorher in das Pogrammfenster die Adresse eingeben können und dann nach dem "GO" klicken die Zeit live sehen. Im hintergrund öffnet sich der IE und ein Stoppuhr-Script wird ausgeführt. Das Ergebnis soll in einer Datei gespeichert werden.
Mein Haupt-Script siet so aus:
[autoit]#include <GUIConstants.au3>
#include <IE.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
Dim $Start = 0, $Timer = 0, $tmpTimer = 0, $LastTimer = 0, $run = 1
Dim $iHours = 0, $iMins = 0, $iSecs = 0, $iHsecs = 0
#Region ### START Koda GUI section ### Form=d:\users\xxxx\desktop\autoit - skripte\ie\ie.kxf
$Form1_1 = GUICreate("Zeitmessung", 360, 189, 193, 125)
$Adresse = GUICtrlCreateInput("", 8, 32, 281, 21)
$Go = GUICtrlCreateButton("Go!", 296, 32, 41, 25, 0)
$Status = GUICtrlCreateLabel("Adresse eintragen und dann Go!", 8, 56, 274, 73)
$Zeit = GUICtrlCreateLabel("00:00:00.00", 16, 144, 270, 33)
GUISetState(@SW_SHOW) ;GUI anzeigen
#EndRegion ### END Koda GUI section ###
$Go = False
$Datum = (@MDAY & "." & @MON & "." & @YEAR)
IniWrite( @ScriptDir & ("\Messung.ini") , "Date", "Date: ", $Datum) ;Erstellt Ini Datei mit Datum
IniWriteSection( @ScriptDir & "\Messung.ini" , "Zeit", "Zeit: " , ($iHours & ":" & $iMins & ":" &$iSecs & "." & $iHsecs)) ;Apeichern Zeit
IniWriteSection( @ScriptDir & "\Messung.ini" , "Start", "Start: ", $Start) ;Setzt Start auf 0
While $run = 1 ;Main Loop
$Zeit = ($iHours & ":" & $iMins & ":" &$iSecs & "." & $iHsecs)
Sleep(2000)
Do
GUICtrlSetData(-1, $Go) ;Update Gui
If $Go = True Then ;Wenn Go gedrückt
GUICtrlSetData($Adresse) ;Update Gui
_IECreate ("about:blank" ,0 , 1 ,1 ,0) ;Öffnet IE
$Status = "Seite läd..." ;eingegebene Adresse wird im Status angezeigt
$Start = 1
IniDelete( @ScriptDir & "\Messung.ini", "Start", "Start: ")
IniWriteSection( @ScriptDir & "\Messung.ini", "Start", "Start: ", $Start)
Run("IEZeit.exe", "", @SW_HIDE ) ;Stoppuhr Programm wird gestartet
IECreate ($Adresse ,1 , 0 ,1 ,0) ;Pause bis Seite geladen ist
EndIf
Until $Start = 1
IniDelete( @ScriptDir & "\Messung.ini", "Start", "Start: ")
IniWriteSection( @ScriptDir & "\Messung.ini", "Start", "Start: ", $Start)
$Status = "Seite geladen!"
GUICtrlSetData(-1, $Status) ;Update Gui
IniReadSection( @ScriptDir & "\Messung.ini" , "Zeit", "Zeit: " , ($iHours & ":" & $iMins & ":" &$iSecs & "." & $iHsecs))
GUICtrlSetData(-1, $Zeit) ;Update Gui
Sleep(2000)
$Status = "Datei wurde in Messung.ini, unter " $Datum " gespeichert!"
GUICtrlSetData(-1, $Status) ;Update Gui
Sleep(2000)
IniDelete( @ScriptDir & "\Messung.ini", "Start")
$run = 0
WEnd
[/autoit][autoit][/autoit][autoit]Exit
[/autoit]Und mein Stoppuhr Programm so:
[autoit][/autoit][autoit][/autoit][autoit]#include <WindowsConstants.au3>
#include <Date.au3>
Dim $Timer = 0, $tmpTimer = 0, $LastTimer = 0
Dim $iHours = 0, $iMins = 0, $iSecs = 0, $iHsecs = 0
While IniRead( @ScriptDir & "\Messung.ini", "Start", "1", "0") = 1 ;Main Loop
If $Start = 1 Then ;Only if start is pressed....
$tmpTimer = (TimerDiff($Timer)) + $LastTimer
Convert() ;Convert ticks to time and splitt it into HH:MM:SS.hh
EndIf
WEnd
IniDelete( @ScriptDir & "\Messung.ini" , "Zeit", "Zeit: " , $iHours & ":" & $iMins & ":" &$iSecs & "." & $iHsecs )
IniWriteSection( @ScriptDir & "\Messung.ini" , "Zeit", "Zeit: " , $iHours & ":" & $iMins & ":" &$iSecs & "." & $iHsecs )
Func Convert() ;Convert ticks to time and splitt it into HH:MM:SS.hh
_TicksToTime($tmpTimer, $iHours, $iMins, $iSecs)
$iHsecs = Round(($tmpTimer - (($iHours * 3600000) + ($iMins * 60000) + ($iSecs * 1000))) / 10)
If $iHours < 10 Then $iHours = "0" & $iHours
If $iMins < 10 Then $iMins = "0" & $iMins
If $iSecs < 10 Then $iSecs = "0" & $iSecs
If $iHsecs < 10 Then $iHsecs = "0" & $iHsecs
EndFunc ;==>Convert
Func End() ;Exit
Exit
EndFunc ;==>End
Leider habe ich mich irgend wie verhaspelt und stecke nun fest in einem Entwicklungsstand der nicht zufriedenstellend ist^^
-IE öffnet sich nicht mehr
-anstelle der Zeit wird 'False' angezeigt (weiß nicht wo der fehler liegt)
-und es lässt sich nur gewaltsam beenden
Vielleicht seht ihr ja meine Fehler Danke dass ihr mal drüber schaut!