Patches für Abwärtskompatibilität der neuen AutoIt-Version

  • Hier mal ein Sammlung von Funktionen die nicht mehr in der neuen AutoIt-Version vorhanden sind bzw. umbenannt worden sind.
    - Das Ganze kann in älteren Programmen verwendet werden um dieses schneller wieder lauffähig zu bekommen.
    - Kein Anspruch auf Vollständigkeit ...

    Spoiler anzeigen
    [autoit]

    #region Patches from 3.3.0.0 => 3.3.2.0

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

    #OnAutoItStartRegister "OnAutoItStart"
    OnAutoItExitRegister("OnAutoItExit")

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

    #define @InetGetBytesRead InetGetInfo(Default, 0)
    #define @InetGetActive (Not InetGetInfo(Default, 2))
    ; InetGet("abort") = InetClose($h)

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

    ;===============================================================================
    Func _SQLite_SaveMode($fSaveModeState)
    Local $r = _SQLite_SafeMode($fSaveModeState)
    Return SetError(@error,@extended,$r)
    EndFunc ;==>
    ;===============================================================================
    Func URLDownloadToFile($sURL, $sFilename, $iReload, $iBackground) ; ???
    Return InetGet($sURL, $sFilename, $iReload, $iBackground)
    EndFunc ;==>URLDownloadToFile
    ;===============================================================================
    Func AdlibEnable($sFunc, $iTime = 250)
    Return AdlibRegister($sFunc, $sTime)
    EndFunc ;==>AdlibEnable
    ;===============================================================================
    Func AdlibDisable()
    Return AdlibUnRegister()
    EndFunc ;==>AdlibDisable
    ;===============================================================================
    ; #FUNCTION# ===================================================================
    ; Name...........: _WinAPI_MakeDWord
    ; Description ...: Returns a DWord value from two int values
    ; Syntax.........: _WinAPI_MakeDWord($HiWord, $LoWord)
    ; Parameters ....: $HiWord - Hi word
    ; $LoWord - Low word
    ; Return values .: Success - DWord value
    ; Author ........: Gary Frost (gafrost)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......;
    ; ==============================================================================
    Func _WinAPI_MakeDWord($HiWord, $LoWord)
    Return BitOR($LoWord * 0x10000, BitAND($HiWord, 0xFFFF))
    EndFunc ;==>_WinAPI_MakeDWord
    ; #FUNCTION# ===================================================================
    ; Name...........: _StringAddThousandsSep
    ; Description ...: Returns the original numbered string with the Thousands delimiter inserted.
    ; Syntax.........: _StringAddThousandsSep($sString[, $sThousands = -1[, $sDecimal = -1]])
    ; Parameters ....: $sString - The string to be converted.
    ; $sThousands - Optional: The Thousands delimiter
    ; $sDecimal - Optional: The decimal delimiter
    ; Return values .: Success - The string with Thousands delimiter added.
    ; Author ........: SmOke_N (orignal _StringAddComma
    ; Modified.......: Valik (complete re-write, new function name)
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; Yes
    ; ==============================================================================
    Func _StringAddThousandsSep($sString, $sThousands = -1, $sDecimal = -1)
    Local $sResult = "" ; Force string
    Local $rKey = "HKCU\Control Panel\International"
    If $sDecimal = -1 Then $sDecimal = RegRead($rKey, "sDecimal")
    If $sThousands = -1 Then $sThousands = RegRead($rKey, "sThousand")
    ;~ Local $aNumber = StringRegExp($sString, "(\d+)\D?(\d*)", 1)
    Local $aNumber = StringRegExp($sString, "(\D?\d+)\D?(\d*)", 1) ; This one works for negatives.
    If UBound($aNumber) = 2 Then
    Local $sLeft = $aNumber[0]
    While StringLen($sLeft)
    $sResult = $sThousands & StringRight($sLeft, 3) & $sResult
    $sLeft = StringTrimRight($sLeft, 3)
    WEnd
    ;~ $sResult = StringTrimLeft($sResult, 1) ; Strip leading thousands separator
    $sResult = StringTrimLeft($sResult, StringLen($sThousands)) ; Strip leading thousands separator
    If $aNumber[1] <> "" Then $sResult &= $sDecimal & $aNumber[1]
    EndIf
    Return $sResult
    EndFunc ;==>_StringAddThousandsSep

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

    #endregion Patches from 3.3.0.0 => 3.3.2.0

    [/autoit]

    wer noch mehr Sachen findet ... nur her damit :)

    Die Datei kann einfach über _Au3Optim eingebunden werden, wenn man diese als _Patch.au3 im Include-Verzeichnis ablegt, damit wird sie bei jedem Programm berücksichtigt.

    5 Mal editiert, zuletzt von Stilgar (22. Dezember 2009 um 17:50)

  • Super. Nur die beiden defines für Inet werden so nicht funktionieren. InetGetInfo gibt ja ein Array zurück. Eventuell würde aber das gehen:

    [autoit]

    #define @InetGetBytesRead InetGetInfo(Default, 0)
    #define @InetGetActive (Not InetGetInfo(Default, 2))

    [/autoit]


    Sonst ist es besser, hier mit einem Fehler zu beenden, eventuell mit Austauschbeschreibung.

    • Offizieller Beitrag

    Woher habt ihr die Info zu

    [autoit]

    #define

    [/autoit]


    ?
    Kann man damit eigene Macros definieren? Habe nichts dazu in der Hilfe gefunden.
    Ich finde auch nichts zu :

    [autoit]

    #forceref

    [/autoit]
    • Offizieller Beitrag

    Danke euch beiden, werd mir das ganze mal anschauen. ;)