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
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
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 ?
#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
$var_sz_link1 = 60
$var_sz_link2 = 140
$var_sz_link3 = 200
$var_sz_link4 = 260
$var_f_link1 = 400
$var_f_link2 = 480
$var_f_link3 = 540
$var_f_link4 = 600
$var_labellaengeInput = 45
$var_labellaengeLabel = 60
$var_spaltendifferenz1 = 30
$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
$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
$var_startzeit_f = "07:00"
$var_endzeit_f = "23:30"
$var_maxzeit_f = 60
$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)
$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)
$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
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)
$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)
$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)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 16, 17, 17)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
EndFunc ;==>_Admin
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Gruss Hassan
ich Depp
Hab mich von den 250 Millisekunden Pollzeit ablenken lassen. Wer lesen kann ist klar im Vorteil
Vielen Dank
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.
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
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
Hallo AspirinJunkie,
Danke für die Antwort. Ich habe meinen Fehler gefunden, jedoch habe ich jetzt noch folgendes Problem (anbei nochmals der überarbeitete Code)
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
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
In Zeile 16 wird der Inhalt des Array ja angezeigt, nach dem Schema
Ich will das Ganze in einer Variablen haben, in der aber nur
steht.
Geht das mit einfachen Hausmitteln, oder muss hier der String nochmals bearbeitet werden ?
P.S. Habe es selbst gefunden ![]()
Local $myemailsubjekt = _ArrayToString($aArray1)
MsgBox(0, "Betreff ist: ", $myemailsubjekt)
Gruss Hassan
Servus,
sorry das ich mich erst jetzt wieder melde, hatte ein paar Tage leider keine Zeit.
Bin etwas verzweifelt. Hier mal ein wenig Code
_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
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
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
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:
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
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
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
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
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
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
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
@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 !!
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
![]()
Ihr seit SPITZE
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
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
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
Aufruf aus 2. Funktion:
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
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
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
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
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
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
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
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
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.
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
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
$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