1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. i2c

Beiträge von i2c

  • Bekannte Bugs in 3.3.8.1?

    • i2c
    • 7. April 2012 um 03:06

    Fehler tritt in der 3.3.8.1 bei mir ebenfalls auf.
    Es liegt aber nicht an isArray(). Beim Ausführen deines Beispiels zu _Ftp_ListToArray2D() reicht es schon, sich das _ArrayDisplay() anzuschauen. Man sieht ein 1dimensionales Array mit leeren Elementen. Da sagt isArray() natürlich OK aber der Zugriff auf $aArray[0][0] muss dennoch fehlschlagen.

    Das Problem liegt irgendwo in der internen Funktion __FTP_ListToArray() in der FTPEx.au3.
    Zum testen hab ich mal die Version aus einer 3.3.6.1 genommen und entsprechend in der 3.3.8.1 ersetzt.
    Siehe da, es geht wieder.

    Wenn man sich die beiden Versionen der Funktionen anschaut, hat sich da nicht allzu viel verändert aber wo da genau das Problem liegt vermag ich grad nicht zu erkennen. Ich wette Prog@ndy weiss es ;)

    __FTP_ListToArray() aus 3.3.6.1
    [autoit]

    ; #INTERNAL_USE_ONLY# ===========================================================================================================
    ; Name...........: __FTP_ListToArray
    ; Description ...:
    ; Syntax.........: __FTP_ListToArray($l_FTPSession, $Return_Type = 0, $l_Flags = 0, $bFmt = 1, $ArrayCount = 6)
    ; Parameters ....:
    ; Return values .: an 2D array with the requested info defined by $ArrayCount
    ; [0] Filename
    ; [1] Filesize
    ; [2] FileAttribute
    ; [3] File Modification time
    ; [4] File Creation time
    ; [5] File Access time
    ; Author ........: Beast, Prog@ndy
    ; Modified.......: jpm (to be use by external UDFs)
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......:
    ; ===============================================================================================================================
    Func __FTP_ListToArray($l_FTPSession, $Return_Type = 0, $l_Flags = 0, $bFmt = 1, $ArrayCount = 6, $l_Context = 0)
    Local $tWIN32_FIND_DATA, $tFileTime, $IsDir, $callFindNext
    Local $DirectoryIndex = 0, $FileIndex = 0

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

    If $ArrayCount = 1 Then
    Local $FileArray[1], $DirectoryArray[1]
    Else
    Local $FileArray[1][$ArrayCount], $DirectoryArray[1][$ArrayCount]
    EndIf

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

    If $Return_Type < 0 Or $Return_Type > 2 Then Return SetError(1, 0, $FileArray)

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

    ;~ Global Const $tagWIN32_FIND_DATA = "DWORD dwFileAttributes; dword ftCreationTime[2]; dword ftLastAccessTime[2]; dword ftLastWriteTime[2]; DWORD nFileSizeHigh; DWORD nFileSizeLow; dword dwReserved0; dword dwReserved1; WCHAR cFileName[260]; WCHAR cAlternateFileName[14];"
    $tWIN32_FIND_DATA = DllStructCreate($tagWIN32_FIND_DATA)
    Local $callFindFirst = DllCall($__ghWinInet_FTP, 'handle', 'FtpFindFirstFileW', 'handle', $l_FTPSession, 'wstr', "", 'ptr', DllStructGetPtr($tWIN32_FIND_DATA), 'dword', $l_Flags, 'dword_ptr', $l_Context)
    If @error Or Not $callFindFirst[0] Then Return SetError(1, _WinAPI_GetLastError(), 0)

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

    Do
    $IsDir = BitAND(DllStructGetData($tWIN32_FIND_DATA, "dwFileAttributes"), $FILE_ATTRIBUTE_DIRECTORY) = $FILE_ATTRIBUTE_DIRECTORY
    If $IsDir And ($Return_Type <> 2) Then
    $DirectoryIndex += 1
    If $ArrayCount = 1 Then
    ReDim $DirectoryArray[$DirectoryIndex + 1]
    $DirectoryArray[$DirectoryIndex] = DllStructGetData($tWIN32_FIND_DATA, "cFileName")
    Else
    ReDim $DirectoryArray[$DirectoryIndex + 1][$ArrayCount]
    $DirectoryArray[$DirectoryIndex][0] = DllStructGetData($tWIN32_FIND_DATA, "cFileName")

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

    $DirectoryArray[$DirectoryIndex][1] = _WinAPI_MakeQWord(DllStructGetData($tWIN32_FIND_DATA, "nFileSizeLow"), DllStructGetData($tWIN32_FIND_DATA, "nFileSizeHigh"))
    If $ArrayCount = 6 Then
    $DirectoryArray[$DirectoryIndex][2] = DllStructGetData($tWIN32_FIND_DATA, "dwFileAttributes")

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

    $tFileTime = DllStructCreate($tagFILETIME, DllStructGetPtr($tWIN32_FIND_DATA, "ftLastWriteTime"))
    $DirectoryArray[$DirectoryIndex][3] = _Date_Time_FileTimeToStr( $tFileTime ,$bFmt)
    $tFileTime = DllStructCreate($tagFILETIME, DllStructGetPtr($tWIN32_FIND_DATA, "ftCreationTime"))
    $DirectoryArray[$DirectoryIndex][4] = _Date_Time_FileTimeToStr( $tFileTime ,$bFmt)
    $tFileTime = DllStructCreate($tagFILETIME, DllStructGetPtr($tWIN32_FIND_DATA, "ftLastAccessTime"))
    $DirectoryArray[$DirectoryIndex][5] = _Date_Time_FileTimeToStr( $tFileTime ,$bFmt)
    EndIf
    EndIf
    ElseIf Not $IsDir And $Return_Type <> 1 Then
    $FileIndex += 1
    If $ArrayCount = 1 Then
    ReDim $FileArray[$FileIndex + 1]
    $FileArray[$FileIndex] = DllStructGetData($tWIN32_FIND_DATA, "cFileName")
    Else
    ReDim $FileArray[$FileIndex + 1][$ArrayCount]
    $FileArray[$FileIndex][0] = DllStructGetData($tWIN32_FIND_DATA, "cFileName")

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

    $FileArray[$FileIndex][1] = _WinAPI_MakeQWord(DllStructGetData($tWIN32_FIND_DATA, "nFileSizeLow"), DllStructGetData($tWIN32_FIND_DATA, "nFileSizeHigh"))
    If $ArrayCount = 6 Then
    $FileArray[$FileIndex][2] = DllStructGetData($tWIN32_FIND_DATA, "dwFileAttributes")

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

    $tFileTime = DllStructCreate($tagFILETIME, DllStructGetPtr($tWIN32_FIND_DATA, "ftLastWriteTime"))
    $FileArray[$FileIndex][3] = _Date_Time_FileTimeToStr( $tFileTime ,$bFmt)
    $tFileTime = DllStructCreate($tagFILETIME, DllStructGetPtr($tWIN32_FIND_DATA, "ftCreationTime"))
    $FileArray[$FileIndex][4] = _Date_Time_FileTimeToStr( $tFileTime ,$bFmt)
    $tFileTime = DllStructCreate($tagFILETIME, DllStructGetPtr($tWIN32_FIND_DATA, "ftLastAccessTime"))
    $FileArray[$FileIndex][5] = _Date_Time_FileTimeToStr( $tFileTime ,$bFmt)
    EndIf
    EndIf
    EndIf

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

    $callFindNext = DllCall($__ghWinInet_FTP, 'bool', 'InternetFindNextFileW', 'handle', $callFindFirst[0], 'ptr', DllStructGetPtr($tWIN32_FIND_DATA))
    If @error Then Return SetError(2, _WinAPI_GetLastError(), 0)
    Until Not $callFindNext[0]

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

    DllCall($__ghWinInet_FTP, 'bool', 'InternetCloseHandle', 'handle', $callFindFirst[0])
    ; No need to test @error.

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

    If $ArrayCount = 1 Then
    $DirectoryArray[0] = $DirectoryIndex
    $FileArray[0] = $FileIndex
    Else
    $DirectoryArray[0][0] = $DirectoryIndex
    $FileArray[0][0] = $FileIndex
    EndIf

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

    Switch $Return_Type
    Case 0
    If $ArrayCount = 1 Then
    ReDim $DirectoryArray[$DirectoryArray[0] + $FileArray[0] + 1]
    For $i = 1 To $FileIndex
    $DirectoryArray[$DirectoryArray[0] + $i] = $FileArray[$i]
    Next
    $DirectoryArray[0] += $FileArray[0]
    Else
    ReDim $DirectoryArray[$DirectoryArray[0][0] + $FileArray[0][0] + 1][$ArrayCount]
    For $i = 1 To $FileIndex
    For $j = 0 To $ArrayCount-1
    $DirectoryArray[$DirectoryArray[0][0] + $i][$j] = $FileArray[$i][$j]
    Next
    Next
    $DirectoryArray[0][0] += $FileArray[0][0]
    EndIf
    Return $DirectoryArray
    Case 1
    Return $DirectoryArray
    Case 2
    Return $FileArray
    EndSwitch
    EndFunc ;==>__FTP_ListToArray

    [/autoit]
  • Was macht dieses Skript?

    • i2c
    • 7. April 2012 um 00:16

    Das hab ich schonmal gesehen.

    Da hatte es wohl mit dem ICQ Clienten zu tun. ICQ macht da irgendwas in Richtung Adsense oder Analytics. Ist also kein Virus eher ein Bug. Wer mag, soll es ein Feature nennen.

  • Minecraft Launcher in Autoit

    • i2c
    • 6. April 2012 um 21:55

    Sieh es als Alternative vor der manuellen Eingabe des Pfads.

  • Minecraft Launcher in Autoit

    • i2c
    • 6. April 2012 um 21:11

    Ich hab mir das Skript jetzt nicht angeschaut aber Java lässt sich auch über die PATH Variable finden, wenn sie denn gesetzt wurde.

    Spoiler anzeigen
    [autoit]

    $sPath = EnvGet("PATH")
    $aPath = StringSplit($sPath, ";", 1)

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

    For $i = 1 To $aPath[0]
    If StringInStr($aPath[$i], "java") Then MsgBox(0,"",$aPath[$i])
    Next

    [/autoit]
  • Bestimmte Zahlen aus dem Quellext auslesen ?

    • i2c
    • 5. April 2012 um 21:01

    Eine simple regexp. Es geht auch noch "intensiver".

    Spoiler anzeigen
    [autoit]

    $ssource = '<div id="cc-matrix-1305317580"><div class="n j-header"><h1>Heutige IP-Adresse: 82.83.43.243</h1></div></div>'
    $sPattern = '\b(?:\d{1,3}\.){3}\d{1,3}\b'

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

    $aResult = StringRegExp($ssource, $sPattern, 3,1)
    For $i = 0 To UBound($aResult) -1
    ConsoleWrite("Quick: " & $aResult[$i] & @LF)
    Next

    [/autoit]
  • Wiedergabegerät verfügbar?

    • i2c
    • 5. April 2012 um 19:17

    Aus meiner Sammlung. Bin aber nicht sicher, ob das so ok ist.

    [autoit]

    #include <array.au3>
    $res = GetAudioDevices()
    _ArrayDisplay($res)
    Func GetAudioDevices() ;get list of all audio devices
    Dim $results[1]

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

    If Not IsObj(ObjGet("winmgmts:{impersonationLevel=Impersonate}!\\" & @ComputerName & "\root\CIMV2")) Then
    MsgBox(0, "Error", "Windows WMI scripting engine is corrupted. Please contact your administrator.")
    Exit 0
    Else
    $objWMI = ObjGet("winmgmts:{impersonationLevel=Impersonate}!\\" & @ComputerName & "\root\CIMV2")
    $objItems = $objWMI.ExecQuery("SELECT * FROM Win32_SoundDevice", "WQL", 0x10 + 0x20)
    For $objItem In $objItems
    $results &= $objItem.PNPDeviceID & " - " & $objItem.Caption & @CRLF
    _ArrayAdd($results, $objItem.PNPDeviceID & " - " & $objItem.Status)
    Next
    EndIf

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

    Return $results
    EndFunc

    [/autoit]
  • ShoutBox-Bug (?)

    • i2c
    • 5. April 2012 um 16:45

    Danke dir! Ich werd das bei Gelegenheit ausprobieren. Im Moment hat das keine hohe Priorität.

    Wer mag, kann ja gerne einen pull request auf GitHub erstellen. Ich nehm die gerne an :)

  • ShoutBox-Bug (?)

    • i2c
    • 4. April 2012 um 23:38

    https://github.com/ideas2code/com…tPage.class.php

    Zeile 89

  • ShoutBox-Bug (?)

    • i2c
    • 4. April 2012 um 23:30

    Macht Umstände ... keine Zeit für ausgiebige Erklärungen. Tut mir leid.
    Wen es interessiert, der möge sich den Spoiler mal genauer anschauen.

    Gruß Thomas

  • ShoutBox-Bug (?)

    • i2c
    • 4. April 2012 um 23:00

    Die Erklärung ist simpel - der Spoiler tag ist schuld. Fabriziert an anderen Stellen im Forum ähnliche Fehler. Normalerweise wurde er bis jetzt in der SB gefiltert. Muss wohl irgendwas im letzten update verdreht haben.

    Das mit den Doppelposts hier im Thread hat damit nix zu tun. Das ist nur ein kurzer stotterer in der Datenbankverbindung.

    Damit sollte das Thema dann auch erledigt sein. ;)

  • ShoutBox-Bug (?)

    • i2c
    • 4. April 2012 um 10:10

    Ich schau heut Nachmittag mal, warum das momentan wieder möglich ist. Die Übersetzungsseite geht erstmal vor. Postet einfach keine SPoiler dann gibt's auch keine Probleme :)

    Danke für's melden!

  • Website reload and save.

    • i2c
    • 1. April 2012 um 10:17

    Das geht auch ohne Browser! Zugangsdaten per POST/GET mitgeben und evtl. Keks speichern. Dafür gibt's WinHTTP.

  • Website reload and save.

    • i2c
    • 31. März 2012 um 12:15

    GUI baust dir bitte selber drumrum.

    Spoiler anzeigen
    [autoit]


    Global Const $URL = "http://autoit.de"
    Global Const $PATH = @ScriptDir & "\autoit\"

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

    If Not FileExists($PATH) Then DirCreate($PATH)
    $sSource = BinaryToString(InetRead($URL, 1), 4)
    If Not FileExists($PATH & "autoit_1") Then
    FileWrite($PATH & "autoit_1", $sSource)
    ConsoleWrite("schreibe Datei: " & $PATH & "autoit_1" & @LF)
    Else
    $sTmp = FileRead($PATH & "autoit_1")
    If $sTmp <> $sSource Then
    FileWrite($PATH & "autoit__" & @MDAY & @MON & @YEAR & "_" & @HOUR & @MIN & @SEC, $sSource)
    ConsoleWrite("Schreibe Datei: " & $PATH & "autoit__" & @MDAY & @MON & @YEAR & "_" & @HOUR & @MIN & @SEC & @LF)
    EndIf
    EndIf

    [/autoit]
  • ISBN-Best: Frage zu Json und InetRead vs GET

    • i2c
    • 29. März 2012 um 07:50

    Das ist mehr eine persönliche Sache zwischen InetRead() und mir.
    Vor ein paar Wochen hab ich mit mehreren APIs kommunizieren müssen. Ich weiss nicht mehr genau bei welcher ich Probleme hatte, es könnte aber die von boxnet gewesen sein. Einige Requests per INetRead() lieferten dabei kein Ergebnis während es per Object problemlos funktionierte. Bei dem Request wurde nichts ungewöhnliches übergeben, lediglich der API Key, ein Auth-Token und ein simpler Sring der den gewünschten response definierte. Ich weiß nicht warum und weshalb das über InetRead() nicht funktionierte aber die Fehlersuche war sehr nervig. Seitdem lass ich gern die Finger von InetRead() wenn es darum geht, Parameter zu übergeben. Die par Zeilen extra schreib ich dann gern.

    Aber ja - ich sollte Andere nicht durch meine persönlichen Aversion gegen bestimmte Funktionen beeinflussen. Benutz ruhig InetRead() Hakeem, wenn's denn bei dir funktioniert :)

  • ISBN-Best: Frage zu Json und InetRead vs GET

    • i2c
    • 28. März 2012 um 17:14

    Beim Verarbeiten des Strings könnte die das hier helfen - https://autoit.de/index.php?page…json#post220606

    InetRead() wär hier für mich ein absolutes no go

  • RegExp - mehrere Stellen in einem String sollen gefunden werden

    • i2c
    • 27. März 2012 um 07:02

    Blöde Frage - warum nicht die _XMLDomWrapper.au3 benutzen?
    http://my-autoit.googlecode.com/files/_XMLDomWrapper.au3

  • Problem mit 2Dimensionalem Array

    • i2c
    • 25. März 2012 um 00:15

    Nunja, ohne Skript ist das schlecht machbar.

    Als allgemein gültige Antwort sag ich mal - die Funktion die das Array nach der Berechnung mit Daten füllt muss in einer Schleife aufgerufen werden, bis alle Berechnungen abgeschlossen sind.

  • Neuer Besucherrekord?

    • i2c
    • 24. März 2012 um 20:58

    Oder ihn einfach entfernen. Dann stört er niemanden mehr.
    Wir sind doch nicht hier um Rekorde zu brechen ;)

  • Neuer Besucherrekord?

    • i2c
    • 24. März 2012 um 20:42

    UNd für die Startseite - in der index.tpl folgendes entfernen:

    Code
    <p class="smallFont">{lang}wbb.index.usersOnline.detail{/lang} {lang}wbb.index.usersOnline.record{/lang}</p>
  • Neuer Besucherrekord?

    • i2c
    • 24. März 2012 um 19:19

    Sinnfrei :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™