Square7
Was gibt InetGetSize bei dir zurück?
Beiträge von Molaynox
-
-
Wenn ich hiermit eine Datei von meiner Homepage runterlade zeigt die Progressbar die richtige Prozentzahl an und alles funktioniert einwandfrei. Gibt InetGetSize die richtige Dateigröße zurück?
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>Opt("MustDeclareVars", 1)
[/autoit] [autoit][/autoit] [autoit]
HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
Global $VersionsInfo = "xxx"
Global $Neueversion = "xxx"
Global $ProgrammVersion = "1.0", $Version
Global $Form1, $Update, $Abbrechen, $Progress1, $Info
Global $nMsg
Global $Ini, $i, $int
Global $Size = 0, $SizeDH, $File, $aInfo, $iSize, $iPercent$Form1 = GUICreate("xxx |--> Updater", 349, 123, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Update = GUICtrlCreateButton("Update", 16, 80, 75, 25, $WS_GROUP)
$Abbrechen = GUICtrlCreateButton("Abbrechen", 253, 81, 75, 25, $WS_GROUP)
$Progress1 = GUICtrlCreateProgress(11, 15, 325, 44)
$Info = GUICtrlCreateButton("Info", 131, 81, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Abbrechen
Exit
Case $Info
MsgBox(0, "Info", "Dieser Updater gehört zum xxx Center!")
Case $Update
$Ini = InetGet($VersionsInfo, @ScriptDir & "\Update\Version.ini") ;Läd die Version.txt vom Webspace herunter und wandelt si in Version.ini um.
If $Ini = 0 Then
MsgBox(0, "ERROR", "Es ist ein Fehler aufgetreten!" & @CRLF & "Bitte informiere den Hersteller.");Überprüft ob der Download erfolgt ist
Else
$Update = MsgBox(4, "Update", "Eine neue Version ist verfügbar." & @CRLF & "Soll diese jetzt herunter geladen weden?")
FileDelete(@ScriptDir & "\Update\Version.ini")
If $Update = 6 Then$Size = InetGetSize($Neueversion) ;Bestimmen der Datei größe
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite($Size)
$i = 1
$SizeDH = Execute($Size / 100) ;Dateigröße durch 100 teilen
$int = $SizeDH
$File = InetGet($Neueversion, "NewUpdater.exe", 0, 1) ;läd die neue version herunter
Do
$aInfo = InetGetInfo($File)
Sleep(250)
$iPercent = Round($aInfo[0] / $iSize * 100, 2)
If $iPercent <> GUICtrlRead($Progress1) Then
If $iSize = 0 And $aInfo[1] <> 0 Then $iSize = $aInfo[1]
;GUICtrlSetData($lblDatei,$sUrl & " " & $aInfo[0] & "/" & $iSize)
GUICtrlSetData($Progress1, $iPercent)
EndIf
;EndIf
;WEndUntil $aInfo[2]
[/autoit] [autoit][/autoit] [autoit]
InetClose($File) ; Handle schließen um die Resourcen freizugebenIf $File = 0 Then
[/autoit]
MsgBox(0, "ERROR", "Es ist ein Fehler aufgetreten bitte informiren sie den Hersteller!2")
Exit
Else
MsgBox(0, "Download erfolgt", "Das Update wurde erfolgreich heruntergeladen!")
Exit
EndIf
If $Update = 7 Then
Exit
EndIf
EndIf
EndIf
EndSwitch
WEnd -
Ich hatte das selbe schon bei verschiedenen Programmen (z.B. Need for Speed Most Wanted installer).
Da hatten auch die Buttons IDs im AutoIt Window Info Tool aber anklicken konnte man sie nicht mit z.B. ControlClick.
Man konnte die Fenster mit keinem einzigen Control... Befehl fernsteuern. -
Funktioniert der Download selber oder funktioniert der auch nicht?
[autoit]
Bei manchen Freehoster kommt es vor das man mit AutoIt nicht einfach so etwas runterladen kann, das kann man aber leicht umgehen in dem man das oben im Script einfügt:HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
[/autoit] -
Ich vermute mal das Kaspersky sich mit Absicht nicht von irgendwelchen Scripts steuern lässt. (Wäre ja sonst auch leicht für Viren auszunutzen.)
-
Verwende statt:
[autoit]GUICtrlSetData($Ziel, $aQuellRead[$i] & "Zeile " & $i & @CRLF)
[/autoit]
[autoit]
Dies hier: (Benötigt : #Include <GuiEdit.au3>)_GUICtrlEdit_AppendText($Ziel, $aQuellRead[$i] & "Zeile " & $i & @CRLF)
[/autoit] -
Ich hab auch sowas vorhin gesucht. Wenn ich gewusst hätte, dass das in einer Zeile geht
Ich hatte es so gemacht:Spoiler anzeigen
[autoit]#include <EditConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>$hGUI = GUICreate("TestGUI", 250, 50, -1, -1)
[/autoit] [autoit][/autoit] [autoit]
$hInput = GUICtrlCreateInput("Suchbegriff eingeben...", 10, 10, 230, 30)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetFont(-1, 15)
GUICtrlSetColor(-1, 0xA9A9A9)
GUISetState(@SW_SHOW)
GUICtrlSetState($hInput, $GUI_ENABLE)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit]
If GUICtrlRead($hInput) = "Suchbegriff eingeben..." And ControlGetFocus("TestGUI") = "Edit1" Then
GUICtrlSetData($hInput, "")
GUICtrlSetColor($hInput, 0x000000)
EndIf
WEnd -
So etwas ähnliches hatte ich vor kurzem bei meinem PC, es waren zwar keine Punkte aber Streifen die auch im BIOS auftauchten und man konnte fast garkeine Schrift lesen. (Beim Bootmanager konnte man garnichts lesen da musste man dann raten weil alle Buchstaben irgendwo anders waren als sie seien sollten) Und siehe da es war weder Grafikkarte noch Mainboard oder Monitor. Es war das Netzteil. (Da war das Plastik um den Trafo geschnmolzen und ist auf so ziemlich auf alles gelaufen und dort abgekühlt)
-
Hast du es als 32 (x86) Bit Exe kompiliert? Bei mir geht es auch nicht wenn ich es als 64 (x64) Bit Exe kompiliere (Ja ich hab ein 64-Bit OS).
-
Wenn ich dich richtig verstanden habe, suchst du in etwa so etwas:
IntelliSenseBox von Bugfix. -
Mit der Console-UDF von Progandy sollte das möglich seien.
-
Schau dir mal die Funktion TrayTip() an.
-
[autoit]
While True
[/autoit]
If ProcessExists("firefox.exe") And Not ProcessExists("Firefox-Haubtscript.exe") Then
ShellExecute("Firefox-Haubtscript.exe")
ExitLoop
EndIf
WEnd -
Wenn du noch manche Sachen nicht kannst, kannst du ja irgendwas mit denen machen um darin besser zu werden. (Beispiel: GDI+)
-
Super Idee Mathe und Spiel!
-
Und du verwendest sehr oft GUICtrlCreatePic() obwohl es reichen würde nur ein Pic-Control zu erstellen. Da könntest du dann nämlich GUICtrlSetImage() verwenden.
Du könntest auch nur einen Button für die Buttons die den Text Download Cover haben erstellen, und einfach vorher den Link in einer Variable speichern bei einem Klick auf Staffel X. -
Hi mpsikorski,
In deinem Skript könnte man auch noch sehr viel verkürzen (schätze mal um mindestens 500 Zeilen). Schau dir dazu am besten mal Funktionen an.
Zu deinem Problem mit den GUIs: Bei zwei GUIs sollte man den Advanced Mode von GUIGetMsg() verwenden (Beispiel). -
Eine andere Möglichkeit wäre noch die WebTcp.au3 zu nutzen. Die läuft über TCP und für die muss auch kein Browser installiert sein.
-
Hab zu 2. gerade selbst eine Lösung gefunden: Das zweite Fenster einfach als Child-Fenster erstellen.
-