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

Beiträge von BugFix

  • Dynamisches Icon-Menü überprüfen

    • BugFix
    • 21. Juni 2011 um 13:53

    Verwende ein 2D-Array: [[Icon-ID, Programmaufruf]] Der Klick liefert die ID - dann startest du die zugehörige Funktion.

  • RegEx + Arrays

    • BugFix
    • 21. Juni 2011 um 13:45

    Schon mal mein Array-Tut gelesen?
    Du kannst entweder das gesamte Array anzeigen (_ArrayDisplay) ODER ein einzelnes Element, das du per Index ansprichst (z.B. ConsoleWrite( $Array[Index] & @CRLF) )

  • RegEx + Arrays

    • BugFix
    • 21. Juni 2011 um 13:05
    Zitat von Ilse

    wie komme ich an das zweite Ergenis v. RegEx ran? (col1,2,3,4...)


    Indem du meine Antworten gründlich liest? :whistling:

    Zitat von BugFix

    Index 0 = Backreferenz 1 - erstes Auftreten
    Index 1 = Backreferenz 2 - erstes Auftreten
    Index 2 = Backreferenz 1 - zweites Auftreten
    Index 3 = Backreferenz 2 - zweites Auftreten

    Wie das Rückgabearray aufgebaut ist habe ich dir doch oben beschrieben! Natürlich hat es nur eine Dimension. Und die Ergebisse werden in der Reihenfolge des Auftretens eingesetzt.

  • Listview problem

    • BugFix
    • 21. Juni 2011 um 12:57

    Mit:

    [autoit]

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    [/autoit]


    und Auswerten von $NM_CLICK bzw. $NM_RCLICK.
    Verwende die Styles: BitOR($LVS_EX_TRACKSELECT, $LVS_EX_FULLROWSELECT), damit auch bei Rechtsklick das Item unter der Maus selektiert ist.
    Den Index der Zeile bekommst du mit: _GUICtrlListView_GetSelectedIndices und den Inhalt mit: _GUICtrlListView_GetItemText.
    Um die Werte angeklickter SubItem direkt abzufragen brauchst du zum Zeilenindex noch den Spaltenindex: _GUICtrlListView_GetSelectedColumn.

  • RegEx + Arrays

    • BugFix
    • 21. Juni 2011 um 12:48
    Zitat von Ilse

    ---wie kriege ich die nun in das Array?


    Hääää?! Deine Variable $aAuswahl ist doch das Array, das die Ergebnisse aufnimmt, sofern das Pattern erfolgreich ist.

  • RegEx + Arrays

    • BugFix
    • 21. Juni 2011 um 11:43

    Jede Klammer erstellt eine Backreferenz (Ergebnis) und in der Reihenfolge des Auftretens werden diese Werte in ein Array geschrieben.
    Wenn also jede Backreferenz befüllt wird sieht dein Array so aus:
    Index 0 = Backreferenz 1 - erstes Auftreten
    Index 1 = Backreferenz 2 - erstes Auftreten
    Index 2 = Backreferenz 1 - zweites Auftreten
    Index 3 = Backreferenz 2 - zweites Auftreten
    ... usw.
    Ist jedoch ein Pattern als optional gesetzt (kann auftreten, muß nicht) und es wird kein Wert gefunden, paßt diese Zuordnung nicht mehr.

  • Registryproblem (....\GameUX\Games\)

    • BugFix
    • 21. Juni 2011 um 10:46

    Ziemlich derbe, wenn du um Mitternacht postest und am Vormittag schon pusht!
    Schon mal #RequireAdmin versucht?
    Wenn Programme 'ordentlich' ^^ geschrieben wurden, setzen sie i.A. einen Eintrag mit dem Installationspfad in den Uninstall-Schlüssel (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall), aber verpflichtend ist das nicht und somit muß dort nicht zwingend ein Eintrag zu installierter Software sein.

  • Listview Anzeige

    • BugFix
    • 21. Juni 2011 um 10:34

    Leider ignorierst du kräftig die Hinweise, die man dir gibt. :wacko:
    Mit einer RegEx-Abfrage fragst du Daten ab - OK.
    Aber du weißt doch nicht, ob dein RegEx auch Daten gebracht hat! Deshalb mußt du vor jedem Zugriff auf die Variable, die das Ergebnisarray enthalten soll prüfen, ob es auch wirklich befüllt wurde (IsArray).
    Ist es kein Array setzt du die Schleife einfach mit ContinueLoop fort ohne einen Eintrag im Listview zu erstellen (sind ja auch keine Daten dafür da).

  • StringReg Zahlen mit und ohne Komma

    • BugFix
    • 21. Juni 2011 um 09:03

    Du mußt festlegen, dass optional ein Komma und weitere Ziffern folgen können:

    Code
    (\d+(?:,\d+)?)


    In der inneren Klammer mußt du die Backreferenz mit ?: aufheben, da du sonst die Komma+Nachkommwerte als zusätzliches Ergebnis zum Gesamtergebnis hättest.

  • Listview Anzeige

    • BugFix
    • 20. Juni 2011 um 16:33

    Und wenn du die Daten speicherst (hier ist dann eine txt-Datei zu empfehlen), leg sie so ab, dass du die eingelesenen Zeilen sofort in dein Listview schreiben kannst, in der ersten Zeile legst du dann z.B. die Spaltenüberschrift ab:

    Code
    RASSE|NAME|PAPIERE
    Schäferhund|Rex|ja
    Collie|Britta|nein
    Boxer|Shira|ja
  • Keyrecorder Problem

    • BugFix
    • 20. Juni 2011 um 09:03

    Völlig egal ob du privat keyloggen willst oder nicht. Wir geben in diese Richtung keinen Support - lies mal die Forenregeln.
    Die hier geposteten Ansätze sind zum Glück derart schlecht, dass ich mir nicht die Mühe mache sie zu löschen.

    [CLOSED]

  • RegExp-Muster gesucht

    • BugFix
    • 19. Juni 2011 um 09:16

    Hallo,

    ohne den gesamten Quelltext zu sehen, ist das ein Schuß ins Blaue.
    Aber hiermit kannst du zumindest aus den gezeigten Zeilen die Beträge selektieren. (Flag 3 verwenden)

    Code
    (?:"right">(<strong class="red" >)?)(\d+€)
  • Alina feiert heute ;)

    • BugFix
    • 19. Juni 2011 um 09:08

    Hallo Alina,
    zu deinem Geburtstag (der wievielte es ist, verschweigst du Ladylike :D) wünsche ich dir Alles Gute.
    Bleib frisch und munter und fördere auch weiterhin die Deutsch-Dänische Freundschaft. :thumbup:

  • MousePosition erkennen und in Variable verarbeiten

    • BugFix
    • 19. Juni 2011 um 09:06

    Thema ist gelöst, die Diskussion unsinnig (und unwürdig) - [CLOSED]

  • Web Browser

    • BugFix
    • 18. Juni 2011 um 16:54

    Derartige Skripte gibt es inzwischen zuhauf und alle nennen es fälschlicherweise "Browser". Wie kommt ihr bloß dadrauf? :wacko:
    Es ist der M$ Internet Explorer in einer GUI eingebettet. Die Programmierleistung dazu geht gegen null, da das fast identisch in der Hilfe zu finden ist.

    Von mir aus könnt ihr posten, was ihr wollt - aber mit einer Modifikation von Bsp. aus der Hilfe würde ich mir ziemlich bescheuert vorkommen. 8|

  • Denkfehler bei IF ElseIf

    • BugFix
    • 15. Juni 2011 um 18:20

    Du kannst auch ohne jede Prüfung ganz simpel vor die Zahl einfach eine '0' setzen und dann die 2 Stellen von rechts abgreifen - passt immer.

    [autoit]

    = StringRight( '0' & GuiCtrlRead(...), 2)

    [/autoit]


    Allerdings ist StringFormat viel eleganter :D

  • autoit ist zu langsam

    • BugFix
    • 15. Juni 2011 um 17:55

    Ja, das ist halt der gravierende Unterschied zwischen: ein Skript hinklatschen und Programmieren.
    Befehle aneinanderreihen, dass das gewünschte Verhalten auftritt reicht halt nicht. Jedenfalls nicht, wenn der Faktor Zeit eine Rolle spielt. Da sollte man schon vor Beginn gründlich analysieren, was wann passieren soll. (Stichwort 'Softwareengeneering')
    Ganz nebenbei ist ein optimiertes Skript normalerweise auch sehr gut lesbar. ;)

  • Kalender Control (wie Win7 Datums-Control)

    • BugFix
    • 15. Juni 2011 um 14:26

    NEU: Version 1.4 in Post #1

  • Phishing Mail DHL

    • BugFix
    • 14. Juni 2011 um 20:35
    Zitat von letsgo

    bei denen man iPhones & pads & hasteNichtGesehen gewinnen kann


    Nun, ich bin der Meinung: Jeder der auf einen Link klickt, der ihm ohne Einsatz Gewinne verspricht, soll sich nicht wundern, wenn er hinterher Probleme hat. NIEMAND hat etwas zu verschenken, NICHTS gibt es gratis, auch nicht als Dank für eine Umfragebeteiligung o.ä.
    Gesunder Menschenverstand schützt einen vor der Mehrzahl der Bedrohungen am Besten.

  • Fokus setzen nach Auswahl in Combo Box

    • BugFix
    • 14. Juni 2011 um 18:12

    Hi UEZ,
    das Hauptproblem ist eigentlich, dass es keinen definierten Zustand für das Ende der Farbwahl gibt (und somit den Zeitpunkt zum Wechsel des Fokus).
    Du hast mehrere Möglichkeiten die Auswahl zu treffen:
    1. Klick auf Combo-Button zum Ausklappen der Auswahlliste
    - a) mit Mausklick Farbeintrag wählen
    - b) mit Pfeiltasten auf/ab bewegen und mit Enter übernehmen
    2. Fokus auf Combo ohne dass die LIste ausgeklappt ist
    - a) mit Pfeiltasten ändert sich der Eintrag im sichtbaren Bereich - Übernahme mit Enter
    - b) mit Scrollen des Mausrades ändert sich der Eintrag im sichtbaren Bereich - Übernahme mit Enter

    Die einzig klare Form der Wahl ist: Ausklappen, mit Mausklick wählen.
    Aber der Nutzer hat ja durchaus die Möglichkeit anders vorzugehen. Deshalb denke ich, dass das Standard Combo-Ctrl hier nicht geeignet ist. Ich würde hier ein eigenes Ctrl erstellen, dem du nur die gewollten Eigenschaften zuordnen kannst.
    Unabhängig davon, werde ich mich mal an der Variante: "Ausklappen, mit Mausklick wählen, Fokus auf Button" probieren.

    Edit:
    Du hattest "WM_NOTIFY" statt "WM_COMMAND" ausgewertet.
    So geht es per Auswahl mit Mausklick:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <ComboConstants.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GuiComboBoxEx.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <Misc.au3>
    #include <SliderConstants.au3>
    #include <StructureConstants.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    Global $hGUI = GUICreate("")
    GUISetState()
    Global $load_auto = ""
    Global $load_auto, $GUI_Bg_Color = 0xB9D1EA, $ping_to = 500
    Global Const $ini_file = @ScriptDir & "\Check Online Status.ini"

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

    Global $bSet, $hComboColor, $hGUI_Settings, $hProc, $hHook
    Settings()

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

    Exit

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

    Func Settings()
    GUISetState(@SW_DISABLE, $hGUI)
    $hGUI_Settings = GUICreate("Settings", 612, 229, -1, -1, $GUI_SS_DEFAULT_GUI, Default, $hGUI)
    Local Const $iAutoLoadFile = GUICtrlCreateInput($load_auto, 152, 16, 369, 22)
    GUICtrlSetFont(-1, 9, 400, 0, "Arial")
    Local Const $lLoadAuto = GUICtrlCreateLabel("Load List Automatically", 8, 18, 140, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUICtrlSetTip(-1, "Select a file which will be loaded to the program automatically")
    Local Const $bBrowse = GUICtrlCreateButton("&Browse", 528, 14, 75, 25)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    Local Const $lBgColor = GUICtrlCreateLabel("Change GUI background color", 6, 58, 177, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    ;~ Local Const $lBgColorAdd = GUICtrlCreateLabel("Add new color", 6, 97, 97, 20)
    ;~ GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    ;~ Local Const $bAddColor = GUICtrlCreateButton("Add &Color", 105, 94, 75, 25)
    ;~ GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $hComboColor = _GUICtrlComboBoxEx_Create($hGUI_Settings, "", 192, 56, 329, 200, BitOR($CBS_DROPDOWNLIST, $CBS_DISABLENOSCROLL))
    ;~ $hComboColor = GUICtrlCreateCombo("", 192, 56, 329, 200, BitOR($CBS_DROPDOWNLIST, $CBS_DISABLENOSCROLL))
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hComboColor = ' & $hComboColor & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    GUICtrlSetData(-1, "item2|item3", "item3")
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $bSet = GUICtrlCreateButton("&Set", 528, 55, 75, 64) ;#############################
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    Local Const $bApply = GUICtrlCreateButton("&Apply", 528, 180, 75, 40)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    Local Const $bExit_Setting = GUICtrlCreateButton("E&xit", 438, 180, 75, 40)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    Local Const $cSlider = GUICtrlCreateSlider(88, 138, 440, 30, BitOR($TBS_BOTH,$TBS_NOTICKS, $TBS_ENABLESELRANGE, $TBS_FIXEDLENGTH, $WS_TABSTOP))
    GUICtrlSetLimit(-1, 5000, 100)
    GUICtrlSetData(-1, 500)
    GUICtrlSetCursor (-1, 0)
    Local Const $lSlider = GUICtrlCreateLabel("Ping Timeout", 8, 141, 80, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUICtrlSetTip(-1, "Default is 500 ms")
    Local Const $iPing = GUICtrlCreateInput($ping_to, 528, 140, 74, 21, BitOR($ES_CENTER, $ES_NUMBER))
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")

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

    GUISetState(@SW_SHOW, $hGUI_Settings)
    ControlFocus($hGUI_Settings, "", $bExit_Setting)
    GUISetIcon(@SystemDir & "\Shell32.dll", 14, $hGUI_Settings)
    Local $nMsg, $i, $file, $cindex, $em, $p, $newcolor

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

    Local $aColors[7] = [0xB9D1EA, 0xC0DCC0, 0xD7E4F2, 0xFFFFE1, 0xA6CAF0, 0xFFFBF0, 0xFECFF4]

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

    Local Const $hImage = _GUIImageList_Create(256, 56, 5, 3)
    For $i = 0 To 6
    _GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hComboColor, $aColors[$i], 256, 56))
    Next
    _GUICtrlComboBoxEx_SetImageList($hComboColor, $hImage)

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

    _GUICtrlComboBoxEx_BeginUpdate($hComboColor)
    For $i = 0 To 6
    _GUICtrlComboBoxEx_AddString($hComboColor, "Color " & $i + 1, $i, $i)
    Next
    _GUICtrlComboBoxEx_EndUpdate($hComboColor)

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

    $cindex = _ArraySearch($aColors, $GUI_Bg_Color)
    If Not @error Then
    _GUICtrlComboBoxEx_SetCurSel($hComboColor, $cindex)
    Else
    _GUICtrlComboBoxEx_SetCurSel($hComboColor, 0)
    EndIf

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

    ;~ GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $bExit_Setting
    GUISetState(@SW_ENABLE, $hGUI)
    GUIDelete($hGUI_Settings)
    Return 1
    Case $cSlider
    GUICtrlSetData($iPing, GUICtrlRead($cSlider))
    Case $iPing
    $p = GUICtrlRead($iPing)
    If $p > 5000 Then
    $p = 500
    ElseIf $p < 100 Then
    $p = 100
    EndIf
    GUICtrlSetData($cSlider, $p)
    Case $bBrowse
    $file = FileOpenDialog("File Selection", "", "Text Files (*.txt;*.csv)")
    If Not @error Then GUICtrlSetData($iAutoLoadFile, $file)
    Case $bSet
    $GUI_Bg_Color = "0x" & Hex($aColors[_GUICtrlComboBoxEx_GetCurSel($hComboColor)], 6)
    GUISetBkColor($GUI_Bg_Color, $hGUI)
    Case $bApply
    $GUI_Bg_Color = "0x" & Hex($aColors[_GUICtrlComboBoxEx_GetCurSel($hComboColor)], 6)
    GUISetBkColor($GUI_Bg_Color, $hGUI)
    IniWrite($ini_file, "Bg-Color", "Color", "0x" & Hex($aColors[_GUICtrlComboBoxEx_GetCurSel($hComboColor)], 6))
    $em = @error
    IniWrite($ini_file, "Auto-Load", "Load", GUICtrlRead($iAutoLoadFile))
    $em = @error
    IniWrite($ini_file, "Ping-Timeout", "Ping", GUICtrlRead($iPing))
    $em = @error
    If $em Then
    MsgBox(16, "Error", "Unable to save one or more settings to ini file!", 10)
    Else
    MsgBox(64, "Information", "Settings were save to " & $ini_file & " successfully", 10)
    EndIf
    ;~ Case $bAddColor
    ;~ $newcolor = _ChooseColor(2, 0, 2, $hGUI_Settings)
    ;~ If Not @error Then
    ;~ ConsoleWrite($newcolor & @CRLF)
    ;~ EndIf
    EndSwitch
    WEnd
    EndFunc

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF)
    $iCode = BitShift($iwParam, 16)
    Switch $hWndFrom
    Case $hComboColor
    Switch $iCode
    Case $CBN_SELENDOK
    ControlFocus($hGUI_Settings, '', $bSet)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]

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™