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

Beiträge von HassanMullah

  • Input Box per Maus nicht anklickbar

    • HassanMullah
    • 1. August 2012 um 14:29

    Alles klar,

    die Überlappung ist weg, das lernen von Arrays ist auf unbestimmte Zeit verschoben (aber irgendwann komm ich nicht mehr drum herum :) und die Deklaration muss noch nachgeholt werden.

    vielen Dank

    Gruss Hassan

  • Input Box per Maus nicht anklickbar

    • HassanMullah
    • 1. August 2012 um 13:46

    Hallo zusammen,

    ich baue mir gerade eine GUI für Einstellungen in einem Progrämmchen.

    Dabei habe ich 2 Fragen

    1.) Wie kann man den Code optimieren

    2.) Die Inputbox $Input22 in Zeile 91 kann ich, nachdem ich mit F5 den Code ausführe nur mit der Tabulator Taste anspringen und ändern. Alle anderen Input Boxen kann man mit der Maus anklicken und ändern.

    Was läuft hier falsch ?

    Code für Einstellungen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $var_sz_link1, $var_sz_link2, $var_sz_link3, $var_sz_link4, $var_f_link1, $var_f_link2, $var_f_link3, $var_f_link4; Linke Ränder
    Global $var_labellaengeInput, $var_top1, $var_top2, $var_top3, $var_top4, $var_top5, $var_top6, $var_top7, $var_top8; Obere Ränder
    Global $var_startzeit_sz_wt, $var_endzeit_sz_wt, $var_startzeit_sz_we, $var_endzeit_sz_we, $var_maxzeit_sz_wt, $var_maxzeit_sz_we, $var_startzeit_f, $var_endzeit_f, $var_maxzeit_f, $var_bonuszeit; Zeiten
    Global $var_spaltendifferenz1, $var_labellaengeInput, $var_labellaengeLabel; Differenzabstände

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

    $var_sz_link1 = 60
    $var_sz_link2 = 140
    $var_sz_link3 = 200
    $var_sz_link4 = 260

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

    $var_f_link1 = 400
    $var_f_link2 = 480
    $var_f_link3 = 540
    $var_f_link4 = 600

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

    $var_labellaengeInput = 45
    $var_labellaengeLabel = 60
    $var_spaltendifferenz1 = 30

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

    $var_top1 = 100
    $var_top2 = $var_top1 + $var_spaltendifferenz1
    $var_top3 = $var_top2 + $var_spaltendifferenz1
    $var_top4 = $var_top3 + $var_spaltendifferenz1
    $var_top5 = $var_top4 + $var_spaltendifferenz1
    $var_top6 = $var_top5 + $var_spaltendifferenz1
    $var_top7 = $var_top6 + $var_spaltendifferenz1
    $var_top8 = $var_top7 + 50
    $var_top9 = $var_top1 - $var_spaltendifferenz1

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

    $var_startzeit_sz_wt = "11:00"
    $var_endzeit_sz_wt = "19:30"
    $var_startzeit_sz_we = "08:00"
    $var_endzeit_sz_we = "23:30"
    $var_maxzeit_sz_wt = 30
    $var_maxzeit_sz_we = 60

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

    $var_startzeit_f = "07:00"
    $var_endzeit_f = "23:30"
    $var_maxzeit_f = 60

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

    $var_bonuszeit = 15

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

    _Admin()

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

    Func _Admin()

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

    #region ### START Koda GUI section ### Form=Z:\AutoIT\Projekte\Eigene\KidsControlLight\mamabonusmodus.kxf
    $Form1 = GUICreate("Einstellungen", 700, 370, -1, -1)
    $MenuItem2 = GUICtrlCreateMenu("Daten")
    $MenuItem1 = GUICtrlCreateMenuItem("Speichern und Schließen", $MenuItem2)
    $Label1 = GUICtrlCreateLabel("Ferienmodus aktiv", 20, 16, 90, 17)
    $Group1 = GUICtrlCreateGroup("Schulzeit", 20, 50, 320, 270)
    GUICtrlSetBkColor($Group1, 0xFFCCFF) ; Rosa
    $Label2 = GUICtrlCreateLabel("Montag", $var_sz_link1, $var_top1, $var_labellaengeLabel, 17)
    $Label3 = GUICtrlCreateLabel("Dienstag", $var_sz_link1, $var_top2, $var_labellaengeLabel, 17)
    $Label4 = GUICtrlCreateLabel("Mittwoch", $var_sz_link1, $var_top3, $var_labellaengeLabel, 17)
    $Label5 = GUICtrlCreateLabel("Donnerstag", $var_sz_link1, $var_top4, $var_labellaengeLabel, 17)
    $Label6 = GUICtrlCreateLabel("Freitag", $var_sz_link1, $var_top5, $var_labellaengeLabel, 17)
    $Label7 = GUICtrlCreateLabel("Samstag", $var_sz_link1, $var_top6, $var_labellaengeLabel, 17)
    $Label8 = GUICtrlCreateLabel("Sonntag", $var_sz_link1, $var_top7, $var_labellaengeLabel, 17)

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

    $Label18 = GUICtrlCreateLabel("Start", $var_sz_link2, $var_top9, $var_labellaengeLabel, 17)
    $Label19 = GUICtrlCreateLabel("Ende", $var_sz_link3, $var_top9, $var_labellaengeLabel, 17)
    $Label20 = GUICtrlCreateLabel("Maximal", $var_sz_link4, $var_top9, $var_labellaengeLabel, 17)

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

    $Input1 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top1, $var_labellaengeInput, 21)
    $Input2 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top1, $var_labellaengeInput, 21)
    $Input3 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top1, $var_labellaengeInput, 21)
    $Input4 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top2, $var_labellaengeInput, 21)
    $Input5 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top2, $var_labellaengeInput, 21)
    $Input6 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top2, $var_labellaengeInput, 21)
    $Input7 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top3, $var_labellaengeInput, 21)
    $Input8 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top3, $var_labellaengeInput, 21)
    $Input9 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top3, $var_labellaengeInput, 21)
    $Input10 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top4, $var_labellaengeInput, 21)
    $Input11 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top4, $var_labellaengeInput, 21)
    $Input12 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top4, $var_labellaengeInput, 21)
    $Input13 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top5, $var_labellaengeInput, 21)
    $Input14 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top5, $var_labellaengeInput, 21)
    $Input15 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top5, $var_labellaengeInput, 21)
    $Input16 = GUICtrlCreateInput($var_startzeit_sz_we, $var_sz_link2, $var_top6, $var_labellaengeInput, 21)
    $Input17 = GUICtrlCreateInput($var_endzeit_sz_we, $var_sz_link3, $var_top6, $var_labellaengeInput, 21)
    $Input18 = GUICtrlCreateInput($var_maxzeit_sz_we, $var_sz_link4, $var_top6, $var_labellaengeInput, 21)
    $Input19 = GUICtrlCreateInput($var_startzeit_sz_we, $var_sz_link2, $var_top7, $var_labellaengeInput, 21)
    $Input20 = GUICtrlCreateInput($var_endzeit_sz_we, $var_sz_link3, $var_top7, $var_labellaengeInput, 21)
    $Input21 = GUICtrlCreateInput($var_maxzeit_sz_we, $var_sz_link4, $var_top7, $var_labellaengeInput, 21)
    $Label9 = GUICtrlCreateLabel("Bonus Zeit in Minuten: ", 360, 16, 150, 17)
    $Input22 = GUICtrlCreateInput($var_bonuszeit, 480, 16, 25, 17)
    GUICtrlSetBkColor($Input22, 0x00ff00) ; Grün

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

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Ferien", 360, 50, 320, 270)
    GUICtrlSetBkColor($Group2, 0xCCFFFF) ; Mintgrün
    $Label10 = GUICtrlCreateLabel("Montag", $var_f_link1, $var_top1, $var_labellaengeLabel, 17)
    $Label11 = GUICtrlCreateLabel("Dienstag", $var_f_link1, $var_top2, $var_labellaengeLabel, 17)
    $Label12 = GUICtrlCreateLabel("Mittwoch", $var_f_link1, $var_top3, $var_labellaengeLabel, 17)
    $Label13 = GUICtrlCreateLabel("Donnerstag", $var_f_link1, $var_top4, $var_labellaengeLabel, 17)
    $Label14 = GUICtrlCreateLabel("Freitag", $var_f_link1, $var_top5, $var_labellaengeLabel, 17)
    $Label15 = GUICtrlCreateLabel("Samstag", $var_f_link1, $var_top6, $var_labellaengeLabel, 17)
    $Label16 = GUICtrlCreateLabel("Sonntag", $var_f_link1, $var_top7, $var_labellaengeLabel, 17)

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

    $Label21 = GUICtrlCreateLabel("Start", $var_f_link2, $var_top9, $var_labellaengeLabel, 17)
    $Label22 = GUICtrlCreateLabel("Ende", $var_f_link3, $var_top9, $var_labellaengeLabel, 17)
    $Label23 = GUICtrlCreateLabel("Maximal", $var_f_link4, $var_top9, $var_labellaengeLabel, 17)

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

    $Input23 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top1, $var_labellaengeInput, 21)
    $Input24 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top1, $var_labellaengeInput, 21)
    $Input25 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top1, $var_labellaengeInput, 21)
    $Input26 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top2, $var_labellaengeInput, 21)
    $Input27 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top2, $var_labellaengeInput, 21)
    $Input28 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top2, $var_labellaengeInput, 21)
    $Input29 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top3, $var_labellaengeInput, 21)
    $Input30 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top3, $var_labellaengeInput, 21)
    $Input31 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top3, $var_labellaengeInput, 21)
    $Input32 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top4, $var_labellaengeInput, 21)
    $Input33 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top4, $var_labellaengeInput, 21)
    $Input34 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top4, $var_labellaengeInput, 21)
    $Input35 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top5, $var_labellaengeInput, 21)
    $Input36 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top5, $var_labellaengeInput, 21)
    $Input37 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top5, $var_labellaengeInput, 21)
    $Input38 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top6, $var_labellaengeInput, 21)
    $Input39 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top6, $var_labellaengeInput, 21)
    $Input40 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top6, $var_labellaengeInput, 21)
    $Input41 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top7, $var_labellaengeInput, 21)
    $Input42 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top7, $var_labellaengeInput, 21)
    $Input43 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top7, $var_labellaengeInput, 21)

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

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 16, 17, 17)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    EndFunc ;==>_Admin

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    Gruss Hassan

  • Verständnisfrage zu ProcessWait

    • HassanMullah
    • 27. Juli 2012 um 12:56

    ich Depp :rofl:
    Hab mich von den 250 Millisekunden Pollzeit ablenken lassen. Wer lesen kann ist klar im Vorteil

    Vielen Dank

  • Verständnisfrage zu ProcessWait

    • HassanMullah
    • 27. Juli 2012 um 12:49

    Sorry ich steh voll auf dem Schlauch ?(

    Gibt an wie lange gewartet werden soll, ohne Angaben unendlich, mit Angabe (nämlich 10 Sekunden) und was passiert dann ??? Ich habe ja 10 Sekunden gewartet, aber was dann passieren soll, kapier ich nicht.

  • Verständnisfrage zu ProcessWait

    • HassanMullah
    • 27. Juli 2012 um 12:35

    Hallo zusammen,

    ich habe unter anderem folgende Zeile in meinem Script:

    [autoit]

    $var_P1 = ProcessWait("Dateiname.exe", 10000)

    [/autoit]


    Ich hatte das so verstanden, das hier maximal 10 Sekunden gewartet werden, und wenn in dieser Zeit der Prozess nicht erfolgreich gestartet wird, geht das Script weiter. Da die Datei dann nicht erfolgreich gestartet wurde, bekomme ich einen anderen Error Code, als wenn es erfolgreich verlaufen wäre.

    Bei mir passiert aber nach 10 Sekunden gar nichts. Das Script pausiert sich einen Wolf.

    Falscher Befehl, oder falsch angewendet ?

    Gruss Hassan

  • IE Plugins / Add-ons aktivieren - deaktivieren

    • HassanMullah
    • 26. Juli 2012 um 13:30

    Hallo zusammen,

    welche Möglichkeiten habe ich im IE nach einen bestimmten Add-on zu suchen und den Status abzufragen und diesen eventuell von disabled auf enabled zu bringen. Gibt es hier einen Ansatz im Autoit ?

    Gruss Hassan

  • Unstrukturieren Text parsen - wie ?

    • HassanMullah
    • 20. Juli 2012 um 13:24

    Hallo AspirinJunkie,

    Danke für die Antwort. Ich habe meinen Fehler gefunden, jedoch habe ich jetzt noch folgendes Problem (anbei nochmals der überarbeitete Code)

    Funktion POP Abruf
    [autoit]

    Func _POP3()
    If Not FileExists(@TempDir & "\PapaControl\received") Then; Prüfung ob Verzeichnis existiert
    DirCreate(@TempDir & "\PapaControl\received"); ... wenn nicht, dann Verzeichnis anlegen
    EndIf; Ende der Schleife
    ;Run(@TempDir & "\PapaControl\popclient.exe -configfile mypop3.xml", @TempDir & "\PapaControl\", @SW_HIDE); Die Email wird abgerufen
    FileChangeDir(@TempDir & "\PapaControl\received"); Ins Verzeichnis wechseln, wo das erzeugte Textfile liegt
    Local $search = FileFindFirstFile("*.*"); Nach Dateinamen im Verzeichnis suchen

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

    While 1
    Local $file = FileFindNextFile($search)
    If @error Then ExitLoop; wenn Fehler, dann verlasse die Schleife
    ConsoleWrite("gefundener Dateiname: " & $file & @CRLF); gib den gefundenen Dateinamen auf der Console aus - zu Kontrollzwecken
    $opendfile = FileRead($file); lese die Datei, die geöffnet wurde
    ;MsgBox(0, '$opendfile ist: ', $opendfile); gib den Inhalt der gelesenen Datei aus
    Local $aArray1 = _StringBetween($opendfile, 'Subject: ', @CRLF); Sucht den String zwischen Anfangs und Endwert
    _ArrayDisplay($aArray1, 'Standardsuche'); Gibt das Ergbnis zurück
    FileClose($opendfile); Schließt die Datei
    WEnd
    ; Close the search handle
    ;FileClose($search)
    ;FileDelete(@TempDir & "\PapaControl\received\*.txt")
    EndFunc ;==>_POP3

    [/autoit]


    In Zeile 16 wird der Inhalt des Array ja angezeigt, nach dem Schema

    Code
    [0]|test123


    Ich will das Ganze in einer Variablen haben, in der aber nur

    Code
    test123


    steht.

    Geht das mit einfachen Hausmitteln, oder muss hier der String nochmals bearbeitet werden ?

    P.S. Habe es selbst gefunden :)

    [autoit]

    Local $myemailsubjekt = _ArrayToString($aArray1)
    MsgBox(0, "Betreff ist: ", $myemailsubjekt)

    [/autoit]

    Gruss Hassan

  • Unstrukturieren Text parsen - wie ?

    • HassanMullah
    • 20. Juli 2012 um 12:14

    Servus,

    sorry das ich mich erst jetzt wieder melde, hatte ein paar Tage leider keine Zeit.

    Bin etwas verzweifelt. Hier mal ein wenig Code

    Funktion POP Abruf
    [autoit]

    _POP3

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

    Func _POP3()
    If Not FileExists(@TempDir & "\PapaControl\received") Then; Prüfung ob Verzeichnis existiert
    DirCreate(@TempDir & "\PapaControl\received"); ... wenn nicht, dann Verzeichnis anlegen
    EndIf; Ende der Schleife
    ;Run(@TempDir & "\PapaControl\popclient.exe -configfile mypop3.xml", @TempDir & "\PapaControl\", @SW_HIDE); Die Email wird abgerufen
    FileChangeDir(@TempDir & "\PapaControl\received"); Ins Verzeichnis wechseln, wo das erzeugte Textfile liegt
    Local $search = FileFindFirstFile("*.*"); Nach Dateinamen im Verzeichnis suchen

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

    While 1
    Local $file = FileFindNextFile($search)
    If @error Then ExitLoop; wenn Fehler, dann verlasse die Schleife
    ConsoleWrite("gefundener Dateiname: " & $file & @CRLF); gib den gefundenen Dateinamen auf der Console aus - zu Kontrollzwecken
    Local $opendfile = FileOpen($file); öffne die Datei, welche gefunden wurde
    FileRead($opendfile); lese die Datei, die geöffnet wurde
    MsgBox(0, '$opendfile ist: ', $opendfile); gib den Inhalt der gelesenen Datei aus
    ;Local $aArray1 = _StringBetween($opendfile, 'Subject:', @CRLF)
    ;_ArrayDisplay($aArray1, 'Standardsuche')
    ;FileClose($opendfile)
    WEnd
    ; Close the search handle
    ;FileClose($search)
    ;FileDelete(@TempDir & "\PapaControl\received\*.txt")
    EndFunc ;==>_POP3

    [/autoit]

    In Zeile 14 wird der gefundene Dateinamen ausgegeben, aber Zeile 15 bis 17 macht nicht das, was ich mir erhoffte. Ich wollte sozusagen das Textfile öffnen und lesen und "komplett" in einer MsgBox ausgeben, damit ich erst mal sicher bin, das richtige "Ziel" zu haben. Im nächsten Step würde ich dann mit dem _StringBetween weitermachen.

    Wo biege ich hier falsch ab ?

    Gruss Hassan

  • Unstrukturieren Text parsen - wie ?

    • HassanMullah
    • 17. Juli 2012 um 16:10

    Hallo,

    ich möchte gerne aus dem Script heraus ein POP3 Konto abfragen (das geht schon). Als Ergebnis bekomme ich in einem definierten Ordner ein nicht definierte Textdatei.

    Nicht definiert heißt, der Name wird dynamisch zusammen gebaut

    Der Dateiinhalt ist auch nicht definierbar.

    Ich suche dort eine Zeile die mit

    "Subjekt:"

    anfängt. Was hinter den ":" steht, will ich in eine Variable schreiben .Der Text ist jedoch nicht immer in der gleichen Zeile.

    Ich finde sonst auch keine "Regelmäßigkeiten"

    Wie geht man sowas an.

    mit Fileopen und Fileread vermutlich, aber wie geht es weiter ...

    Beispiele wären wünschenswert :)

    Hier mal 2 Beispieltexte:

    Code
    Received: by s1.vhs.local 
    	id <01CD6422.821DCACA@s1.vhs.local>; Tue, 17 Jul 2012 15:46:03 +0200
    Return-Receipt-To: "it" <it@lala.de>
    Content-class: urn:content-classes:message
    Subject: Test123
    MIME-Version: 1.0
    Content-Type: multipart/alternative;
    	boundary="----_=_NextPart_001_01CD6422.821DCACA"
    Date: Tue, 17 Jul 2012 15:46:01 +0200
    Message-ID: <114753C5767DF54A90285C5A1A10A3A3021A52@s1.vhs.local>
    Disposition-Notification-To: "it" <it@lala.de>
    X-MimeOLE: Produced By Microsoft Exchange V6.5
    X-MS-Has-Attach: 
    X-MS-TNEF-Correlator: 
    Thread-Topic: Test123
    thread-index: Ac1kInwC5AN8zIg8RJ6OA9xctXvurg==
    From: "it" <it@lala.de>
    To: "bubu" <bubu@lala.de>
    Alles anzeigen

    und

    Code
    Received: from 192.168.192.123 ([192.168.192.123]) by s1.vhs.local ([192.168.192.123]) with Microsoft Exchange Server HTTP-DAV ;
     Tue, 17 Jul 2012 13:47:09 +0000
    Subject: Test456
    From: =?us-ascii?Q?Holger_Hasenm=FCller?= <holger@hasenmueller.de>
    Content-Type: text/plain;
    	charset="us-ascii"
    Message-ID: <7FD267E4-4CA5-4FCC-9F37-B878709B4E2D@hasenmueller.de>
    Date: Tue, 17 Jul 2012 15:47:09 +0200
    To: "papa control" <papacontrol@hasenmueller.de>
    Content-Transfer-Encoding: 7bit
    thread-topic: Test456
    MIME-Version: 1.0 (1.0)
    thread-index: Ac1kIqkQJsc42qKVQx6dW7J1vNXn7w==
    Alles anzeigen

    Gruss Hassan

  • Suche Anregung für Bonus System

    • HassanMullah
    • 13. Juli 2012 um 14:07
    Zitat von Cheater Dieter

    Ich will dich hier jetzt nicht in deinem Eifer bremsen, aber warum installierst du auf dem PC nicht einfach ein Kinderschutzprogramm? Eine Funktion, um die PC Nutzung zeitlich einzuschränken, gehört ja zu Standartausstattung eines solchen Programms. Auch ein Belohnungssystem ist meistens mit dabei. Und ganz nebenbei wird deine Tochter noch vor ungeeigneten Internetseiten geschützt.

    Ganz einfach.

    1.) Die meisten Programme funktionieren nicht so, wie Sie es versprechen
    2.) Ich will mich ja in Autoit weiterentwickeln, von daher finde ich das ein schönes kleines Projekt, was auch noch einen Nutzen für mich hat
    3.) Die Internetseitekontrolle passiert an 2 anderen Stellen.

    Gruss Hassan

  • Suche Anregung für Bonus System

    • HassanMullah
    • 12. Juli 2012 um 16:37

    Wow da ich ja was losgetreten :)

    vielen Dank nochmals an alle.

    Ich muss mich jetzt erst mal mit Eurer Materie auseinander setzen (das wird ein wenig dauern)

    und BTW: Die Tochter ist gerade mal 7 Jahre und hat eigentlich noch gar kein richtiges Interesse am Computer. Ab und zu mal Sandmaennchen.de oder https://autoit.de/www.die-maus.de
    Wir wollen ja nur das der Computer entscheidet, wann Schluss ist.

    Ich halt Euch auf dem Laufenden, für was ich mich entschieden habe, wird aber vermutlich einige Zeit dauern, da ich gerade etwas Land unter bin ..

    Gruss Hassan

  • Suche Anregung für Bonus System

    • HassanMullah
    • 12. Juli 2012 um 09:56

    Hallo zusammen,

    erst mal vielen Dank für die vielen konstruktiven Vorschläge. Wie in meinem ersten Post schon erwähnt, habe ich von Arrays technisch noch gar keinen Plan. Ich werde mich also mal auf die Suche nach dem Tutotial von Bugfix machen :)

    Die Idee einfach eine Datei befüllen zu lassen, diese auszudrucken und die Schnipsel den Kiddies zu geben, hatte ich auch. Die "handfeste" Belohnung macht es ja aus.

    Damit ich das ungefähr richtig verstehe.

    1. Ich muss via Schleife eine x-stelligen Zufallscode erzeugen und diesen in eine Fileschreiben, dann neue Zeile und alles wieder von Vorne, bis Schleife zu Ende ist.
    2. File ausdrucken (das bekomme ich 100% hin - auch ohne Array :rofl:
    3. Nach Eingabe eines Codes in eine Inputbox muss diese Variable mit dem Inhalt der Datei verglichen werden (vermutlich wieder mit Array und Schleifen ...)
    4. Wenn der Code dann vorhanden ist, wird der Bonus gewährt, und der Code aus dem File gelöscht, damit er beim nächsten Vergleich fehl schlägt und der Bonus mit der "alten" Nummer dann nicht mehr gewährt wird.

    Ohjeee, da habe ich mir ja was aufgehalst. Das wird eine ganze Weile dauern, bis ich da durchblicke

    Gruss Hassan

  • Suche Anregung für Bonus System

    • HassanMullah
    • 11. Juli 2012 um 16:48

    Hallo zusammen,

    ich baue mir gerade eine kleine Anwendung, die die Computer Onlinezeit meiner Kinder beobachtet (also ähnlich http://www.parents-friend.de - aber das funktioniert bei mir nicht sauber, deshalb was eigenes), jedoch überwache ich nur die Zeiten wo die Kinder online gehen dürfen. Pro Wochentag haben Sie unterschiedlich lange Onlinezeiten.

    Beispiel:

    Montags von 12:00 - 19:00 Uhr. In dieser Zeit dürfen Sie 30 Minuten an den PC. Danach fährt der PC runter (und wir Eltern sind außen vor, da das ja der PC bestimmt und nicht wir :)

    Ich möchte jetzt gerne ein Bonussystem mit einführen, d.h. wenn die Kinder z.B. beim Stausaugen geholfen haben, dann bekommen Sie 15 Bonus Minuten.

    Dazu bräuchte ich 3 Dinge (und ich vermute das ich mich dann mal mit Arrays auseinander setzen muss ....)

    1. Einen Zahlengenerator der z.B. 8 stellige Zahlen generiert, die als Quersumme z.B. 15 oder 30 ergeben
    2. Eine Funktion in Autoit, die dann die Quersumme errechnet (hier kommt vermutlich das Array zum Einsatz)
    3. Wenn die Quersumme passt, d.h. das Kind hat einen richtigen Code eingegeben (bekommt es 15 oder 30 Minuten extra Onlinezeit), dann soll dieser Code in eine ini Datei geschrieben werden (nicht schwer). Diese vielen Codes aus der ini Datei müssten dann aber bei Punkt 2 ausgelesen und verglichen werden, damit ein und der selbe Code nicht nochmals genommen wird

    Hat einer eine Idee, wie man das verwirklichen kann, bzw hat in die Richtung schon jemand was gemacht.

    Gruss Hassan

  • Msgbox: Return ID von gedrückter Schaltfläche ermitteln

    • HassanMullah
    • 11. Juli 2012 um 11:37

    @Alle: Vielen Dank, passt

    Raupi : Ich kann Deinen Unmut zwar nachvollziehen, aber in den 5 Jahren habe ich 181 Beiträge geschrieben, das sind aber nicht 181 verschiedene Themen. Bei Dir sind das 3525, also ein ganzer Satz mehr. Außerdem bin ich kein Programmierer, sondern betreibe Autoit rein Hobby mäßig, wenn ich mal Zeit habe. Bis vor kurzem hatte ich 1,5 Jahre gar nicht mit Autoit gemacht, d.h. da fängst Du wieder ganz von vorne an. Und falls das hier ein 2 Klassenforum ist, dann macht das bitte schon bei der Anmeldung deutlich. Manchmal sind nämlich so kurze und knackige Antworten wie von Bugfix um einiges hilfreicher, als einen Forum User so anzublöcken.

    Falls Du kein Bock hast, mir auf meine Fragen zu antworten, dann lass es einfach !!

  • Msgbox: Return ID von gedrückter Schaltfläche ermitteln

    • HassanMullah
    • 11. Juli 2012 um 09:59

    Hallo,

    in der Hilfe zu Msgbox steht:

    Success: Returns the ID of the button pressed.
    Failure: Returns -1 if the message box timed out.

    Die möglichen Rückgabe Werte stehen auch in der Hilfe, es steht aber nicht drin, wie ich diese Rückgabewerte abfrage, bzw. ermitteln kann. Zumindest habe ich es nicht gefunden.

    Was muss ich hier machen ?

    Beispiel:

    [autoit]

    MsgBox(262209, "Zur Information", "FYI")

    [/autoit]

    If "OK" dann ... ansonsten ....

    Gruss Hassan

  • Wert aus Funktion übergeben

    • HassanMullah
    • 9. Juli 2012 um 16:32

    :thumbup:

    Ihr seit SPITZE

  • Wert aus Funktion übergeben

    • HassanMullah
    • 9. Juli 2012 um 15:47

    Hallo $var,

    ich "denke doch", das ich die Parameter übergebe (vielleicht liege ich mit meiner Annahme auch falsch)

    [autoit]

    $var_inifile_lesen = _KCLIniLesen($var_inifile, $var_Benutzername, "Zeit")

    [/autoit]

    $var_inifile ist bei mir als globale Variable so definiert:

    [autoit]

    Global $var_inifile = @AppDataDir & "\KCL.ini"

    [/autoit]

    und $var_Benutzername ist auch als Globale Variable ohne Wert, da dieser ebenfalls in einer Function ermittelt wird.

    Der Parameter "Zeit" wird ja an die Function _KCLIniLesen fest übergeben.

    Die Consolenausgabe ist ja dann:

    Wert in der Funktion von Zeit ist: 15:41 => Consolenausgabe in der Funktion _KCLIniLesen
    Wert außerhalb der Funktion von Zeit ($var_inifile_lesen) ist: 0 => Consolenausgabe aus 2. Funktion, welche 1. Funktion _KCLIniLesen aufruft
    Wert außerhalb der Funktion von Zeit ($var_inifile_Zeit) ist: 0 => Consolenausgabe aus 2. Funktion, welche 1. Funktion _KCLIniLesen aufruft

    Ich brauche jetzt praktisch eine Beispielscript, welche mir die "Zeit" 15:41 Uhr in die 2. Funktion übermittelt.

    Ich war eigentlich der Annahme, das diese Zeit in der Variablen $var_inifile_lesen stehen würde. Da ich aus der INI verschiedene Werte auslese, wollte ich dann den Wert von $var_inifile_lesen in die Variable $var_inifile_Zeit schreiben.

    Aber das klappt irgendwie nicht.

    Wie gesagt, über Beispiele würde ich mich sehr freuen, da ich das dann leichter nachvollziehen kann.

    Gruss Hassan

  • Wert aus Funktion übergeben

    • HassanMullah
    • 9. Juli 2012 um 15:25

    Hallo zusammen,

    ich steh mal wieder auf dem Schlauch ?(

    Ich will in einer Funktion eine INI Datei auslesen und den Wert in einer 2. Funktion verwenden.

    Die Variable habe ich so definiert:

    [autoit]

    Global $var_inifile_lesen

    [/autoit]

    Die INI Datei

    Code
    [Username]
    Zeit=15:11
    Wochentag=Montag
    Status=offline
    Kontingent=30
    Countdown=1

    Die Funktion:

    [autoit]

    Func _KCLIniLesen($var_inifile, $var_Benutzername, $var_inifile_key)
    $var_inifile_lesen = IniRead($var_inifile, $var_Benutzername, $var_inifile_key, "(NULL)")
    ConsoleWrite("Wert in der Funktion von " & $var_inifile_key & " ist: " & $var_inifile_lesen & @CRLF)
    EndFunc ;==>_KCLIniLesen

    [/autoit]

    Aufruf aus 2. Funktion:

    2. Funktion, die 1. Funktion aufruft
    [autoit]

    Func _KCLWochentag(); Es wird der Wochentag ermittelt
    $var_ShortDayName = _DateDayOfWeek(@WDAY, 1); Kurzen englischen Wochentag ermitteln (mon,tue,wed,thu,fri,sat,sun)
    $var_WeekDay = $var_ShortDayName
    $var_inifile_lesen = _KCLIniLesen($var_inifile, $var_Benutzername, "Zeit")
    ConsoleWrite("Wert außerhalb der Funktion von Zeit ($var_inifile_lesen) ist: " & $var_inifile_lesen & @CRLF)
    $var_inifile_Zeit = $var_inifile_lesen
    ConsoleWrite("Wert außerhalb der Funktion von Zeit ($var_inifile_Zeit) ist: " & $var_inifile_Zeit & @CRLF)
    ;~ $var_inifile_lesen = _KCLIniLesen($var_inifile, $var_Benutzername, "Countdown")
    ;~ $var_inifile_Countdown = $var_inifile_lesen
    ;~ ConsoleWrite("Wert außerhalb der Funktion von Countdown ist: " & $var_inifile_Countdown & @CRLF)
    Select
    Case $var_WeekDay = "Mon"
    $var_Wochentag = "Montag"
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Wochentag", $var_Wochentag)
    If $var_inifile_Zeit >= "08:00" And $var_inifile_Zeit <= "19:00" Then
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "online")
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", "30")
    Else
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "offline")
    EndIf

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

    Case $var_WeekDay = "Tue"
    $var_Wochentag = "Dienstag"
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Wochentag", $var_Wochentag)
    If $var_inifile_Zeit >= "12:00" And $var_inifile_Zeit <= "19:00" Then
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "online")
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", "30")
    Else
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "offline")
    EndIf

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

    Case $var_WeekDay = "Wed"
    $var_Wochentag = "Mittwoch"
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Wochentag", $var_Wochentag)
    If $var_inifile_Zeit >= "12:00" And $var_inifile_Zeit <= "19:00" Then
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "online")
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", "30")
    Else
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "offline")
    EndIf

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

    Case $var_WeekDay = "Thu"
    $var_Wochentag = "Donnerstag"
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Wochentag", $var_Wochentag)
    If $var_inifile_Zeit >= "12:00" And $var_inifile_Zeit <= "19:00" Then
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "online")
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", "30")
    Else
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "offline")
    EndIf

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

    Case $var_WeekDay = "Fri"
    $var_Wochentag = "Freitag"
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Wochentag", $var_Wochentag)
    If $var_inifile_Zeit >= "12:00" And $var_inifile_Zeit <= "20:00" Then
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "online")
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", "45")
    Else
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "offline")
    EndIf

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

    Case $var_WeekDay = "Sat"
    $var_Wochentag = "Samstag"
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Wochentag", $var_Wochentag)
    If $var_inifile_Zeit >= "09:00" And $var_inifile_Zeit <= "21:00" Then
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "online")
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", "60")
    Else
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "offline")
    EndIf

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

    Case $var_WeekDay = "Sun"
    $var_Wochentag = "Sonntag"
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Wochentag", $var_Wochentag)
    If $var_inifile_Zeit >= "09:00" And $var_inifile_Zeit <= "19:00" Then
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "online")
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", "45")
    Else
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Status", "offline")
    EndIf
    EndSelect
    EndFunc ;==>_KCLWochentag

    [/autoit]

    Die Consolenausgabe:
    "Wert in der Funktion von Zeit ist: 15:11"
    "Wert außerhalb der Funktion von Zeit ($var_inifile_lesen) ist: 0
    Wert außerhalb der Funktion von Zeit ($var_inifile_Zeit) ist: 0"

    Wieso wird der Wert der Zeit nicht extern übergeben ?

    Gruss Hassan

  • Counter zählt nicht runter

    • HassanMullah
    • 9. Juli 2012 um 12:23

    Hallo Micha_he,

    das hatte ich ja selbst schon in die Lösung geschrieben (allerding weiss ich nicht, wo dieser optionale Text bei "gelöst" zu sehen ist.

    Ich habe aber immer noch ein kleines Problem

    Warum ist

    [autoit]

    If $var_onlinezeitcounter = ""

    [/autoit]

    gleich wie

    [autoit]

    If $var_onlinezeitcounter <= 0 Then

    [/autoit]

    Im oberen If soll eigentlich abgefragt werden, ob die Variable leer (null) ist, wenn ja, dann wird ein Startwert (30) übergeben
    Im unteren If soll abgefragt werden, ob der Wert kleiner oder gleich 0 ist. Wenn ja dann soll es den Wert auch behalten.

    Aber wenn die Abfrage mit if 0 erreicht ist, wird die 0 mit der oberen Abfrage wieder mit 30 befüllt.

    Das verstehe ich gerade überhaupt nicht.

  • Counter zählt nicht runter

    • HassanMullah
    • 9. Juli 2012 um 10:55

    Guten Morgen,

    kann mir bitte mal einer sagen, warum meine Funktion nicht runterzählt ?

    [autoit]

    Func _KCLCountDown(); Countdown der Onlinezeit
    Local $var_onlinezeitcounter
    ConsoleWrite("1. Abschnitt: Onlinezeit: " & $var_onlinezeit & " - Onlinecounter: " & $var_onlinezeitcounter & @CRLF)
    If $var_onlinezeitcounter = "" Then $var_onlinezeitcounter = $var_onlinezeit
    ConsoleWrite("2. Abschnitt: Onlinezeit: " & $var_onlinezeit & " - Onlinecounter: " & $var_onlinezeitcounter & @CRLF)
    $var_onlinezeitcounter = $var_onlinezeitcounter - 1; Counter zählt 1 Rückwärts
    ConsoleWrite("3. Abschnitt: Onlinezeit: " & $var_onlinezeit & " - Onlinecounter: " & $var_onlinezeitcounter & @CRLF)
    GUICtrlSetData($GUI_Group_Info_Text, "Hallo " & $var_Benutzername & ", heute ist " & $var_Wochentag & ", es ist jetzt " & $var_AktuelleZeit & " Uhr, und Du kannst heute noch " & $var_onlinezeitcounter & " Minuten am Computer verbringen."); Beschreibungstext
    GUISetState(); GUI wird aktualisiert
    If $var_onlinezeitcounter = -1 Then
    $var_onlinezeitcounter = 00
    GUICtrlSetData($GUI_Group_Info_Text, "Hallo " & $var_Benutzername & ", heute ist " & $var_Wochentag & " und es ist jetzt " & $var_AktuelleZeit & " Uhr, Du liegst als außerhalb Deiner Computerzeiten"); Beschreibungstext
    GUICtrlSetBkColor($GUI_Group_Info_Text, 0x7FF0000); Hintergrundfarbe rot, d.h. außerhalb der Onlinezeiten
    GUISetState(); GUI wird aktualisiert
    EndIf
    EndFunc ;==>_KCLCountDown

    [/autoit]

    Die Globale Variable $var_onlinezeit wird in einer anderen Funktion befühlt, wir gehen hier mal vom Wert 30 Minuten aus. Nach einer Minute ist dann der Wert der Variablen $var_onlinezeitcounter auf 29, was OK ist.
    Ab dem 2. Durchlauf bleibt der Wert aber auf 29, obwohl ich doch in Zeile 6

    [autoit]

    $var_onlinezeitcounter = $var_onlinezeitcounter - 1; Counter zählt 1 Rückwärts

    [/autoit]

    stehen habe. Es sieht für mich aus, als ob Autoit hier den Wert der Variablen $var_onlinezeitcounter löscht.

    Was mache ich hier falsch ?

    Gruss Hassan

    P.S. Die Funktion wird mit AdlibRegister jede Minute aufgerufen

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™