Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

SmartUpdater


Phoenix_PL

Rekomendowane odpowiedzi

Opublikowano

Witam.

 

Z mojej potrzeby zrobiłem skrypt który aktualizuje jeden plik.

Może to się okazać nieprzydatne, aczkolwiek wstawiam tu kod - z tego kodu można w sumie napisać 'większego' autopatchera (którego posiadam, ale nie umieszczam :P).

 

Tak więc, łapcie.

 

#include <GuiConstantsEx.au3>

;GUI
$FORM_update = GUICreate("Update", 228, 60, -1, -1, 0x00C00000)
$PRG_postep = GUICtrlCreateProgress(8, 32, 206, 17)
$LABEL_pobieranie = GUICtrlCreateLabel("", 8, 8, 212, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState(@SW_SHOW)

;rozpoczynanie pobierania

;zmienna z linkiem do pliku i miejscem zapisu pliku
Global Const $DownloadURL = "tutaj wstaw bezpośredni link do pliku"
Global Const $SavePath = "tutaj wstaw ścieżkę zapisu pobranego pliku"

GUICtrlSetData($LABEL_pobieranie, "Sprawdzam aktualnosć pliku...")

;pobierz informacje o pliku
$FileSize = InetGetSize($DownloadURL)

;sprawdź czy plik juz jest sciągnięty
If FileExists($SavePath) Then
;jesli plik istnieje to sprawdź jego wielkosć i porównaj z wielkoscią z serwera
$DwnFileSize = FileGetSize($SavePath)
If $DwnFileSize = $FileSize Then
;jesli wielkosć jest taka sama (więc pliki są identyczne)
MsgBox(64, "Informacja", "Masz aktualną wersję pliku!")
zakoncz()
EndIf
EndIf

;zrób obliczenia potrzebne do obsługi progressbara
$Procent = $FileSize/100
;MsgBox(0, "", $Procent)

;rozpocznij pobieranie
$Inet = InetGet($DownloadURL, $SavePath, 1, 1)
Local $Pos

;pętla do obsługi progressbara
While InetGetInfo($Inet, 2) = False
$Pos = Ceiling((InetGetInfo($Inet, 0)/$FileSize)*100)
GUICtrlSetData($PRG_postep, $Pos)
GUICtrlSetData($LABEL_pobieranie, "Pobieranie: "&$Pos&"%")
Sleep (250)
WEnd
GUICtrlSetData($PRG_postep, 100)

zakoncz()

;funkcje
Func zakoncz()
Run($SavePath)
Exit
EndFunc

;pętla programu
While 1
Sleep (100)
WEnd

 

 

Jeśli ktoś nie chce, żeby pobrany plik się uruchamiał (w przypadku jeśli plik jest wykonywalny) to niech zakomentuje Run($SavePath) w funkcji zakoncz() (kombinowałem z checkboxem ale się buntował :()

 

A, i jeszcze jedno - Link do pobieranego pliku oraz miejsce jego zapisania jest w zmiennych pod gui (są komentarze :D)

Link do pliku musi być bezpośredni, czyli musi się kończyć rozszerzeniem pliku (takie linki można uzyskać poprzez wrzucanie na np. Dropboxa, Sourceforge)

 

Miłej zabawy ;)...

846331404756772371599.jpeg
  • 1 miesiąc temu...
Opublikowano

Można by było zrobić program który ma funkcje update'u samego siebie. Właściwie zmiana to @ScriptFullPath

#include <GuiConstantsEx.au3>
;GUI
$FORM_update = GUICreate("Update", 228, 60, -1, -1, 0x00C00000)
$PRG_postep = GUICtrlCreateProgress(8, 32, 206, 17)
$LABEL_pobieranie = GUICtrlCreateLabel("", 8, 8, 212, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState(@SW_SHOW)
;rozpoczynanie pobierania
;zmienna z linkiem do pliku i miejscem zapisu pliku
Global Const $DownloadURL = "tutaj wstaw bezpośredni link do pliku"
Global Const $SavePath = @ScriptFullPath
GUICtrlSetData($LABEL_pobieranie, "Sprawdzam aktualnosć pliku...")
;pobierz informacje o pliku
$FileSize = InetGetSize($DownloadURL)
;sprawdź czy plik juz jest sciągnięty
If FileExists($SavePath) Then
;jesli plik istnieje to sprawdź jego wielkosć i porównaj z wielkoscią z serwera
$DwnFileSize = FileGetSize($SavePath)
If $DwnFileSize = $FileSize Then
;jesli wielkosć jest taka sama (więc pliki są identyczne)
MsgBox(64, "Informacja", "Masz aktualną wersję pliku!")
zakoncz()
EndIf
EndIf
;zrób obliczenia potrzebne do obsługi progressbara
$Procent = $FileSize/100
;MsgBox(0, "", $Procent)
;rozpocznij pobieranie
$Inet = InetGet($DownloadURL, $SavePath, 1, 1)
Local $Pos
;pętla do obsługi progressbara
While InetGetInfo($Inet, 2) = False
$Pos = Ceiling((InetGetInfo($Inet, 0)/$FileSize)*100)
GUICtrlSetData($PRG_postep, $Pos)
GUICtrlSetData($LABEL_pobieranie, "Pobieranie: "&$Pos&"%")
Sleep (250)
WEnd
GUICtrlSetData($PRG_postep, 100)
zakoncz()
;funkcje
Func zakoncz()
Run($SavePath)
Exit
EndFunc
;pętla programu
While 1
Sleep (100)
WEnd

  • 3 miesiące temu...
Opublikowano

Dodaje skana ;) zeby nie było a pliki fajne;0 a co to ten keylogger?:D

Scan :1365066360-U893061.png

 

O jeszcze trochę!!!

Jeszcze jeszcze blisko!

 

Ej ej ej! nie tak prędko!!! gdzie ty się tam ładujesz?

Dobry mużin z afryki nie jest dobry i jeszcze trochę!!!

Gorąco!

Parzyyy!!!

I co opłacało się klikać?

Jeśli Ci się tak nudzi to wpisz w google RedTube.

 

 

 

 

 

 

 

  • 2 miesiące temu...
Opublikowano

Nie działa mi. Pokazuje pobrane: 0% i się wyłącza.

Moje tutki:

"Bad Video Card Drivers" - Błąd w mc? Zobacz do mnie aby dowiedzieć się jak to naprawić!

Chcesz wyciągnąć maksymalną ilość fps w minecraft? Kliknij

tu!

Opublikowano

Wiem że nie działa, najwyraźniej przy którejś aktualizacji AutoITa coś zmienili. Znajdę wenę to poprawię.

 

Trzeba teraz rozszerzenie dopisać i działa.

Moje tutki:

"Bad Video Card Drivers" - Błąd w mc? Zobacz do mnie aby dowiedzieć się jak to naprawić!

Chcesz wyciągnąć maksymalną ilość fps w minecraft? Kliknij

tu!

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...