HaNdLoRdz Posted November 28, 2010 Share Posted November 28, 2010 hmm.,.,sorry im newbie here..want to askin something..can i read data from GUICtrlRead($input1) to be minutes in timer???example:when i put 5 in my inputbox ,so program will read the data is "5" then they will convert it to Minutes (in case its 5 min / 300 sec)anyone can help me out????thx for helpin me out.. Link to comment Share on other sites More sharing options...
Developers Jos Posted November 28, 2010 Developers Share Posted November 28, 2010 hmm.,.,sorry im newbie here..want to askin something..can i read data from GUICtrlRead($input1) to be minutes in timer???example:when i put 5 in my inputbox ,so program will read the data is "5" then they will convert it to Minutes (in case its 5 min / 300 sec)anyone can help me out????thx for helpin me out..Yes you can. show us what you have and what is going wrong because what you described sound pretty close and only needs to be coded.Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
HaNdLoRdz Posted November 28, 2010 Author Share Posted November 28, 2010 (edited) expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Constants.au3> Opt("TrayOnEventMode", 1) ;Opt("GUIOnEventMode", 1) #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("V.1.1", 237, 335, 192, 114) GUISetOnEvent($GUI_EVENT_CLOSE, "_Quit") $Label1 = GUICtrlCreateLabel("Time : ", 8, 56, 36, 17) $Label2 = GUICtrlCreateLabel("Post : ", 8, 98, 34, 17) $input1 = GUICtrlCreateInput("", 48, 52, 41, 21) guictrlsetstate($input1,$GUI_DISABLE) $input2 = GUICtrlCreateInput("", 48, 95, 41, 21) guictrlsetstate($input2,$GUI_DISABLE) $Label3 = GUICtrlCreateLabel("Minute", 93, 56, 36, 17) $Label4 = GUICtrlCreateLabel("Post", 93, 100, 36, 17) $Label9 = GUICtrlCreateLabel("The Number is = ", 10, 320, 200, 27) $Settings = GUICtrlCreateGroup("Settings : ", 0, 32, 137, 89, -1, $WS_EX_TRANSPARENT) GUICtrlCreateGroup("", -99, -99, 1, 1) $OR = GUICtrlCreateLabel("OR", 58, 76, 22, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") ;;; radio $Radio1 = GUICtrlCreateRadio("By Time", 0, 8, 57, 17) $Radio2 = GUICtrlCreateRadio("By Post", 80, 8, 57, 17) ;;TOMBOL start $Button1 = GUICtrlCreateButton("START", 4, 128, 129, 17) ;;tombol stop $Button2 = GUICtrlCreateButton("STOP", 4, 152, 129, 17) ;tombol hide $Button3 = GUICtrlCreateButton("Hide To Tray", 4, 176, 129, 17) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() if $nmsg = -3 then Exit if $nmsg = $Radio1 then time() if $nmsg = $Radio2 then post() if $nmsg = $Button1 then Start() WEnd func Start() If GUICtrlRead($input1) <> "" Then bytime() sleep(20) If GUICtrlRead($input2) <> "" Then bypost() EndFunc func bytime() msgbox(0,"","show message bytime : ") endfunc func bypost() msgbox(0,"","show message bypost: ") endfunc func post() GUICtrlSetState($input2,$GUI_ENABLE) guictrlsetstate($input1,$GUI_DISABLE) EndFunc func time() GUICtrlSetState($input1,$GUI_ENABLE) guictrlsetstate($input2,$GUI_DISABLE) EndFunc func _quit() Exit EndFunc there's the code... in my mind i just want to read Inputbox1 n then looping it with delay whose get from what i write in Inputbox1.. ex: when i write "5", the script will do the job until 5 minute later and then Stop... thx for ur help Edited November 28, 2010 by HaNdLoRdz Link to comment Share on other sites More sharing options...
Developers Jos Posted November 28, 2010 Developers Share Posted November 28, 2010 there's the code...in my mind i just want to read Inputbox1 n then looping it with delay whose get from what i write in Inputbox1..ex: when i write "5", the script will do the job until 5 minute later and then Stop...thx for ur helpSo, you got most of it figured out and all you need to do is translate it into some code.Look at TimerInit() and and Loop until TimerDiff() is greater or equal to GUICtrlRead($input1)*1000. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Realm Posted November 28, 2010 Share Posted November 28, 2010 Hello HaNdLoRdz, There are a few different ways to achieve what you ask, Try this simple approach: While 1 $nMsg = GUIGetMsg() if $nmsg = -3 then Exit if $nmsg = $Radio1 then time() if $nmsg = $Radio2 then post() if $nmsg = $Button1 then Start() if $nmsg = $input1 Then $mins_to_pause = GUICtrlRead($input1) ;reads the value inputed $time_to_pause = ($mins_to_pause*60000) ;converts mins into milleseconds Sleep($time_to_pause) EndIf WEnd Realm My Contributions: Unix Timestamp: Calculate Unix time, or seconds since Epoch, accounting for your local timezone and daylight savings time. RegEdit Jumper: A Small & Simple interface based on Yashied's Reg Jumper Function, for searching Hives in your registry. Link to comment Share on other sites More sharing options...
HaNdLoRdz Posted November 28, 2010 Author Share Posted November 28, 2010 Hello HaNdLoRdz, There are a few different ways to achieve what you ask, Try this simple approach: While 1 $nMsg = GUIGetMsg() if $nmsg = -3 then Exit if $nmsg = $Radio1 then time() if $nmsg = $Radio2 then post() if $nmsg = $Button1 then Start() if $nmsg = $input1 Then $mins_to_pause = GUICtrlRead($input1) ;reads the value inputed $time_to_pause = ($mins_to_pause*60000) ;converts mins into milleseconds Sleep($time_to_pause) EndIf WEnd Realm hmm thx for help bro, but i mean,not for sleep in "some" time, but to running the looping in a time...i.e: running the code in "X" minutes <--where "X" is i got from read from Inputbox. sorry for my bad english..n thx 4 d help Link to comment Share on other sites More sharing options...
SadBunny Posted November 28, 2010 Share Posted November 28, 2010 hmm thx for help bro, but i mean,not for sleep in "some" time, but to running the looping in a time...i.e: running the code in "X" minutes <--where "X" is i got from read from Inputbox. sorry for my bad english..n thx 4 d help You should look at Jos' suggestion... TimerInit and TimerDiff can help you with that. If you want something to loop for 10 seconds, you could try something like: $TimerInitStamp = TimerInit() $counter = 0 While 1 $counter += 1 ConsoleWrite("Still looping! Nr: "&$counter&@CRLF) Sleep(100) ; Now the magic: use TimerDiff to see how much time (milliseconds!) has passed since the TimerInit on top of the script If TimerDiff($TimerInitStamp) > 10000 Then ExitLoop ; if timer difference was greater than 10000 milliseconds (10 seconds) then the While loop is exited and script continues below WEnd WEnd MsgBox(64,"test","All done looping!") Roses are FF0000, violets are 0000FF... All my base are belong to you. Link to comment Share on other sites More sharing options...
HaNdLoRdz Posted November 28, 2010 Author Share Posted November 28, 2010 You should look at Jos' suggestion... TimerInit and TimerDiff can help you with that. If you want something to loop for 10 seconds, you could try something like: $TimerInitStamp = TimerInit() $counter = 0 While 1 $counter += 1 ConsoleWrite("Still looping! Nr: "&$counter&@CRLF) Sleep(100) ; Now the magic: use TimerDiff to see how much time (milliseconds!) has passed since the TimerInit on top of the script If TimerDiff($TimerInitStamp) > 10000 Then ExitLoop ; if timer difference was greater than 10000 milliseconds (10 seconds) then the While loop is exited and script continues below WEnd WEnd MsgBox(64,"test","All done looping!") thx sadbunny for u n Jos suggested... but the problem is...im too newbie here...lol n i cant mix in my code T_T too complicated for newbie like me.,., coz im still learning too run it clearly... Link to comment Share on other sites More sharing options...
SadBunny Posted November 28, 2010 Share Posted November 28, 2010 thx sadbunny for u n Jos suggested...but the problem is...im too newbie here...lol n i cant mix in my code T_T too complicated for newbie like me.,.,coz im still learning too run it clearly...If you wrote that code you posted yourself, you should be able to put this in here... Try doing $stamp = TimerInit() as soon as you start the job, and exit the job again when TimerDiff($stamp) ( = the difference in milliseconds between "Now" and the timestamp stored in $stamp) is greater than the number of milliseconds you want the job to last. That amount you can calculate using the content of that control, which you can read with GuiCtrlRead(). Roses are FF0000, violets are 0000FF... All my base are belong to you. Link to comment Share on other sites More sharing options...
HaNdLoRdz Posted November 28, 2010 Author Share Posted November 28, 2010 (edited) example code like i want in my mind (reading inputbox n convert to Second) : While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $Read1 = GUICtrlRead($Input1) $iTimer = TimerInit() $iSec = -1 $iSecLast = -1 Do $iSec = Int(TimerDiff($iTimer)/1000) If $iSec <> $iSecLast Then $iSecLast = $iSec GUICtrlSetData($Input2,$iSec) EndIf Until $iSec = $Read1 Or GUIGetMsg() = $Button2 EndSwitch WEnd how i change or convert it to my code???? expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Constants.au3> Global $PAUSE HotKeySet("{PAUSE}", "Pause") #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("V.1.1", 137, 335, 192, 114) GUISetOnEvent($GUI_EVENT_CLOSE, "_Quit") $Label1 = GUICtrlCreateLabel("Time : ", 8, 56, 36, 17) $Label2 = GUICtrlCreateLabel("Post : ", 8, 98, 34, 17) $input1 = GUICtrlCreateInput("", 48, 52, 41, 21) guictrlsetstate($input1,$GUI_DISABLE) $input2 = GUICtrlCreateInput("", 48, 95, 41, 21) guictrlsetstate($input2,$GUI_DISABLE) $Label3 = GUICtrlCreateLabel("Minute", 93, 56, 36, 17) $Label4 = GUICtrlCreateLabel("Post", 93, 100, 36, 17) $Label9 = GUICtrlCreateLabel("Waiting . . . ", 10, 320, 200, 27) $Settings = GUICtrlCreateGroup("Settings : ", 0, 32, 137, 89, -1, $WS_EX_TRANSPARENT) GUICtrlCreateGroup("", -99, -99, 1, 1) $OR = GUICtrlCreateLabel("OR", 58, 76, 22, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") ;;; radio $Radio1 = GUICtrlCreateRadio("By Time", 0, 8, 57, 17) $Radio2 = GUICtrlCreateRadio("By Post", 80, 8, 57, 17) ;;TOMBOL start $Button1 = GUICtrlCreateButton("START", 4, 128, 129, 17) GUICtrlSetOnEvent($Button1, "Start") ;;tombol stop $Label5 = GUICtrlCreateLabel("---------", 4, 152, 129, 17) GUICtrlSetOnEvent($Label5, "Pause") GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFF0000) ;tombol hide $Button3 = GUICtrlCreateButton("Pause IT", 4, 176, 129, 17) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() switch $nmsg case $GUI_EVENT_CLOSE Exit ;if $nmsg = -3 then Exit case $radio1 time() case $radio2 post() case $Button1 Start() ;Case $Input1 EndSwitch WEnd Func Start() sleep(20) If GUICtrlRead($input1) <> "" Then bytime() sleep(20) If GUICtrlRead($input2) <> "" Then bypost() EndFunc func bytime() Do ;;code looping job here ;sleep(2000);;;;<----sleep Until $iSec = $Read1 Or GUIGetMsg() = Button3 ;;;;; i think the code is here to do in "X" sec???????????????? EndFunc Edited November 28, 2010 by HaNdLoRdz Link to comment Share on other sites More sharing options...
SadBunny Posted November 28, 2010 Share Posted November 28, 2010 func bytime() Do ;;code looping job here ;sleep(2000);;;;<----sleep Until $iSec = $Read1 Or GUIGetMsg() = Button3 ;;;;; i think the code is here to do in "X" sec???????????????? EndFunc Try a loop like this: Func bytime() $stamp = TimerInit() $minutesToWait = GUICtrlRead($input1) $msecToWait = $minutesToWait * 60 * 1000 ; minutes * 60 -> seconds, * 1000 -> msec Do ;;code looping job here Until $iSec = $Read1 Or GUIGetMsg() = Button3 Or TimerDiff($stamp) >= $msecToWait EndFunc ;==>bytime Roses are FF0000, violets are 0000FF... All my base are belong to you. Link to comment Share on other sites More sharing options...
HaNdLoRdz Posted November 29, 2010 Author Share Posted November 29, 2010 Try a loop like this: Func bytime() $stamp = TimerInit() $minutesToWait = GUICtrlRead($input1) $msecToWait = $minutesToWait * 60 * 1000 ; minutes * 60 -> seconds, * 1000 -> msec Do ;;code looping job here Until $iSec = TimerDiff($stamp) >= $msecToWait ; Or GUIGetMsg() = Button3 Or TimerDiff($stamp) >= $msecToWait EndFunc ;==>bytime thx for the help Sadbunny hmm...i try it..but...the looping still running even the time that i was giving was end... how to stop the looping??? Link to comment Share on other sites More sharing options...
SadBunny Posted November 30, 2010 Share Posted November 30, 2010 thx for the help Sadbunny hmm...i try it..but...the looping still running even the time that i was giving was end... how to stop the looping??? Works perfectly fine for me, once I correct the Until line to Until TimerDiff($stamp) >= $msecToWait : bytime() Exit Func bytime() $stamp = TimerInit() $minutesToWait = 1 $msecToWait = $minutesToWait * 60 * 1000 ; minutes * 60 -> seconds, * 1000 -> msec Do Sleep(50) Until TimerDiff($stamp) >= $msecToWait EndFunc ;==>bytime I hardcoded the $minutesToWait to 1 for testing purposes. If this hardcoding test works for you too, then the problem is probably in the data you read from that control. Roses are FF0000, violets are 0000FF... All my base are belong to you. Link to comment Share on other sites More sharing options...
HaNdLoRdz Posted November 30, 2010 Author Share Posted November 30, 2010 oh ok SadBunny...thx for help.,.,its done now..hehehe..thx alot Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now