• Hi,
    ich habe mal aus den gesamten System Errorcodes von Windows eine UDF gemacht.

    Beispiel
    [autoit]

    #include "SystemErrorcodes.au3"

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

    $sRet = SystemErrorcode("ERROR_PRINTQ_FULL", 0, 3)
    ConsoleWrite("Beschreibung von ERROR_PRINTQ_FULL" & @CRLF & $sRet & @CRLF & @CRLF)

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

    $sRet = SystemErrorcode(1057, 1, 0)
    ConsoleWrite("Konstantenname von 1057" & @CRLF & $sRet & @CRLF & @CRLF)

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

    $sRet = SystemErrorcode("ERROR_PRINTQ_FULL",0,1)
    ConsoleWrite("ErrorID von ERROR_PRINTQ_FULL" & @CRLF & $sRet & @CRLF)

    [/autoit]

    Für interressierte habe ich hier noch den Code mit dem ich die Infos aus der Seite gehohlt habe.

    Spoiler anzeigen
    [autoit]

    #cs Datei in Array umwandeln
    #include <Array.au3>
    $sFile = FileRead(@ScriptDir & "\Errors.txt")

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

    $aFile = StringSplit($sFile, @CRLF, 1)
    ConsoleWrite("Dim $aErrorData[" & $aFile[0] & "][4] = [")

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

    For $x = 1 To $aFile[0]
    $aTemp = StringSplit($aFile[$x], "|", 2)
    ConsoleWrite('["' & $aTemp[0] & '",' & $aTemp[1] & "," & $aTemp[2] & ',"' & StringStripCR($aTemp[3]) & '"], _' & @CRLF)
    Next
    #ce

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

    #cs Daten aus Page hohlen
    #include <Array.au3>
    $sHTML = BinaryToString(InetRead("http://msdn.microsoft.com/en-us/library/ms681384%28v=vs.85%29.aspx"))
    ;~ ConsoleWrite($sHTML & @CRLF)
    $aRet = StringRegExp($sHTML, "<dt>([\d\w_]+)<\/dt>\r*\n*<dt>(\d+)\s\((0x[\d\w]+)\)<\/dt>\r*\n*<\/dl>\r*\n*<\/td><td>\r*\n*<p>(.+)<\/p>", 3)

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

    $hfile = FileOpen(@ScriptDir & "\Errors.txt", 1)

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

    $ub = UBound($aRet) - 1

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

    ;~ _ArrayDisplay($aRet)
    For $x = 0 To $ub Step 4
    FileWrite($hfile, $aRet[$x] & "|" & $aRet[$x + 1] & "|" & $aRet[$x + 2] & "|" & $aRet[$x + 3] & @CRLF)
    Next
    FileClose($hfile)
    #ce

    [/autoit]
  • Wenn du nur die Beschreibung für einen bestimmten Code möchtest, ist folgende Funktion beser geeignet.
    Um den Konstantennamen umzuwandeln ist deine UDF aber perfekt ;)

    [autoit]

    #include<WinAPi.au3>
    MsgBox(0, '', _WinAPI_GetErrorMessage(1057))

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _WinAPI_GetErrorMessage
    ; Description ...: Returns the calling threads last error message
    ; Syntax.........: _WinAPI_GetErrorMessage($iError)
    ; Parameters ....: $iError - the error code to transalte to a message
    ; Return values .: Success - Last error message
    ; Author ........: Paul Campbell (PaulIA)
    ; Modified.......: jpm, danielkza, Valik, ProgAndy
    ; Remarks .......:
    ; Related .......: _WinAPI_GetLastError
    ; Link ..........:
    ; Example .......:
    ; ===============================================================================================================================
    Func _WinAPI_GetErrorMessage($iError)
    Local $tBufferPtr = DllStructCreate("ptr")
    Local $pBufferPtr = DllStructGetPtr($tBufferPtr)

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

    Local $nCount = _WinAPI_FormatMessage(BitOR($__WINAPICONSTANT_FORMAT_MESSAGE_ALLOCATE_BUFFER, $__WINAPICONSTANT_FORMAT_MESSAGE_FROM_SYSTEM), _
    0, $iError, 0, $pBufferPtr, 0, 0)
    If @error Then Return SetError(@error, 0, "")

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

    Local $sText = ""
    Local $pBuffer = DllStructGetData($tBufferPtr, 1)
    If $pBuffer Then
    If $nCount > 0 Then
    Local $tBuffer = DllStructCreate("wchar[" & ($nCount+1) & "]", $pBuffer)
    $sText = DllStructGetData($tBuffer, 1)
    EndIf
    _WinAPI_LocalFree($pBuffer)
    EndIf

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

    Return $sText
    EndFunc ;==>_WinAPI_GetErrorMessage

    [/autoit]