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

  • Profifrage(?):Aus einem 8 Byte hex string den uint64 ermitteln.

    • Oscar
    • 30. Oktober 2010 um 04:45

    Das wird nicht so einfach funktionieren, da Int64 = signed integer (also vorzeichenbehaftet).
    Da musst Du wohl auf die BigInt-UDF (Suche) ausweichen.

  • Zufallsgenerator Hilfe benötigt

    • Oscar
    • 28. Oktober 2010 um 21:16

    Ich halte den Ansatz bereits für verkehrt. Wenn Du einen Vokabeltrainer schreiben möchtest, dann würde ich ein 2D-Array benutzen (1. Element = deutsch, 2. Element = Fremdsprache).
    Das spart Dir diese If...Then...ElseIf-"Wüste". Das kann doch keiner mehr nachvollziehen. Vor allem, wenn Du das noch erweitern willst.

    Beschäftige Dich erstmal eingehend mit Arrays (Tutorial von BugFix), dann wird vieles sehr viel einfacher. :)

  • Case in For Schleife

    • Oscar
    • 28. Oktober 2010 um 20:53

    Bitte mal richtig formatiert posten!
    Beim erstellen am besten die Quellcode-Ansicht benutzen.

  • Hilfe bei RegEx

    • Oscar
    • 28. Oktober 2010 um 15:47

    BugFix, Dein Pattern reicht nicht ganz.
    Hier mal einige (wirklich existierende) Adressen:
    Elsternhag 29/1
    Kleestr. 8/9
    Kirchröder Str. 89/90
    Nobelring 10-12
    Anna-von-Borries-Str. 1-7

  • Array nach Primärschlüssel und Unterwerten sortieren

    • Oscar
    • 28. Oktober 2010 um 04:35

    Eine Version mit Dictionary-Object:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Dim $aSource[4][2] = [["Peter", "Gürtel"],["Peter", "Schuh"],["Maria", "Schnalle"],["Peter", "Handschuh"]]

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

    $oDictionary = ObjCreate('Scripting.Dictionary') ; jetzt standardmäßig im Binärmode
    $oDictionary.CompareMode = 1 ; den Textmode setzen
    For $i = 0 To UBound($aSource, 1) - 1
    If Not $oDictionary.Exists($aSource[$i][0]) Then
    $oDictionary.Add($aSource[$i][0], $aSource[$i][1])
    Else
    $oDictionary.Item($aSource[$i][0]) = $oDictionary.Item($aSource[$i][0]) & ', ' & $aSource[$i][1]
    EndIf
    Next
    Dim $aOut[$oDictionary.Count][2], $i = 0
    For $strKey in $oDictionary.Keys
    $aOut[$i][0] = $strKey
    $aOut[$i][1] = $oDictionary.Item($strKey)
    $i += 1
    Next
    _ArrayDisplay($aOut)

    [/autoit]
  • Zählt nur bis 9 Sekunden danach bricht es ab

    • Oscar
    • 27. Oktober 2010 um 19:41

    Dafür braucht man auch kein Switch. Genau genommen braucht man nur 20 Zeilen: ;)

    Spoiler anzeigen
    [autoit]


    Dim $aPics[2] = ['Button aus.jpg', 'Button an.jpg'], $ahTime[3][6]
    $hGui = GUICreate('Binäruhr', 380, 100)
    For $i = 0 To 2
    For $j = 0 To 5
    $ahTime[$i][$j] = GUICtrlCreatePic(@ScriptDir & '\Button aus.jpg' , 20 + $j * 15 + $i * 120, 40, 15, 14)
    Next
    Next
    _ActTime()
    GUISetState()
    AdlibRegister('_ActTime', 1000)
    Do
    Until GUIGetMsg() = -3
    Func _ActTime()
    Local $aActTime[3] = [@HOUR, @MIN, @SEC]
    For $i = 0 To 2
    For $j = 0 To 5
    GUICtrlSetImage($ahTime[$i][5 - $j], @ScriptDir & '\' & $aPics[BitAND($aActTime[$i], 2 ^ $j) = 2 ^ $j])
    Next
    Next
    EndFunc

    [/autoit]
  • Zufallsgenerator Hilfe benötigt

    • Oscar
    • 27. Oktober 2010 um 19:11

    Mit einem kleinen Trick sind die Zahlen zufällig, aber jeweils nur einmal vorkommend:

    Spoiler anzeigen
    [autoit]


    $iAnzahl = 20 ; So viele Zufallszahlen sollen erstellt werden
    $iStart = 1 ; Startwert der Zufallszahlen

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

    Dim $aZufallszahlen[$iAnzahl] ; Array mit Zufallszahlen deklarieren

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

    For $i = 0 To UBound($aZufallszahlen) - 1 ; Array mit den Zahlen füllen
    $aZufallszahlen[$i] = $iStart + $i
    Next

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

    For $i = 0 To UBound($aZufallszahlen) - 1 ; ab hier jetzt die Zufallszahlen ausgeben
    $iZufall = Random(0, UBound($aZufallszahlen) - 1 - $i, 1)
    ConsoleWrite($i + 1 & '. Zufallszahl = ' & $aZufallszahlen[$iZufall] & @CR)
    $aZufallszahlen[$iZufall] = $aZufallszahlen[UBound($aZufallszahlen) - 1 - $i]
    Next

    [/autoit]
  • Datein mit Platzhalter downloaden

    • Oscar
    • 27. Oktober 2010 um 04:19

    [verschoben]

  • resize Problem

    • Oscar
    • 26. Oktober 2010 um 17:41

    Großvater hat es ja bereits gelöst, aber ich wollte trotzdem mal meine Lösung (mit der Größe des TAB-Controls) zeigen:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>

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

    _IEErrorHandlerRegister()

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

    Dim $oIE[1]
    $oIE[0] = _IECreateEmbedded()
    Dim $Tab[1]

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

    $gui = GUICreate("Browser", 800, 600, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
    $NewTab = GUICtrlCreateButton("Neuer Tab", 20, 20, 80, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $input = GUICtrlCreateInput("", 120, 20, 400, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $TabParent = GUICtrlCreateTab(20, 60, 760, 520)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    $Tab[0] = GUICtrlCreateTabItem("Google")
    GUICtrlCreateObj($oIE[0], 40, 100, 700, 460)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition

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

    GUISetState()

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

    _IENavigate($oIE[0], "http://www.google.de")
    GUICtrlSetData($input, _IEPropertyGet($oIE[0], "locationurl"))

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $NewTab
    $iIE = UBound($oIE)
    _ArrayAdd($Tab, GUICtrlCreateTabItem("Tab" & $iIE))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    _ArrayAdd($oIE, _IECreateEmbedded())
    $aPos = ControlGetPos($gui, '', $TabParent) ; Größe des TAB-Controls
    GUICtrlCreateObj($oIE[$iIE], 40 + ($aPos[0] - 20), 100 + ($aPos[1] - 60), 700 + ($aPos[2] - 760), 460 + ($aPos[3] - 520))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition
    GUISwitch($gui, $Tab[UBound($Tab)-1]) ; umschalten auf den neuen Tab
    _IENavigate($oIE[$iIE], "http://www.google.de")
    Case $input
    $selected = GUICtrlRead($TabParent)
    _IENavigate($oIE[$selected], GUICtrlRead($input))
    WinSetTitle($gui, "", _IEPropertyGet($oIE[$selected], "locationname"))

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

    Case $TabParent
    $selected = GUICtrlRead($TabParent)
    WinSetTitle($gui, "", _IEPropertyGet($oIE[$selected], "locationname"))
    GUICtrlSetData($input, _IEPropertyGet($oIE[$selected], "locationurl"))
    EndSwitch
    WEnd

    [/autoit]
  • resize Problem

    • Oscar
    • 25. Oktober 2010 um 22:55

    So:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>

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

    _IEErrorHandlerRegister()

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

    Dim $oIE[1]
    $oIE[0] = _IECreateEmbedded()
    Dim $Tab[1]

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

    $gui = GUICreate("Browser", 800, 600, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
    $NewTab = GUICtrlCreateButton("Neuer Tab", 20, 20, 80, 25)
    $input = GUICtrlCreateInput("", 120, 20, 400, 25)
    $TabParent = GUICtrlCreateTab(20, 60, 760, 520)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $Tab[0] = GUICtrlCreateTabItem("Google")
    GUICtrlCreateObj($oIE[0], 40, 100, 700, 460)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    GUICtrlCreateTabItem("") ; end tabitem definition

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

    GUISetState()

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

    _IENavigate($oIE[0], "http://www.google.de")
    GUICtrlSetData($input, _IEPropertyGet($oIE[0], "locationurl"))

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $NewTab
    $iIE = UBound($oIE)
    _ArrayAdd($Tab, GUICtrlCreateTabItem("Tab" & $iIE))
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    _ArrayAdd($oIE, _IECreateEmbedded())
    GUICtrlCreateObj($oIE[$iIE], 40, 100, 700, 460)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    _IENavigate($oIE[$iIE], "http://www.google.de")
    Case $input
    $selected = GUICtrlRead($TabParent)
    _IENavigate($oIE[$selected], GUICtrlRead($input))
    WinSetTitle($gui, "", _IEPropertyGet($oIE[$selected], "locationname"))

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

    Case $TabParent
    $selected = GUICtrlRead($TabParent)
    WinSetTitle($gui, "", _IEPropertyGet($oIE[$selected], "locationname"))
    GUICtrlSetData($input, _IEPropertyGet($oIE[$selected], "locationurl"))
    EndSwitch
    WEnd

    [/autoit]
  • resize Problem

    • Oscar
    • 25. Oktober 2010 um 19:18

    Meinst Du so:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <IE.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>

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

    _IEErrorHandlerRegister()

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

    Dim $oIE[1]
    $oIE[0] = _IECreateEmbedded()
    Dim $Tab[1]

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

    $gui = GUICreate("Browser", 800, 600, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX))

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

    $TabParent = GUICtrlCreateTab(20, 60, 760, 520)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $Tab[0] = GUICtrlCreateTabItem("Google")
    GUICtrlCreateObj($oIE[0], 40, 100, 700, 460)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    GUICtrlCreateTabItem("")
    GUISetState()

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

    _IENavigate($oIE[0], "http://www.google.de")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Kann Autoit warten, bis USB-Stick eingesteckt ist?

    • Oscar
    • 24. Oktober 2010 um 17:45

    Dein Skript wartet aber nur darauf, dass überhaupt irgendein Wechselmedium angesteckt wird.
    Das kann auch eine beliebige externe Festplatte sein. Wenn Dir das ausreicht...

  • Einfaches Update für Firefox

    • Oscar
    • 24. Oktober 2010 um 14:59

    Ja, geht auch mit Thunderbird:

    Spoiler anzeigen
    [autoit]


    $sRegKey = 'HKEY_LOCAL_MACHINE\SOFTWARE'
    If @OSArch = 'X64' Then $sRegKey &= '\Wow6432Node'
    $sRegKey &= '\Mozilla\Mozilla Thunderbird'
    $sInstallVersion = RegRead($sRegKey, 'CurrentVersion')
    If @error Then $sInstallVersion = '0.0.0'
    $sInstallVersion = StringRegExpReplace($sInstallVersion, '( \(.+\))', '')
    ConsoleWrite('Installierte Version = ' & $sInstallVersion & @CR)
    $sThunderbirdSource = BinaryToString(InetRead('http://www.mozilla.com/en-US/thunderbird/all.html', 1))
    $sNewestVersion = StringRegExpReplace($sThunderbirdSource, '(?s).+<tr id="de".+?<td class="curVersion" >(.+?)</td>.+', '$1')
    ConsoleWrite('Neueste Version = ' & $sNewestVersion & @CR)

    [/autoit]
  • Ubuntu hat Geburtstag

    • Oscar
    • 24. Oktober 2010 um 14:52

    Alles Gute nachträglich (wir brauchen unbedingt wieder eine Geburtstagsliste) zum Geburtstag!


    Pssst an alle anderen: Er hatte gestern Geburtstag.

  • Einfaches Update für Firefox

    • Oscar
    • 24. Oktober 2010 um 14:41

    Verstehe ich nicht. Bei mir funktioniert das Skript sowohl unter WindowsXP (32 Bit) als auch unter Windows7 (64 Bit).

    Kannst Du mal mit RegEdit nachschauen, was bei Dir da in der Registry eingetragen ist?

  • Einfaches Update für Firefox

    • Oscar
    • 24. Oktober 2010 um 11:09

    Ist das so einfach genug:

    Spoiler anzeigen
    [autoit]


    $sRegKey = 'HKEY_LOCAL_MACHINE\SOFTWARE'
    If @OSArch = 'X64' Then $sRegKey &= '\Wow6432Node'
    $sRegKey &= '\Mozilla\Mozilla Firefox'
    $sInstallVersion = RegRead($sRegKey, 'CurrentVersion')
    If @error Then $sInstallVersion = '0.0.0'
    $sInstallVersion = StringRegExpReplace($sInstallVersion, '( \(.+\))', '')
    ConsoleWrite('Installierte Version = ' & $sInstallVersion & @CR)
    $sFirefoxSource = BinaryToString(InetRead('http://www.mozilla.com/en-US/firefox/all.html', 1))
    $sNewestVersion = StringRegExpReplace($sFirefoxSource, '(?s).+<tr id="de".+?<td class="curVersion" >(.+?)</td>.+', '$1')
    ConsoleWrite('Neueste Version = ' & $sNewestVersion & @CR)

    [/autoit]
  • Kann Autoit warten, bis USB-Stick eingesteckt ist?

    • Oscar
    • 24. Oktober 2010 um 10:47

    Ich habe mal eine Desktopsperre per USB-Stick geschrieben.
    Da solltest Du fündig werden. :)

  • Filterungsproblem von Klammern ( vielleicht mit Regexp?)

    • Oscar
    • 23. Oktober 2010 um 15:25

    Mir würde da jetzt eine rekursive Funktion einfallen.
    Jede öffnende Klammer ruft die Funktion erneut auf, der Term bis zur schliessenden Klammer wird gelesen, ausgerechnet und per Return zurückgegeben.
    Nach der Rückgabe wird das ausgewertete Klammernpaar entfernt und durch den Returnwert ersetzt. So müsste sich das eigentlich lösen lassen.
    Hab jetzt aber keine Zeit, die Funktion zu schreiben. Ist also erstmal nur theoretisch...

  • Timebomb - Programmausführung zeitlich begrenzen.

    • Oscar
    • 22. Oktober 2010 um 12:32

    Mal noch ein anderer Vorschlag:
    Statt die aktuelle Systemzeit für einen Vergleich auszulesen (die ja leicht manipulierbar ist), könntest Du die Zeit des letzten Systemstarts benutzen.
    So müsste Otto-Normaluser schon die Systemzeit verstellen, einen Neustart machen und dann Dein Programm starten.

  • Doppelte Zahlen

    • Oscar
    • 21. Oktober 2010 um 17:42
    Zitat von SEuBo

    Hatte ich auch zuerst gedacht, aber lass deine Funktion mal mit so einem Teststring laufen:
    "2 245 245 245"

    Als Ergebnis erhälst du 2, die ja nicht wirklich doppelt vorkommt. Nur als Teil einer anderen Zahl.

    Ah, verdammt! Hast recht!
    Das funktioniert nur bei gleichlangen Zahlen oder man müsste das Array sortieren und die längsten Zahlen zuerst bearbeiten, aber das ist viel zu umständlich und langsam.

    @Großvater: Das ist natürlich cool. :thumbup:

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™