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

Beiträge von Schnitzel

  • Bildschirm vorübergehend einfrieren

    • Schnitzel
    • 22. August 2013 um 09:30

    Wie wärs mit

    [autoit]

    Blockinput()

    [/autoit]


    Und warum willst du den Bildschirm überhaupt einfrieren?
    Arbeitest du mit Send() Mouseclick() etc?

  • sofortiges Beenden des Programms; flackerndes Label

    • Schnitzel
    • 21. August 2013 um 12:21

    So wie du es hast wird immer noch ständig logik() und UpdateTextControl() ausgeführt.
    Nur auf Events reagieren würde ungefähr so gehen ;)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>

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

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

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

    Opt("GUIOnEventMode", 1) ; OnEvent-Funktionen werden nur aufgerufen, wenn die Option GUIOnEventMode auf 1 gesetzt ist
    Opt("GUICoordMode", 1) ; 1 = absolute Koordinaten (Standard) relativ zur Dialog Box.

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

    geschaeftsfaehigkeit()

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

    Func geschaeftsfaehigkeit()
    Global $nMsg, $newtext
    Global $radio1a, $radio1b, $radio1c, $radio2a, $radio2b, $radio2c ; Radio-Buttons
    Global $label1 ; Textfeld mit Ergebnis
    Local $r1a, $r1b, $r1c, $r2a, $r2b ; Handles der Radiobuttons
    Global $beendenbutton ; Handle des Beenden-Buttons

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

    GUICreate("Geschäftsfähigkeit ermitteln", 560, 240, -1, -1, BitXOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX)) ;

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

    GUICtrlCreateGroup("Alter eingrenzen", 5, 5, 140, 100)
    $radio1a = GUICtrlCreateRadio("< 7 Jahre", 10, 30, 120, 20)
    GUICtrlSetOnEvent($radio1a, "logik")
    $radio1b = GUICtrlCreateRadio(">= 7 UND < 18 Jahre", 10, 50, 120, 20)
    GUICtrlSetOnEvent($radio1b, "logik")
    $radio1c = GUICtrlCreateRadio(">= 18 Jahre", 10, 70, 120, 20)
    GUICtrlSetOnEvent($radio1c, "logik")
    GUICtrlSetState($radio1b, $GUI_CHECKED) ; Checkbox aktivieren

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

    GUICtrlCreateGroup("Art der Geistestätigkeit", 5, 110, 545, 80)
    $radio2a = GUICtrlCreateRadio("nicht nur vorübergehende krankhafte Störung der Geistestätigkeit, die die freie Willensbestimmung ausschließt", 10, 135, 535, 20)
    GUICtrlSetOnEvent($radio2a, "logik")
    $radio2b = GUICtrlCreateRadio("keine Störung der Geistestätigkeit", 10, 155, 535, 20)
    GUICtrlSetOnEvent($radio2b, "logik")
    GUICtrlSetState($radio2b, $GUI_CHECKED) ; Checkbox aktivieren

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

    $beendenbutton = GUICtrlCreateButton("&Beenden", 495, 200) ; Beenden-Button
    GUICtrlSetOnEvent($beendenbutton, "_exit") ; Beenden des Programms über den Beenden-Button

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit") ; Beenden des Programms über das Kreuz oben rechts

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

    HotKeySet("{ESC}", "_exit") ; Damit man das Progamm auch mit ESC sofort beenden kann

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

    $label1 = GUICtrlCreateLabel($newtext, 10, 200, 145, 40) ; Das Textfeld, in dem das Ergebnis angezeigt wird

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

    GUISetState(@SW_SHOW) ; Anzeige der Dialogbox mit allen GUICtrlCreate ...

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

    While 1
    Sleep(100)
    WEnd
    EndFunc ;==>geschaeftsfaehigkeit

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

    Func _exit() ; Für das Beenden des Programms
    Exit 0
    EndFunc ;==>_exit

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

    Func logik() ; hier liegt die juristische Logik des Problems

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

    $r1a = GUICtrlRead($radio1a) ; < 7
    $r1b = GUICtrlRead($radio1b) ; >=7 < 18
    $r1c = GUICtrlRead($radio1c) ; >= 18
    $r2a = GUICtrlRead($radio2a) ; krankhafte Störung der Geistestätigkeit
    $r2b = GUICtrlRead($radio2b) ; keine krankhafte Störung der Geistestätigkeit

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

    ;If (($r1a = 1 Or $r1b = 1 Or $r1c = 1) And $r2a = 1) Or ($r1a = 1) Then ; kompliziertere Lösung ...
    If $r1a = 1 Or $r2a = 1 Then ; einfachere Lösung
    $newtext = "geschäftsunfähig"
    ElseIf $r1b = 1 And $r2b = 1 Then
    $newtext = "beschränkt geschäftsfähig"
    ElseIf $r1c = 1 And $r2b = 1 Then
    $newtext = "geschäftsfähig"
    EndIf
    If GUICtrlRead($label1) <> $newtext Then
    GUICtrlSetData($label1, $newtext)
    EndIf
    EndFunc ;==>logik

    [/autoit]
  • Geklickte Linie in einem Raster erkennen

    • Schnitzel
    • 21. August 2013 um 09:24

    Ich hab es gestern so zusammengebaut wie du beschrieben hattest.
    Hier die Guigetmsg für dein Script

    Spoiler anzeigen
    [autoit]

    Switch GUIGetMsg()
    Case $GUI_EVENT_PRIMARYDOWN
    $aEditGameCoursorInfo = GUIGetCursorInfo($pi_hGUI)
    ConsoleWrite($aEditGameCoursorInfo[0] & @CRLF & $aEditGameCoursorInfo[1] & @CRLF)
    Local $iLinieNummer = ''
    Local $iKaestchenNummer = ''
    ; Kästchen ermitteln:
    $x = Floor($aEditGameCoursorInfo[0]/40)
    $y = Floor($aEditGameCoursorInfo[1]/40)
    If $x >= 0 And $x < 10 And $y >= 0 And $y < 10 Then $iKaestchenNummer = 10 * $y + $x + 1
    ConsoleWrite('Kastchen: ' & $iKaestchenNummer & @LF)
    ; Linie ermitteln:
    $iToleranz = 5
    For $i = 0 To 400 Step 40
    ; horizonal prüfen:
    If $aEditGameCoursorInfo[1] > $i - $iToleranz And $aEditGameCoursorInfo[1] < $i + $iToleranz Then
    ; Oben oder unten
    If Mod($aEditGameCoursorInfo[1], 40) < 20 Then
    $iLinieNummer = 0
    Else
    $iLinieNummer = 2
    EndIf
    EndIf
    ; vertikal prüfen:
    If $aEditGameCoursorInfo[0] > $i - $iToleranz And $aEditGameCoursorInfo[0] < $i + $iToleranz Then
    ; links oder rechts
    If Mod($aEditGameCoursorInfo[0], 40) < 20 Then
    $iLinieNummer = 3
    Else
    $iLinieNummer = 1
    EndIf
    EndIf
    Next
    ConsoleWrite('LinienNr: ' & $iLinieNummer & @LF)
    EndSwitch

    [/autoit]

    Allerdings würde ich mir das mit der Nummerierung nochmal überlegen. Das geht schöner...
    Wenn du mein Scriptteil und Oscars script zusammenbaust bekommst du da schon was ganz schönes ;)

  • sofortiges Beenden des Programms; flackerndes Label

    • Schnitzel
    • 20. August 2013 um 11:28

    1. Wegen GUICtrlSetPos() und weil du ständig neue Labels erstellst (du legst ständig neue Labels über die alten :thumbdown: )
    2. Weil du soviele andere Dinge machst und die nicht dann auf die Events reagierst wenn sie ausgelöst werden
    3. siehe 2
    4. Weil du es mit den Koordinaten -1, -1 erstellst

    Woher hast du dir denn die ganzen Scriptfetzen zusammenkopiert?
    Verstehst du was du alles machst?

    Du solltest die ganze While 1 Schleife mal so umbauen dass darin nur auf Events reagiert wird. D.h. in der While sollte nur dein Switch $nMsg stehen den du in die beenden Funktion gepackt hast.
    All die anderen Dinge musst du nur ausführen wenn ein Radiobutton gedrückt wird

  • Geklickte Linie in einem Raster erkennen

    • Schnitzel
    • 20. August 2013 um 10:44

    Hab das ganze mal durchgespielt und es ist nicht so schwer wie du denkst ;)
    Welches Kästchen geklickt wurde geht recht einfach wenn du Floor() verwendest und damit die x bzw. y koordinate durch 40 (deine Spaltenbreite) teilst.
    Zum erkennen welche Linie geklickt wurde kannst du auch ganz einfach eine For Schleife mit Step 40 verwenden.
    Darin eine If Abfrage einbauen die prüft ob in der Nähe einer Linie geklickt wurde.

    Ich hab das ganze auch schon fertig, aber ich wollte dich erst einmal selbst probieren lassen.
    Wenn du meine Lösung sehen willst dann sags einfach ;)

    PS: Bitte beim nächsten mal ein lauffähiges Script posten

  • IE8 Internetoption auslesen

    • Schnitzel
    • 19. August 2013 um 13:06

    Bitte dann auch das Thema auf abgeschlossen setzen ;)
    (Ersten Post bearbeiten und Präfix abgeschlossen auswählen)

  • Hallo

    • Schnitzel
    • 14. August 2013 um 14:48

    Herzlich Willkommen und viel Spaß hier im Forum ;)

  • Ordner + Unterordner nach .avi suchen lassen und kopieren

    • Schnitzel
    • 13. August 2013 um 12:21

    Wenn du die RecFileListToArray.au3 in dein Autoit Include Verzeichnis speicherst und es so ausführst geht es doch ganz gut ;)

    [autoit]


    #include <RecFileListToArray.au3>
    #include <Array.au3>; Wird nur für die _Arraydisplay gebraucht
    $sPath = @scriptdir; oder wo du halt willst

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

    $aArray = _RecFileListToArray($sPath, "*.avi", 1, 1, 0, 2)
    _ArrayDisplay($aArray)

    [/autoit]
  • Grösser als Problem

    • Schnitzel
    • 13. August 2013 um 12:09

    Problem ist dass du so zwei Strings vergleichst.
    Wenn du Zahlen hast dann gehts auch

    [autoit]


    $i1=136
    $i2=15

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

    if $i1 > $i2 Then
    msgbox(0,"","Treffer")
    EndIf

    [/autoit]
  • Prozessabbild erstellen?

    • Schnitzel
    • 12. August 2013 um 10:09

    Das müsste mit der dbghelp.dll gehen.
    Ich würde mich mal im MSDN umsehen.
    Evtl das hier?

  • AD Ausgabe der Gruppenmitglieder mit Namen und User ID

    • Schnitzel
    • 7. August 2013 um 12:05

    Sieh dir doch am besten mal die Active Directory UDF an
    hier oder auch hier

    Falls du hilfe brauchst solltest du auf jeden Fall immer dein Script posten. Sonst wissen wir ja nicht was du so treibst

  • Infobereichsymbole // Notification Area Icons

    • Schnitzel
    • 6. August 2013 um 11:41

    Wieso willst du +{Tab} an das control senden?
    Schick doch {SPACE} ^^

  • Statusbar Tooltip funktioniert nicht

    • Schnitzel
    • 2. August 2013 um 11:39
    Zitat von Gremlin78

    Checkbox hab ich jetzt anders geregelt (über Switch/Case in der While)


    Genau das hab ich ja gesagt^^

    Zitat von Gremlin78

    Statusleiste habe ich nun mit Leerzeichen aufgefüllt


    Und genau das hab ich auch gemacht :)

  • Stringregreplace ** ?!

    • Schnitzel
    • 2. August 2013 um 09:56
    [autoit]

    StringRegExpReplace($string, '\*+', '*')

    [/autoit]
  • Statusbar Tooltip funktioniert nicht

    • Schnitzel
    • 2. August 2013 um 09:07

    Tips werden nur angezeigt wenn der Text nicht in die Box passt.
    Workaround:

    [autoit]


    _GUICtrlStatusBar_SetText($hStatus,'test' & StringFormat('%80s', ' '),0)
    _GUICtrlStatusBar_SetText($hStatus,'--Versions-Nr.-- ',1)

    [/autoit]

    Das flackern kommt davon dass du ständig den Guictrlsetstate und Guictrlsetdata ausführst. Das solltest du nur tun wenn auf die Checkbox geklickt wird

  • bei CheckListBox Checkstatus auslesen oder setzen

    • Schnitzel
    • 1. August 2013 um 22:27

    du hast

    [autoit]

    $wv=_GUICtrlListView_GetItemChecked("$ContHandle", 1)

    [/autoit]


    statt

    [autoit]

    $wv=_GUICtrlListView_GetItemChecked($ContHandle, 1)

    [/autoit]


    gepostet

  • bei CheckListBox Checkstatus auslesen oder setzen

    • Schnitzel
    • 1. August 2013 um 21:18

    Dass du das Handle übergeben musst ist dir klar oder? Du übergibst da nen String "$ContHandle" ^^

    [autoit]

    $wv=_GUICtrlListView_GetItemChecked($ContHandle, 1)

    [/autoit]

    Falls ja könntest du uns vllt einen Link zur Installationsdatei geben.
    Wird wohl schwer das zu lösen wenn man nur ins Blaue rät

  • Array Deklaration als Parameter übergeben

    • Schnitzel
    • 1. August 2013 um 20:55

    Die Frage ist wofür braucht mans^^
    Du könntest es mit ner Funktion machen die ein Array zurückgibt
    Also so in der art:

    [autoit]


    Test(Stringsplit(...))

    [/autoit]
  • Checkbox verknüpft abfragen

    • Schnitzel
    • 31. Juli 2013 um 14:17

    Also ich weiß ja nicht wie es bei euch ist, aber aus Guictrlread bekomm ich nicht den Enabled/Disabled Status raus und aus Guictrlgetstate bekomm ich nicht den Checked/Unchecked Status.
    Bei mir gehts so:

    [autoit]

    If BitAND($GUI_CHECKED, GUICtrlRead($bCheckbox08)) And BitAND($GUI_ENABLE, GUICtrlGetState($bCheckbox08)) Then

    [/autoit]
  • Songliste bearbeiten

    • Schnitzel
    • 31. Juli 2013 um 10:58

    Probiers doch bitte mal so und sag uns was in die Console geschrieben wird:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>

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

    Local $aTracks
    Local $aArray[1][2]
    Local $aArray_BU
    Local $aArray2[1][2]
    Local $aIndexes
    Local $sTracklist
    Local $hFile
    Local $aSplit

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

    $sTracklist = FileOpenDialog("Select Tracklist...", @ScriptDir, "Tracklist (*.txt)")
    _FileReadToArray($sTracklist, $aTracks)
    For $i = 1 To UBound($aTracks) - 1
    $aSplit = StringSplit($aTracks[$i], ";")
    ;If Ubound($aSplit) <> 3 then continueloop ; kurze variante
    If Ubound($aSplit) <> 3 then ; lange variante für debugging
    ConsoleWrite('Fehler bei Zeile ' & $i & ' mit dem Text: ' & $aTracks[$i] & @LF)
    ContinueLoop
    EndIf
    If $i = 1 Then
    $aArray[$i - 1][0] = $aSplit[1] & ";" & $aSplit[2]
    $aArray[$i - 1][1] = $aSplit[2]
    Else
    ReDim $aArray[$i + 1][2]
    $aArray[$i - 1][0] = $aSplit[1] & ";" & $aSplit[2]
    $aArray[$i - 1][1] = $aSplit[2]

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

    EndIf
    Next
    $aArray_BU = $aArray

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

    For $i = 0 To UBound($aArray) - 1
    If $aArray[$i][1] <> "" Then
    $aIndexes = _ArrayFindAll($aArray, $aArray[$i][1], 0, 0, 0, 0, 2)

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

    If UBound($aIndexes) > 0 Then
    ReDim $aArray2[$i + 1][2]
    $aArray2[$i][0] = $aArray[$i][1]
    $aArray2[$i][1] = UBound($aIndexes)
    For $y = 0 To UBound($aIndexes) - 1
    $aArray[$aIndexes[$y]][0] = ''
    $aArray[$aIndexes[$y]][1] = ''
    Next
    EndIf
    EndIf
    Next

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

    _ArraySort($aArray2, 2, 0, 0, 1)

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

    $hFile = FileOpen("Sortierte_Hitliste.txt", 1)
    For $i = 0 To UBound($aArray2) - 1
    If $aArray2[$i][1] <> "" Then
    $aIndexes = _ArrayFindAll($aArray_BU, $aArray2[$i][0], 0, 0, 0, 0, 2)

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

    If UBound($aIndexes) > 0 Then
    FileWriteLine($hFile, $aArray_BU[$aIndexes[0]][1] & "(" & UBound($aIndexes) & "x)" & @CRLF & "--------------------" & @CRLF)
    For $y = 0 To UBound($aIndexes) - 1
    FileWriteLine($hFile, $aArray_BU[$aIndexes[$y]][0] & @CRLF)
    $aArray_BU[$aIndexes[$y]][0] = ''
    $aArray_BU[$aIndexes[$y]][1] = ''
    Next
    FileWriteLine($hFile, @CRLF)
    EndIf
    EndIf
    Next
    FileClose($hFile)

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