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. Oscar

Beiträge von Oscar

  • Weshalb bekommen ich nicht die ArrayDisplay anzeige?

    • Oscar
    • 28. April 2011 um 12:54

    Du hattest ja schon per PN nach einer Änderung meiner Funktion gefragt.
    Hier habe ich mal zwei Funktionen zum Suchen in der Registry:

    Spoiler anzeigen
    [autoit]


    MsgBox(0, 'Key-Search', _RegKeySearch('HKEY_LOCAL_MACHINE', 'AutoIt v3'))
    MsgBox(0, 'Val-Search', _RegValSearch('HKEY_LOCAL_MACHINE', 'v3.3.6.1'))

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

    Func _RegKeySearch($sRegPath, $sKeySearch)
    Local $sKey, $sVal, $sVar, $ret, $i = 0, $j = 0
    While True
    $i += 1
    $sKey = RegEnumKey($sRegPath, $i)
    If $sKey == $sKeySearch Then Return $sRegPath & '\' & $sKey
    If @error Then ExitLoop
    $ret = _RegKeySearch($sRegPath & '\' & $sKey, $sKeySearch)
    If $ret <> '' Then ExitLoop
    WEnd
    Return $ret
    EndFunc

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

    Func _RegValSearch($sRegPath, $sValSearch)
    Local $sKey, $sVal, $sVar, $ret, $i = 0, $j = 0
    While True
    $i += 1
    $sKey = RegEnumKey($sRegPath, $i)
    If @error Then ExitLoop
    $ret = _RegValSearch($sRegPath & '\' & $sKey, $sValSearch)
    If $ret <> '' Then ExitLoop
    $j = 0
    While True
    $j += 1
    $sVal = RegEnumVal($sRegPath & '\' & $sKey, $j)
    If @error Then ExitLoop
    $sVar = RegRead($sRegPath & '\' & $sKey, $sVal)
    If $sVar == $sValSearch Then Return $sRegPath & '\' & $sKey & '\' & $sVal
    WEnd
    WEnd
    Return $ret
    EndFunc

    [/autoit]


    Einmal kannst Du nach einem Key suchen lassen und die andere Funktion ist zum suchen nach einem Wert.
    Es muss aber der ganze Key/Wert übergeben werden, nicht nur ein Bruchstück. Wenn das gewünscht ist, muss der Vergleich mit StringInStr oder StringRegExp erfolgen.

  • Gehäuse aus Holz

    • Oscar
    • 20. April 2011 um 21:27

    Holz und auch Acryl sind völlig ungeeignet für ein PC-Gehäuse!
    Damit bekommst Du keine elektromagnetische Abschirmung hin. Würde ich unbedingt von abraten.

  • Werte aus einer .ini Datei in eine Tabelle schreiben

    • Oscar
    • 20. April 2011 um 07:04

    Ich würde dafür keine Inidatei verwenden. Eine einfache Textdatei tut es doch auch.
    Ich hatte mal ein Beispiel für eine solche Datenbank erstellt: Listview-Datenbank-Beispiel
    Vielleicht kannst Du Dir da etwas abschauen. :)

  • Array Lese Problem

    • Oscar
    • 19. April 2011 um 13:09

    Das sollte wohl eher so aussehen:

    [autoit]


    For $i = 0 To UBound($aResults) - 1
    MsgBox(0, "Meine Zelle ist:", $aResults[$i][0] & @CR & $aResults[$i][1])
    Next

    [/autoit]

    Edit: AspirinJunkie war schneller.

  • Ping

    • Oscar
    • 19. April 2011 um 09:49

    Das stimmt! Aber er wollte ja wissen, ob eine Internetverbindung besteht oder nicht. Und dafür reicht die Namensauflösung aus, außer es handelt sich um einen lokalen DNS-Server.

  • Ping

    • Oscar
    • 19. April 2011 um 08:16

    Am schnellsten ist immer noch der Weg über die Namensauflösung:

    Spoiler anzeigen
    [autoit]


    If _Online() Then MsgBox(0, 'Test', 'Online')

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

    Func _Online()
    Local $sIP, $iError
    TCPStartup()
    $sIP = TCPNameToIP('www.google.de')
    $iError = @error
    TCPShutdown()
    If $iError Then Return SetError($iError, 0, False)
    Return SetError(0, 0, True)
    EndFunc

    [/autoit]
  • Happy Birthday i2c :)

    • Oscar
    • 18. April 2011 um 15:35

    Ich schliesse mich den bisherigen Beiträgen an. Auch von mir alles Gute zum Geburtstag! :party:
    Bleib gesund und uns hier im Forum erhalten. :thumbup:

  • Array Var Problem

    • Oscar
    • 14. April 2011 um 20:11

    Poste doch bitte mal die komplette Textdatei und schreib dazu, welchen Teil Du davon brauchst/auswerten möchtest.
    Man muss nämlich nicht Zeile für Zeile einlesen (das dauert ziemlich lange).

  • Array Var Problem

    • Oscar
    • 14. April 2011 um 20:06

    In Deiner Textdatei kommen die beiden Suchbegriffe doch gar nicht vor! :?:
    Wie soll _StringBetween da etwas finden?

  • Array Var Problem

    • Oscar
    • 14. April 2011 um 19:59

    Dann liefert _StringBetween kein Ergebnis. Den Fehler kannst Du abfangen, indem Du mit IsArray die Variable überprüfst oder das Makro @error abfragst.

  • FileFindFirstFile(): Dateien auch in Unterverzeichnissen wiedergeben

    • Oscar
    • 14. April 2011 um 04:25

    Ein Ansatz wäre eine Funktion zu schreiben und wenn FileFindNextFile bei @extended ein TRUE liefert (Verzeichnis gefunden) rufst Du die Funktion erneut (rekursiv) auf.
    Bei meiner Funktion habe ich das so verwendet:

    Spoiler anzeigen
    [autoit]


    ;===============================================================================
    ; Function Name: _RecursiveFileListToArray($sPath[, $sPattern][, $iFlag][, $iFormat][, $fRecursion][, $sDelim])
    ; Description:: gibt Verzeichnisse (rekursiv) und/oder Dateien zurück, die einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $fRecursion = Verzeichnisse rekursiv durchsuchen
    ; False = Nein
    ; True = Ja
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ; und: AspirinJunkie (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern = '', $iFlag = 0, $iFormat = 1, $fRecursion = True, $sDelim = @CRLF, $fOpenDLL = True)
    Local $hSearch, $sFile, $sReturn = '', $aD
    Local Static $hDll
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*')
    If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
    If $fOpenDLL Then $hDll = DllOpen('kernel32.dll')
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If @extended Then
    $aD = DllCall($hDll, 'dword', 'GetFileAttributesW', 'wstr', $sPath & $sFile)
    If @error Or BitAND($aD[0], 0x400) Then ContinueLoop
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    If $fRecursion Then $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0, True, $sDelim, False)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $fOpenDLL Then DllClose($hDll)
    If $iFormat And $sReturn = '' Then Return StringSplit($sReturn, '', $iFormat)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc

    [/autoit]
  • Bilder zu einem großen zusammenfügen

    • Oscar
    • 12. April 2011 um 19:29

    Hier mal ein Beispiel mit zwei Bildern (GDI+):

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()
    $sSourceDir = StringRegExpReplace(@AutoItExe, "(.+\\).+", "$1") & "Examples\GUI\"

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

    $hSource1 = _GDIPlus_ImageLoadFromFile($sSourceDir & "msoobe.jpg")
    $hSource2 = _GDIPlus_ImageLoadFromFile($sSourceDir & "mslogo.jpg")
    $iX1 = _GDIPlus_ImageGetWidth($hSource1)
    $iY1 = _GDIPlus_ImageGetHeight($hSource1)
    $iX2 = _GDIPlus_ImageGetWidth($hSource2)
    $iY2 = _GDIPlus_ImageGetHeight($hSource2)

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

    If $iY1 < $iY2 Then $iY1 = $iY2

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

    $hGui = GUICreate("GDI+", $iX1 + $iX2, $iY1)
    $hPic = GUICtrlCreatePic('', 0,0, $iX1 + $iX2, $iY1)
    $hWnd = WinGetHandle($hGui)
    GUISetState()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hDestination = _GDIPlus_BitmapCreateFromGraphics($iX1 + $iX2, $iY1, $hGraphic)
    $hGraphic1 = _GDIPlus_ImageGetGraphicsContext($hDestination)
    _GDIPlus_GraphicsDrawImage($hGraphic1, $hSource1, 0, 0)
    _GDIPlus_GraphicsDrawImage($hGraphic1, $hSource2, $iX1, 0)

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

    _GDIPlus_ImageSaveToFile($hDestination, @ScriptDir & "\Test.jpg")
    GUICtrlSetImage($hPic, @ScriptDir & "\Test.jpg")
    Do
    Until GUIGetMsg() = -3

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

    _GDIPlus_Shutdown()

    [/autoit]
  • Array zu Liste

    • Oscar
    • 12. April 2011 um 15:56

    Oder so:

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    Dim $array[10] = [1,2,3,4,5,6,7,8,9,10]

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

    $hGui = GUICreate('test', 300, 300)
    $hList = GUICtrlCreateList('', 10, 10, 280, 280, BitOR($WS_BORDER, $WS_VSCROLL))
    GUISetState()
    For $i = 0 To UBound($array) - 1
    GUICtrlSetData($hList, $array[$i])
    Next
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • Pixelanordnung/kombination suchen

    • Oscar
    • 6. April 2011 um 16:25

    Was genau hast Du denn vor? PixelSearch ist nicht sehr genau. Meistens gibt es einfachere Möglichkeiten.

  • Japan - Atomare Katastrophe

    • Oscar
    • 4. April 2011 um 20:19

    Gegen den Absturz einer Passagiermaschine (747, A340 oder ähnliches) ist kein einziges der deutschen AKWs gesichert. Die sind allenfalls gegen den Absturz einer Militärmaschine (Phantom oder ähnlich) gesichert.
    Das fällt alles unter "Restrisiko". Und ein solcher Unfall oder herbeigeführter Absturz hätte katastrophale Folgen. Da soll mir keiner erzählen, dass unsere AKWs sicher seien. Diese Merkel-Kommision ist doch ein schlechter Witz. :thumbdown:
    Ein schnellstmögliches Abschalten und Stilllegen alles AKWs ist das Einzige, was dieses Restrisiko minimieren kann. Und mit "schnellstmöglich" meine ich nicht das, was sich die AKW-Betreiber darunter vorstellen.

  • Brauche hilfe bei zahlen konvertieren y.y

    • Oscar
    • 2. April 2011 um 07:17

    Das kannst Du einfach mit StringReplace machen:

    [autoit]


    $sNumber = '1.000.000.000'
    $sNumber = StringReplace($sNumber, '.', '')
    ConsoleWrite($sNumber & @CR)

    [/autoit]
  • Wie sortiere ich mein ListView

    • Oscar
    • 1. April 2011 um 04:38

    Ich habe die Beiträge wiederhergestellt.

    @Manuel1948: Was soll diese Löschaktion? Dadurch gehen sämtliche Bezüge verloren.

  • Dateipfad in Unterordner finden

    • Oscar
    • 29. März 2011 um 15:56

    Hier mal eine Kurzversion:

    Spoiler anzeigen
    [autoit]


    $sResult = _RecursiveFileSearch('c:', 'UDF.*\.chm')
    If $sResult <> '' Then ConsoleWrite('Datei gefunden: "' & $sResult & '"' & @CR)

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

    Func _RecursiveFileSearch($sPath, $sSearch = '.*')
    Local $hSearch, $sFile, $sRet
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    If Not FileExists($sPath) Then Return SetError(1, 0, '')
    $hSearch = FileFindFirstFile($sPath & '*')
    If $hSearch = -1 Then Return SetError(2, 0, '')
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If @extended Then
    $sRet = _RecursiveFileSearch($sPath & $sFile, $sSearch)
    If $sRet <> '' Then ExitLoop
    EndIf
    If StringRegExp($sFile, $sSearch) Then
    $sRet = $sPath & $sFile
    ExitLoop
    EndIf
    WEnd
    FileClose($hSearch)
    Return $sRet
    EndFunc

    [/autoit]


    Da kannst Du ein beliebiges RegExpPattern benutzen.

  • FTP upload kappt Internetverbindungen.

    • Oscar
    • 29. März 2011 um 15:18

    Ich kann mir nicht vorstellen, dass das Skript daran Schuld sein soll.
    Der Router "weiß" von dem Skript doch gar nichts. Ich denke, da läuft etwas anderes schief. :S

  • Funnktionsfehler in_Array2D_DeleteRowCol() beheben

    • Oscar
    • 28. März 2011 um 19:34

    Ich kann AutoBerts Aussage bestätigen. Ursprünglich ging es um die Funktion von name22.

    xXMurmelkotzeXx: Das war echt ein Schuss in den Ofen! :thumbdown:

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™