Update: Freeseite und unrar.dll

  • Hallo leute, meine fragen sind
    1. weiss jmd, wo ich eine free Webseite bekomme,die die URL's von den .txt dateien nicht verändert?
    (z.B. bei Hotmail-SkyDrive , dort wechselt immer die seite...)
    2. kann mir jmd diesen script so coden, dass man die unrar.dll (anhang), die ini datei und den Data ordner nicht braucht?
    (die Kommentare unterhalb der Zeile 12 [ausser 13] sind nicht von mir)

    Script
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <INet.au3>
    Const $vUpdateServer = "deinedomain.de" ;~ brauche da hilfe
    Const $vScriptFile = ".........version.txt" ; Zum checken der neuen version
    Const $vChangelogFile = ".......changelog.txt" ; Was sich geändert hat
    Const $vUnrarDLL = "......unrar.dll";~ das muss weg
    ;~ Keine ahnung, was unten mit dem Kommentar gemeint ist
    Const $vMapFiles = "irgendwas.irgendwas" ; Dort packst du einfach alle Datein rein die entpackt werden soll
    ;~ Keine ahnung, was oben mit dem Kommentar gemeint ist

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

    HotKeySet("{END}", "_exit")
    $INI = @ScriptDir & "\Data.ini"

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

    $vVersion = "1.12" ; Die version die das Script hat. Wird mit die aus dem Internet überpruft.
    $vGUIColor = 0x161616
    $vGUIColor2 = 0x161616
    Dim $hGUIListChangelog

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

    If Not FileExists(@ScriptDir & "\Data\") Then ; Ordner erstellen
    DirCreate(@ScriptDir & "\Data\")
    EndIf

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

    If Not FileExists($INI) Then
    IniWrite($INI, "Info", "Programm by", "(C) Bahadir (bbm1995 by autoit.de) Visit in 2012: http://www.mat.li/sg-fanseite-bbm Thanks")
    EndIf

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

    ;~ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    #region UpdateGUI
    ;UpdateGUI
    $vGUIStandartHeight = 290
    $vGUILargeHeight = $vGUIStandartHeight + 327
    $vGUIStandartWidth = 778
    $vGUIColor = 0x161616
    $hGUI = GUICreate("Tralala v" & $vVersion, $vGUIStandartWidth - 6, $vGUIStandartHeight) ; Das Gui wo am ende der Changelog drin steht wenn es eine neue version gibt.
    $hGUIUpdate = GUICreate("Tralala - Update", 500, 305, -1, -1, -1, 0x00000080, $hGUI)
    GUISetBkColor($vGUIColor, $hGUIUpdate)

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

    $hGUILabelNewVersion = GUICtrlCreateLabel("", 10, 10, 480, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $hGUIListChangelog = GUICtrlCreateList("", 10, 30, 480, 240, BitOR(0x4000, 0x0100, 0x00200000))
    GUICtrlSetBkColor(-1, $vGUIColor)
    GUICtrlSetColor(-1, 0xFFFFFF)

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

    $hGUIButtonDownload = GUICtrlCreateButton("Download", 10, 275, 235, 20)
    $hGUIButtonCancelUpdate = GUICtrlCreateButton("Cancel", 255, 275, 235, 20)
    GUISetState(@SW_HIDE)
    ;~ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

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

    #endregion UpdateGUI
    MainGui() ; Das normale GUI wird erstellt :)
    Func MainGui()
    Opt("GUIOnEventMode", 0)

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

    $maingui = GUICreate("Main Gui", 260, 175, -1, -1)
    $hGUILabelUpdateAndSApfelInfo = GUICtrlCreateLabel("", 25, 14, 84, 17)
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, 32)
    GUICtrlCreateLabel("Test2", 53, 38, 55, 17)
    $check = GUICtrlCreateButton("Check", 10, 88, 240, 20)
    $groupgeneral2 = GUICtrlCreateGroup("Info", 10, 113, 240, 42)
    $Label1 = GUICtrlCreateLabel("Made by" & "Franky", 24, 128, 205, 19)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUISetState(@SW_SHOW, $maingui)

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

    While 1
    Switch GUIGetMsg($maingui)
    Case -3
    Exit

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

    Case $check
    _FU_ClickUpdateCheck()

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

    Case $hGUIButtonDownload
    _FU_ClickButtonDownload()
    Case $hGUIButtonCancelUpdate, $hGUIUpdate
    _FU_ClickButtonCancelUpdate()

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

    EndSwitch
    Sleep(10)
    WEnd

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

    GUIDelete($maingui)
    Sleep(100)

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

    EndFunc ;==>MainGui

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

    Func _exit()
    Sleep(10)
    Exit
    EndFunc ;==>_exit

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

    ; Hier wird gecheckt ob man verbindung zum word-wide-web hat
    ;Aber auch ob es ein Fehler gab
    ;Und ob die neuste version schon benutzt wird.
    Func _FU_ClickUpdateCheck()
    _FU_UpdateCheck($vVersion)
    If @error = 1 Then
    MsgBox(48, "Connection timeout", "You either do not have a connection to the world wide web or the server is currently down.")
    ElseIf @error = 2 Then
    MsgBox(48, "Error", "Error getting the version!")
    ElseIf @error = 3 Then
    MsgBox(64, "No update available", "You are using the latest version (v" & $vVersion & ").")
    Else
    GUISetState(@SW_SHOW, $hGUIUpdate) ;5
    EndIf
    EndFunc ;==>_FU_ClickUpdateCheck

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

    Func _FU_UpdateCheck($vCurrentVersion)
    If Ping($vUpdateServer) = 0 Then
    SetError(1)
    Else
    $vLatestVersion = _INetGetSource_($vScriptFile)
    If @error Then
    SetError(2)
    Else
    If $vCurrentVersion <> $vLatestVersion Then
    GUICtrlSetData($hGUILabelNewVersion, "There is a new version available (old: " & $vCurrentVersion & " | new: " & $vLatestVersion & ").")
    $vChangelog = StringSplit(_INetGetSource_($vChangelogFile), @CRLF)
    For $i = 1 To $vChangelog[0]
    GUICtrlSendMsg($hGUIListChangelog, 0x0180, 0, $vChangelog[$i])
    Next
    Return SetError(0, 0, $vLatestVersion)
    Else
    SetError(3)
    EndIf
    EndIf
    EndIf
    Return 0
    EndFunc ;==>_FU_UpdateCheck

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

    Func _INetGetSource_($s_URL, $bString = True)
    Local $sString = InetRead($s_URL, 1)
    Local $nError = @error, $nExtended = @extended
    If $bString Then $sString = BinaryToString($sString)
    Return SetError($nError, $nExtended, $sString)
    EndFunc ;==>_INetGetSource_

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

    Func _FU_ClickButtonDownload()
    GUISetState(@SW_HIDE, $hGUIUpdate)
    GUICtrlSetData($hGUIListChangelog, "")
    _FU_MapFilesInstall()
    EndFunc ;==>_FU_ClickButtonDownload

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

    Func _FU_ClickButtonCancelUpdate()
    GUISetState(@SW_HIDE, $hGUIUpdate)
    GUICtrlSetData($hGUIListChangelog, "")
    EndFunc ;==>_FU_ClickButtonCancelUpdate

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

    Func _FU_MapFilesInstall()
    $v_MapFiles = @TempDir & "\dateiname.rar" ; wird nur gespeichert ,damit es entpackt werden kann

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

    ProgressOn("Downloading...", "Loading 'unrar.dll'", "")

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

    $v_SizeUnrarDLL = Round(InetGetSize($vUnrarDLL) / 1024)
    $hDownload = InetGet($vUnrarDLL, @TempDir & "\unrar.dll", 1, 1)
    Do
    $v_DLBytes = Round(InetGetInfo($hDownload, 0) / 1024)
    $v_DLPercent = Round($v_DLBytes / $v_SizeUnrarDLL * 100)
    ProgressSet($v_DLPercent, @LF & $v_DLBytes & "/" & $v_SizeUnrarDLL & "KB " & $v_DLPercent & "%")
    Sleep(100)
    Until InetGetInfo($hDownload, 2)

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

    ProgressSet(0, "", "Loading 'DateiName.rar'")

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

    $v_SizeMapFilesRar = Round(InetGetSize($vMapFiles) / 1024)
    Local $hDownload = InetGet($vMapFiles, $v_MapFiles, 1, 1)
    Do
    $v_DLBytes = Round(InetGetInfo($hDownload, 0) / 1024)
    $v_DLPercent = Round($v_DLBytes / $v_SizeMapFilesRar * 100)
    ProgressSet($v_DLPercent, @LF & $v_DLBytes & "/" & $v_SizeMapFilesRar & "KB " & $v_DLPercent & "%")
    Sleep(200)
    Until InetGetInfo($hDownload, 2)

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

    ProgressSet(100, @LF & "This may take some seconds.", "Installing DateiName...")
    $bExtractionSuc = _FU_RARExtract(@TempDir & "\unrar.dll", $v_MapFiles)

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

    Sleep(2000)

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

    FileDelete(@TempDir & "\unrar.dll")
    FileDelete($v_MapFiles)

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

    If $bExtractionSuc = 1 Then
    ProgressSet(100, @LF & "Installation done. Have fun!", "Installing DateiName...")
    Sleep(3000)
    Else
    For $i = 15 To 1 Step - 1
    ProgressSet(100, "Error occured. Please make sure that you are connected" & @CRLF & "to the www and that SBot Manager was started in" & @CRLF & "32 bit mode. Continuing in " & $i & " seconds", "Installing DateiName...")
    Sleep(1000)
    Next
    EndIf

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

    ProgressOff()
    EndFunc ;==>_FU_MapFilesInstall

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

    ;Auto extraction of rar archives into the scriptdirectory
    Func _FU_RARExtract($v_UnrarDLL, $v_RarFile) ;$v_UnrarDLL = path to unrar.dll file, $v_RarFile = path to rar file
    Local $sResult

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

    $rar_ArchivName = DllStructCreate("char[260]")
    DllStructSetData($rar_ArchivName, 1, $v_RarFile)

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

    $rar_CmtBuf = DllStructCreate("char[16384]")
    For $iCount = 1 To 16384
    $sResult &= " "
    Next
    DllStructSetData($rar_CmtBuf, 1, $sResult)

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

    $rar_Str = DllStructCreate("ptr;uint;uint;ptr;uint;uint;uint")

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

    DllStructSetData($rar_Str, 1, DllStructGetPtr($rar_ArchivName))
    DllStructSetData($rar_Str, 2, 1) ;1 = $RAR_OM_EXTRACT
    DllStructSetData($rar_Str, 3, 0)
    DllStructSetData($rar_Str, 4, DllStructGetPtr($rar_CmtBuf))
    DllStructSetData($rar_Str, 5, 16384)
    DllStructSetData($rar_Str, 6, 0)
    DllStructSetData($rar_Str, 7, 0)
    $rar_Header_CmtBuf = DllStructCreate("char[16384]")

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

    $rar_Header_Str = DllStructCreate("char[260];char[260];uint;uint;uint;uint;uint;uint;uint;uint;uint;ptr;uint;uint;uint")
    DllStructSetData($rar_Header_Str, 12, DllStructGetPtr($rar_Header_CmtBuf))

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

    If FileExists($v_UnrarDLL) Then
    $DLLUnrar = DllOpen($v_UnrarDLL)
    $rar_OpenedArchive = DllCall($DLLUnrar, "int", "RAROpenArchive", "ptr", DllStructGetPtr($rar_Str))

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

    If IsArray($rar_OpenedArchive) Then
    $iCount = 0
    Do
    $rar_Header = DllCall($DLLUnrar, "int", "RARReadHeader", "ptr", $rar_OpenedArchive[0], "ptr", DllStructGetPtr($rar_Header_Str))
    DllCall($DLLUnrar, "int", "RARProcessFile", "ptr", $rar_OpenedArchive[0], "int_ptr", 2, "ptr", "", "ptr", "") ;2 = $RAR_EXTRACT
    $iCount += 1
    Until $rar_Header[0] <> 0 Or $iCount = 20

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

    DllCall($DLLUnrar, "int", "RARCloseArchive", "int", $rar_OpenedArchive[0])
    DllClose($DLLUnrar)
    Return 1
    EndIf
    EndIf
    Return 0
    EndFunc ;==>_FU_RARExtract

    [/autoit]
  • was ist mit der 1. Frage? allgemein würde das hier gehören.
    und die 2. Frage ist nicht eine Komplettveränderung des Scripts.

  • Hallo bbm1995

    Zitat

    und die 2. Frage ist nicht eine Komplettveränderung des Scripts.

    Eigentlich schon, da das Programm ja eine Datei entpacken will, aber du möchtest, dass dein Skript diesen Vorgang ohne die unrar.dll machen,
    deshalb müsste der Ablauf umgecoded werden. Ich denke das AutoBert mit der verschiebung recht hat.

    Zu deiner ersten Frage: Benutz Square7.ch, da bekommste nen Webspace der die URL's nicht verändert.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Eigentlich schon, da das Programm ja eine Datei entpacken will, aber du möchtest, dass dein Skript diesen Vorgang ohne die unrar.dll machen,
    deshalb müsste der Ablauf umgecoded werden.

    Genau, und danke für die webseite. (der Speicherplatz ist aber etwas gering, naja egal.)
    ich werde es schnell mal austesten, ob es mit .txt klappt.

  • Genau, und danke für die webseite. (der Speicherplatz ist aber etwas gering, naja egal.)

    Der Speicherplatz beträgt etwas über 7GB, warum findeste dass das "etwas gering" ist ??

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • ach so. ich dachte das wäre KB
    gibt es eine anleitung für diese webseite? mir wär es lieber, wenns einfacher wäre

  • Auf der Seite sollten einige erklärungen sein.
    Du brauchst aber FileZilla (Oder n anderes FTP Programm) um deine Dateien hochzuladen.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • dort sind aber FTP's...
    ich will eig. nur eine seite, wenn man eine Datei hochladet (z.B. eine mit endung *.bla), dann soll es so heissen: www.******.**/**********.bla

  • was ist mit der 1. Frage? allgemein würde das hier gehören.

    nein die gehört in OFF-Topic

    und die 2. Frage ist nicht eine Komplettveränderung des Scripts.

    da du ja keine Hilfe sodern ein Skript willst ist das in Programmieranfragen besser aufgehoben.

    Ich schlage also vor du setzt den Thread auf gelöst und erstellst 2 neue in den richten Kategorien,

    mfg (Auto)Bert

  • Zitat

    dort sind aber FTP's...
    ich will eig. nur eine seite, wenn man eine Datei hochladet (z.B. eine mit endung *.bla), dann soll es so heissen: www.******.**/**********.bla

    Was ist denn dein Problem mit FTPs? Das ist die gängiste Methode um Dateien auf seinem Webspace abzulegen. Mal abgesehen davon, das du dann doch einen "normalen" Link hast.
    Wenn du unbedingt auf FTP verzichten willst dann pack dir halt ein simples PHP Upload-Skript auf den Webspace. Die gibt's zu hunderten im Netz.

    Mich beschleicht hier langsam das Gefühl das du garkeinen Webspace suchst sondern einen Filehoster.

  • Mich beschleicht hier langsam das Gefühl das du garkeinen Webspace suchst sondern einen Filehoster.

    Indirekt. eher beides :) , wie Rapidshare(mehr wie SkyDrive bei hotmail) aber ohne ladezeiten und direkt anzeigen :!: , wie man einen txt datei im web öffnet ohne es zu downloaden. und die seiten sollten sich nicht ändern wie bei Hotmail. :cursing:

  • Zitat

    Indirekt. eher beides :) , wie Rapidshare(mehr wie SkyDrive bei hotmail) aber ohne ladezeiten und direkt anzeigen :!: , wie man einen txt datei im web öffnet ohne es zu downloaden. und die seiten sollten sich nicht ändern wie bei Hotmail.

    Ich glaube nicht, dass es soetwas gibt.
    Zumindest habe ich sowas noch nie gehört.
    Upload ja, aber die URL wird eig. immer geändert.
    Und der Aufwand mit Webspace und FTP ist recht gering.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Ich find die Infos auch irgendwie nicht sehr ergiebig. Wer muss die Datei hochladen? Wer verwendet sie danach und wie?

    Wenn du anderen nur Texte zeigen möchtest dann lad sie auf pastebin.com hoch :rolleye:

    edit: ich werf mal noch Dropbox, Box.net und Abkömmlinge in den Raum.

  • Ich find die Infos auch irgendwie nicht sehr ergiebig. Wer muss die Datei hochladen? Wer verwendet sie danach und wie?

    Wenn du anderen nur Texte zeigen möchtest dann lad sie auf pastebin.com hoch :rolleye:

    edit: ich werf mal noch Dropbox, Box.net und Abkömmlinge in den Raum.

    Ich lade die Dateien hoch , meine Benutzer des Scripts verwenden sie und die Txt Dateien werden in einem Editbox angezeigt (Changelog und Version), der die Texte direkt aus dem www.***.**/****.txt entnimmt!
    ich werde mal nach den Ferien mit Pastebin ausprobieren. kann aber ab heute 1 monat lang nicht ins Internet gehen.