[Frage] If...Then...Endif

12/10/2010 12:24 RettAss#1
Hallo,

Hab da ein problem und zwar will ich das sich ne msgbox öffnet wenn eine gewisse uhrzeit und datum erreicht ist, die in einer listbox stehen:

PHP Code:
        $_hb_date1 GUICtrlRead($lbl_date)
    
$_fw_date1 GUICtrlRead($lb_fw_date)
    
$_fw_time1 GUICtrlRead($lb_fw_time
    
$_hb_time1 GUICtrlread($lbl_uhrzeit)
                    
    If 
$_hb_time1 $_hb_date1 $_fw_time1 $_fw_date1  Then
                MsgBox
(64,"","Test")
                Endif 
$lbl_Uhrzeit ist meine systemzeit die in meiner GUI läufti
$lb_fw_time st keine festgelegte uhrzeit sondern kann auch geändert werden
$lbl_datum ist das aktuelle datum, das ich auf der GUI stehen hab
$lb_fw_date ist kein festgelegtes datum sondern kann auch geändert werden

klappt nur nicht so wie es soll

(MsgBox ist nur zum test, später soll sich an der stelle eine progressbar öffnen, wenn das if...then klappt, nur so am rande)


Mfg
12/10/2010 13:01 ZeraPain#2
in autoit nimmt man statt && das wort and bei if anweisungen
12/10/2010 13:27 RettAss#3
Quote:
Originally Posted by ZeraPain View Post
in autoit nimmt man statt && das wort and bei if anweisungen
ok danke, gut zu wissen, aber es funktioniert trotzdem noch nicht.
12/10/2010 13:34 ZeraPain#4
naja es kommt darauf an wie deine datums- und zeitlabel aussehen.

wenn lb_fw_date und lb_fw_time festgelegte zeitpunkte sind, bei denen etwas passieren soll, dann könntest du es so machen:

Code:
If GUICtrlRead($lb_fw_date) = @MDAY & "." & @MON & "." & @YEAR & "." And GUICtrlRead($lb_fw_time) = @HOUR & ":" & @MIN Then
	MsgBox(0,0,0)
EndIf
müsstest mal ein beispiel schreiben was in deinen labels steht ;-)

andernfalls, wenn du deine systemzeit auch immer updatest und beide das gleiche format haben würde es so aussehen:

Code:
If GUICtrlRead($lbl_date) = GUICtrlRead($lb_fw_date) And GUICtrlread($lbl_uhrzeit) = GUICtrlRead($lb_fw_time) Then
	MsgBox(0,0,0)
EndIf
12/10/2010 13:44 RettAss#5
Quote:
Originally Posted by ZeraPain View Post
naja es kommt darauf an wie deine datums- und zeitlabel aussehen.

wenn lb_fw_date und lb_fw_time festgelegte zeitpunkte sind, bei denen etwas passieren soll, dann könntest du es so machen:

Code:
If GUICtrlRead($lb_fw_date) = @MDAY & "." & @MON & "." & @YEAR & "." And GUICtrlRead($lb_fw_time) = @HOUR & ":" & @MIN Then
	MsgBox(0,0,0)
EndIf
müsstest mal ein beispiel schreiben was in deinen labels steht ;-)

andernfalls, wenn du deine systemzeit auch immer updatest und beide das gleiche format haben würde es so aussehen:

Code:
If GUICtrlRead($lbl_date) = GUICtrlRead($lb_fw_date) And GUICtrlread($lbl_uhrzeit) = GUICtrlRead($lb_fw_time) Then
	MsgBox(0,0,0)
EndIf
Datum: 10.12.2010
Uhrzeit: 13:38:20 (wird geupdatet mit Adlibregister)

Sind beides Label

PHP Code:
While 1
    $msg 
GUIGetMsg(1)
    Switch 
$msg[1]
        Case 
$Settings
            
Switch $msg[0]
                Case  -
3
                    
Exit
Case 
$Start
GUICtrlsetdata
($lbl_datum_NowDate())
AdlibRegister("_NowTime1",500)

EndSwitch

Wend

Func _NowTime1
()
    
GUICtrlsetdata($lbl_uhrzeit_NowTime(5))
    
Endfunc 
werde mal das 2. Bsp. eben probieren
12/10/2010 13:57 RettAss#6
Hmm hat nicht funktioniert :(

$lb_fw_time und $lb_fw_date werden vom entgültigen nutzer des programms erstellt, also sind nicht immer gleich

$lbl_uhrzeit und $lbl_datum ändern sich auch (zeit ändert sich jede sek. und datum eben alle 24h)

(sry für doppelpost)
12/10/2010 14:11 mipez#7
Date.au3 ist doch klasse oô

Code:
#include <Date.au3>

$box = InputBox("","Example: 1.2.1999")

$timesys = _Date_Time_GetSystemTime()
$get = _Date_Time_SystemTimeToArray($timesys)

;    [0] - Month
;    [1] - Day
;    [2] - Year
;    [3] - Hour
;    [4] - Minutes
;    [5] - Seconds
;    [6] - Milliseconds
;    [7] - Day of week

$datesys = String($get[1] & "." & $get[0] & "." & $get[2])

If $box = $datesys Then
	MsgBox(0,"","Success")
Else
	MsgBox(0,"","Wrong date")
EndIf
12/10/2010 14:45 RettAss#8
Quote:
Originally Posted by mipez View Post
Date.au3 ist doch klasse oô

Code:
#include <Date.au3>

$box = InputBox("","Example: 1.2.1999")

$timesys = _Date_Time_GetSystemTime()
$get = _Date_Time_SystemTimeToArray($timesys)

;    [0] - Month
;    [1] - Day
;    [2] - Year
;    [3] - Hour
;    [4] - Minutes
;    [5] - Seconds
;    [6] - Milliseconds
;    [7] - Day of week

$datesys = String($get[1] & "." & $get[0] & "." & $get[2])

If $box = $datesys Then
	MsgBox(0,"","Success")
Else
	MsgBox(0,"","Wrong date")
EndIf
Versteh ich jetzt net so ganz, zeit und datum dazustelln, das hab ich ja, mein problem ist, das wenn datum und uhrzeit ein gewissen (wert, der nicht festgelegt ist) erreichen, soll sich ne msgbox öffnen. siehe post1. Mit dem Script kann ich grad gar nix anfangen. Trotzdem danke für die mühe
12/10/2010 15:13 RettAss#9
Quote:
Originally Posted by ZeraPain View Post

Code:
If GUICtrlRead($lbl_date) = GUICtrlRead($lb_fw_date) And GUICtrlread($lbl_uhrzeit) = GUICtrlRead($lb_fw_time) Then
	MsgBox(0,0,0)
EndIf
Ok Astrein so hats geklappt, hatte es nur unter dem falschen EndSwitsch stehen, da ich 2 GUIs im script hab, vielen dank für die Hilfe :handsdown:


€dit: Eine Frage hätt ich da grad noch zur Progressbar, kann man ner progressbar sagen wie lange sie laufen soll??? Also z.b. 30min. angeben und dann läuft die 30min. von 0-100%??? hab unter google grad nix sinnvolles gefunden.
12/19/2010 00:00 .Infinite#10
PHP Code:
$sekunden=1800 eine Halbe Stunde

For $i=1 To $sekunden
    Sleep
(1000)
    
ProgressSet($i)
Next 
So vielleicht?
12/19/2010 01:23 ZeraPain#11
wohl nicht.

1. sollte man progressset dabei nicht verwenden
2. nach 100 sekunden wärst du bei 100%
3. passt das wohl nicht in sein script rein
12/19/2010 11:43 .Infinite#12
Quote:
sollte man progressset dabei nicht verwenden
- Warum denn nicht? Ist doch einfacher als immer mit GuiCtrlSetData()

Quote:
nach 100 sekunden wärst du bei 100%
- Schreib halt ProgressSet($i/$sekunden*100) dann klappts....

Quote:
passt das wohl nicht in sein script rein
- Ist doch genau das, was er wollte, oder? Ich weiß auch nicht, warum er ne Progressbar von der Zeit abhängig macht und nicht von einem bestimmten Vorgang, aber das ist ja sein Sache...
12/19/2010 12:51 ZeraPain#13
guicrtlsetdata ist sinnvoller, da man dabei das handle angeben kann.
wenn du den ersten post gelesen hättest, dann wüsstest du was er machen will und dass eine for schleife da nicht passend ist. (außerdem eher ungenau)
12/19/2010 13:50 .Infinite#14
Quote:
guicrtlsetdata ist sinnvoller, da man dabei das handle angeben kann.
- Wenn man nur eine Progressbar hat, isses aber einfacher...

Quote:
wenn du den ersten post gelesen hättest[...]
- Den habe ich sehr wohl gelsesen. Allerdings bezog sich meine Antwort auf Post #9:
Quote:
Eine Frage hätt ich da grad noch zur Progressbar, kann man ner progressbar sagen wie lange sie laufen soll??? Also z.b. 30min. angeben und dann läuft die 30min. von 0-100%??? hab unter google grad nix sinnvolles gefunden.
Quote:
außerdem eher ungenau
- Ist Genauigkeit bei einer Progressbar, die sowieso nur 100 Balken hat denn wichtig? ;)

Btw: Quotes FTW! :D