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

  • Daten aus DLL

    • BugFix
    • 12. Juli 2010 um 12:05

    Alle Probleme wurden hier jetzt im vollen Umfang gelöst!

    Wollt ihr immer alles im Detail vorgekaut bekommen? Wie wärs mal mit Hilfe lesen, z.B. zu _WinAPI_LoadString() .

  • String-Funktionen sind wirklich sauschnell :D

    • BugFix
    • 12. Juli 2010 um 11:53
    Zitat von progandy

    Am Ende soll doch wieder eine Zahl als Ergebnis herauskommen und kein String, oder?


    Jein ;)
    Von der Umrechnungsfunktion her und direktem Einsatz als Farbwert brauch ich natürlich keinen String. Ich hab das z.B. eingesetzt um die Farbwerte über ein Inputfeld oder einen Slider zu ändern. Wenn der Slider den Wert ändert, soll dann natürlich im Input der zugehörige Farbwert in Hex-Schreibweise auftauchen - deshalb die Stringrückgabe.

  • Scipt ausfüehren JA/NEIN

    • BugFix
    • 12. Juli 2010 um 11:46

    Wozu die innere While-Schleife?

    Spoiler anzeigen
    [autoit]

    While ProcessExists($netskatexe)
    ;Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    If WinActive("Daten zum Fortsetzen einer Runde exportieren") And _
    MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    EndIf
    EndIf
    WEnd

    [/autoit]
  • Iniwrite

    • BugFix
    • 11. Juli 2010 um 09:50

    Füge folgendes einfach an den Anfang deines Skriptes ein:

    [autoit]

    Local $INI = 'Pfad_zu_deiner_INI-Datei'
    If Not FileExists($INI) Then IniWrite($INI, 'settings', 'counter', 0)

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

    Local $counter = IniRead($INI, 'settings', 'counter', 0)
    $counter += 1
    IniWrite($INI, 'settings', 'counter', $counter)

    [/autoit]
  • KeyList Mausrad Auf/Ab

    • BugFix
    • 10. Juli 2010 um 19:55

    @Inferior: Hook ist hierfür nicht notwendig. Es reicht "_WinAPI_Mouse_Event" mit iFlag: $MOUSEEVENTF_WHEEL. $iData gibt das Delta und somit die Drehrichtung an.

  • KeyList Mausrad Auf/Ab

    • BugFix
    • 10. Juli 2010 um 19:45
    Zitat von Schrubber

    Kann mir von euch jemand vielleicht die KeyValue von MausradAuf und MausradAb sagen?


    Meines Wissens gibt es keine - sind ja keine Keys. Es läßt sich aber das Mausauf/ -ab mit entsprechendem Auslesen des Scrollwertes realisieren. Such mal im Forum, hab ich auch schonmal verwendet.

  • String-Funktionen sind wirklich sauschnell :D

    • BugFix
    • 10. Juli 2010 um 19:39
    Zitat von anno2008

    Ich glaube das macht in einem Script nicht so viel aus ^^.


    In diesem Einzelfall sicher nicht ;). Wenn die Anzahl der Operationen aber recht groß wird, macht es sich sicher bemerkbar.

  • String-Funktionen sind wirklich sauschnell :D

    • BugFix
    • 10. Juli 2010 um 18:03

    Hi,
    ich hatte ja mal mit String-Funktionen eine Funktion RGB_to_BGR erstellt.
    Nun habe ich das nochmals mit Bit-Operationen nachgestellt. Aber die Stringvariante ist unschlagbar. :thumbup:
    Wenn auch ein Unterschied erst ab der 3.ten Nachkommastelle ( 0.03x ms ) erkennbar ist, so ist die Stringvariante doch schneller.

    Fazit:
    Wenn man die Wahl zwischen String- oder anderen Funktionen hat, sollte man immer zu den Stringfunktionen greifen.

    Test
    [autoit]

    Local $aCol[5] = [0x010203,0xff123e,0xabcdef,0x45aabb,0xeeddaa]
    Local $av1, $av2, $t, $ts1 = 0, $ts2 = 0, $min1 = 1000, $max1 = 0, $min2 = 1000, $max2 = 0, $sum1, $sum2
    Local $anzahl = 1000

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

    For $i = 1 To $anzahl
    $sum1 = 0
    $sum2 = 0
    For $j = 0 To 4
    $t = TimerInit()
    RGB2BGR($aCol[$j])
    $sum1 += TimerDiff($t)
    $t = TimerInit()
    _RGB2BGR($aCol[$j])
    $sum2 += TimerDiff($t)
    Next
    $av1 = $sum1 / 5
    $av2 = $sum2 / 5
    $ts1 += $av1
    $ts2 += $av2
    If $av1 < $min1 Then $min1 = $av1
    If $av1 > $max1 Then $max1 = $av1
    If $av2 < $min2 Then $min2 = $av2
    If $av2 > $max2 Then $max2 = $av2
    Next
    ConsoleWrite('String-Variante:' & @CRLF)
    ConsoleWrite('Mittelwert: ' & $ts1 / $anzahl & @CRLF)
    ConsoleWrite('Minimum: ' & $min1 & @CRLF)
    ConsoleWrite('Maximum: ' & $max1 & @CRLF & @CRLF)
    ConsoleWrite('Bit-Variante:' & @CRLF)
    ConsoleWrite('Mittelwert: ' & $ts2 / $anzahl & @CRLF)
    ConsoleWrite('Minimum: ' & $min2 & @CRLF)
    ConsoleWrite('Maximum: ' & $max2 & @CRLF & @CRLF)

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

    Func RGB2BGR($iColor) ; String - Variante
    Local $sH = Hex($iColor,6)
    Return '0x' & StringRight($sH, 2) & StringMid($sH, 3, 2) & StringLeft($sH, 2)
    EndFunc

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

    Func _RGB2BGR($RGB) ; Bit - Variante
    Return '0x' & Hex(BitAND($RGB, 0xFF), 2) _
    & Hex(BitAND(BitShift($RGB, 8), 0xFF), 2) _
    & Hex(BitAND(BitShift($RGB, 16), 0xFF), 2)
    EndFunc

    [/autoit]
  • Hochbegabt

    • BugFix
    • 10. Juli 2010 um 16:22

    Wirklich Hochbegabte sind oft arm dran. Aufgrund ihrer herausragenden Fähigkeiten in einzelnen Interessengebieten geben sie durchaus auch mal das Bild des "zerstreuten Professors". Hochkonzentriert und effizient an einer Aufgabe arbeiten (oder für diese Aufgabe leben) - und alles nebensächliche Gedöns wie Kleidung, Frisur oder auch Sozialkontakte bleibt auf der Strecke. ;)

  • _2DArrayAdd

    • BugFix
    • 10. Juli 2010 um 14:51

    Seit nunmehr 2 1/2 Jahren bereits vorhanden. ;)
    Link

    Zitat

    NEU 23.02.08:
    - Hinzugefügt: _Array2DAdd, _Array2DPop, _Array2DPush


    Manchmal hilft die Suchfunktion schon weiter. :)

  • _WinAPI_RedrawWindow()

    • BugFix
    • 6. Juli 2010 um 21:52

    Schau dir mal alle Parameter der Funktion an ;)
    Du kannst ein Rectangle des Windows bestimmen, das neu gezeichnet werden soll.

  • Probleme bei Wertigkeitsbereichen von Variablen

    • BugFix
    • 6. Juli 2010 um 21:37

    OK, na dann mal als Code:

    Spoiler anzeigen
    [autoit]

    Opt('GUIOnEventMode', 1)

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

    Enum $guiMain, $btRead, $btClose, $btSafe, $inBetrag, $inWaehrung, $Anzahl
    Global $aGui[$Anzahl]

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

    $aGui[$guiMain] = GUICreate('Test')
    GUISetOnEvent(-3, '_Exit')
    $aGui[$btRead] = GUICtrlCreateButton('Read', 10, 10, 60, 20)
    $aGui[$btClose] = GUICtrlCreateButton('Close', 90, 10, 60, 20)
    $aGui[$btSafe] = GUICtrlCreateButton('Safe', 170, 10, 60, 20)
    GUICtrlCreateLabel('Betrag', 10, 53, 40)
    $aGui[$inBetrag] = GUICtrlCreateInput('', 60, 50, 50, 20)
    $aGui[$inWaehrung] = GUICtrlCreateInput('', 115, 50, 50, 20)
    GUICtrlCreateLabel('Währung', 170, 53, 70, 20)
    GUICtrlSetOnEvent($aGui[$btRead], '_Read')
    GUICtrlSetOnEvent($aGui[$btSafe], '_Safe')
    GUICtrlSetOnEvent($aGui[$btClose], '_Exit')

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

    GUISetState()

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

    While True
    Sleep(100)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _Read()
    MsgBox(0, 'Inhalt Input', GUICtrlRead($aGui[$inBetrag]) & ' ' & GUICtrlRead($aGui[$inWaehrung]))
    EndFunc

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

    Func _Safe()
    MsgBox(0, '', 'Hier könnte man etwas speichern')
    EndFunc

    [/autoit]
  • Probleme bei Wertigkeitsbereichen von Variablen

    • BugFix
    • 6. Juli 2010 um 20:40

    Mein Zitat aus dem Tut ist doch ein Bsp., wie man mit einer Globalen Variablen ($aGUI) alle GUI-Elemente unterbringt. :rolleyes:

  • Probleme bei Wertigkeitsbereichen von Variablen

    • BugFix
    • 6. Juli 2010 um 20:18

    Zitat aus meinem Array Tutorial

    Zitat

    Die Anzahl Global deklarierter Variablen sollte man so gering, wie möglich halten. Falls es erforderlich ist Variablen Global zu verwenden, bietet es sich an, dafür ein Array zu nutzen.
    Hier im Bsp. werden die ID's für GUI und GUI-Ctrls im Array hinterlegt. Vorab werden die GUI/ GUICtrl -Variablen mit Enum durchnummeriert. Enum startet (wenn nicht anders vorgegeben) mit 0, das ist praktisch, da das erste Arrayelement den Index 0 hat. Wir beenden die Enumeration mit der Variablen $Anzahl, welche uns die Anzahl der Arrayelemente angibt.

    Enum $guiMain, $btRead, $btClose, $btSafe, $inBetrag, $inWaehrung, $Anzahl
    Global $aGui[$Anzahl]

    Nun werden wie üblich GUI und GUICtrl's erstellt. Die Reihenfolge spielt keine Rolle, da der verwendete Variablenname aus der Enumeration eindeutig die Position im Array bestimmt.

    $aGui[$guiMain] = GUICreate('Test')
    $aGui[$btRead] = GUICtrlCreateButton('Read'...)
    $aGui[$btClose] = GUICtrlCreateButton('Close'...)
    $aGui[$btSafe] = GUICtrlCreateButton('Safe'...)
    $aGui[$inBetrag] = GUICtrlCreateInput('Betrag'...)
    $aGui[$inWaehrung] = GUICtrlCreateInput('Währung'...)

    Der Vorteil:
    Obwohl die ID's im Array gespeichert sind, kann ich sie mit: Index = Variablenname verständlich ansprechen. Es ist durchaus vergleichbar mit einem assoziativen Array. Das erleichtert vor allem bei großen Skripten das Lesen.

    Alles anzeigen
    Zitat

    Wieso funktioniert das nicht!!!!!!!!!!!!!


    Schau dir mal die Funktionen an:
    - GUISetOnEvent
    - GUICtrlSetOnEvent ;)

  • Input werte der größe nach ordnen lassen

    • BugFix
    • 4. Juli 2010 um 14:02

    $B_DESCENDING als TRUE zu deklarieren ist nicht korrekt.
    So klappt es richtig:

    [autoit]

    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($hListView)]

    [/autoit]


    Aber so wie ich es verstanden habe, sollen neue Einträge doch automatisch sortiert werden. Dann kannst du dir den Befehl zum sortieren schenken, wenn du das Listview mit dem Style: $LVS_SORTASCENDING / $LVS_SORTDESCENDING erstellst. ;)

  • OpenGl Farben

    • BugFix
    • 3. Juli 2010 um 10:57

    Achja, RGB to GL geht natürlich auch wesentlich unkomplizierter. ;)

    [autoit]

    Func _RGB2GL($RGB)
    Local $R = Dec(StringMid("0x" & Hex($RGB,6), 3, 2)) / 255
    Local $G = Dec(StringMid("0x" & Hex($RGB,6), 5, 2)) / 255
    Local $B = Dec(StringRight("0x" & Hex($RGB,6), 2)) / 255
    Return $R & '|' & $G & '|' & $B
    EndFunc

    [/autoit]
  • OpenGl Farben

    • BugFix
    • 3. Juli 2010 um 10:31

    GL to RGB:

    [autoit]

    Func _GL2RGB($red, $yellow, $blue)
    $red = Hex($red*255,2)
    $yellow = Hex($yellow*255,2)
    $blue = Hex($blue*255,2)
    Return "0x" & $red & $yellow & $blue
    EndFunc

    [/autoit]
  • Listview Subitem BKColor anpassen - je Subitem eine Farbe

    • BugFix
    • 2. Juli 2010 um 21:28

    Nur mal kurz:
    Mit OWNERDRAW kannst du ausschließlich selbst gestalten: Font, TextColor, BkColor. Strichstärken der Gridlines kannst du nicht gestalten.
    Ein Listview mit 365 Spalten hat natürlich 365*Zeilenzahl einzelne Zellen. Wenn das Verarbeiten der Infos für eine Zelle nur eine ms dauert, sind das bei 10 Zeilen schon über 3 Sekunden Aktualisierungsdauer.
    Ich würde nur einen Monat +/- einer Dekade darstellen.

  • GegenTeil von _StringBetween()

    • BugFix
    • 1. Juli 2010 um 19:50

    Kannst es auch mit StringRegExpReplace machen:

    [autoit]

    $t="Hey*ho*ho2"
    ConsoleWrite(StringRegExpReplace($t, '(.+)(\*.+\*)(.+)', '$1$3') & @CRLF)

    [/autoit]
  • Graphics

    • BugFix
    • 1. Juli 2010 um 14:45

    Ein großer Nachteil von Koda ist die sinnlose Code-Erzeugung.
    Was du machst geht mit ein paar Codezeilen in einer Schleife. Hab es mal schnell angepaßt.
    Mein Tipp: Laß Koda Koda sein und benutze deinen Kopf. Geht schneller und ist effektiver. ;)

    Spoiler anzeigen
    [autoit]

    #include <GuiToolbar.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>

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

    Local $Step, $Toolbar1
    Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp

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

    #Region ### START Koda GUI section ### Form=c:\users\user\desktop\easyshowcreator\128-step.kxf
    $Step = GUICreate("Step", 670, 675, 199, 129, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))

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

    Local $aInput[48], $aLabel[48]
    Local $x = 74, $y = 80, $x1 = 12, $s

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

    For $i = 1 to 48
    $s = "Kanal " & $i
    If $i > 24 Then $s = "Verzögerung"
    If $i = 13 Then
    $x1 = 364
    $x = 428
    $y = 80
    ElseIf $i = 25 Then
    $x1 = 164
    $x = 244
    $y = 80
    ElseIf $i = 37 Then
    $x1 = 524
    $x = 604
    $y = 80
    EndIf
    $aInput[$i-1] = GUICtrlCreateInput("Input" & $i, $x, $y, 57, 21)
    $aLabel[$i-1] = GUICtrlCreateLabel($s, $x1, $y, 60, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT)
    $y += 40
    Next

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

    $Edit1 = GUICtrlCreateEdit("", 12, 568, 649, 97)
    GUICtrlSetData(-1, "Edit1")
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO+$GUI_DOCKHCENTER)

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

    $ToolBar1 = _GUICtrlToolbar_Create($Step)
    GUISetState()

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

    _GUICtrlToolbar_AddBitmap($Toolbar1, 1, -1, $IDB_STD_LARGE_COLOR)

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

    _GUICtrlToolbar_AddButton($Toolbar1, $idNew, $STD_FILENEW)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    If BitAND(_GUICtrlToolbar_GetButtonState($ToolBar1, $idNew), $TBSTATE_PRESSED) = $TBSTATE_PRESSED Then
    MsgBox(0, '', 'Toolbar "New" geklickt')
    ; hier den zugehörigen Code einfügen
    EndIf
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/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™