Jump to content

Making a Statement Run Once Every Few Hours


Go to solution Solved by MikahS,

Recommended Posts

Hey all,

So I'm making a quick and dirty monitoring software that will e-mail me every 2 hours (all it's doing is grabbing some network traffic information).  My question is, since I want to send this email once every 2 or so hours (with an attached log) how could I make it so it doesn't spam my email when the time comes.  Here is a little tidbit of what I currently have

If @Min = 15 Then
Call ("emailMe")
EndFunc

Every tie the clock hits minute 15 i get utterly spammed with emails because the statement is true.  How could I make it where the statement is almost getting "Turned Off" until the statement is no longer true, so in this case, it will only send me an email once per hour?

Link to comment
Share on other sites

so you want the call statement to go every 2 hours? or every hour on the 15 tick?

Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4

Feel free to use any of my code for your own use.                                                                                                                                                           Forum FAQ

 

Link to comment
Share on other sites

so you want the call statement to go every 2 hours? or every hour on the 15 tick?

It doesn't really matter too much, all I need to know is how to only make it run once instead of every time the statement is true.  Right now, the program is:

Checking if the statement is true (lets say it is)

sends me an email

Checking if the statement is true (lets say it is)

sends me an email

Checking if the statement is true (lets say it is)

sends me an email

Checking if the statement is true (lets say it is)

sends me an email

 
this is happening in the matter of seconds, so I'm getting email spammed by my program.  I only want it to check if the statement is true once then almost turning off the statement until it isnt true anymore, so in that case it will:
 

Checking if the statement is true (lets say it is)

sends me an email

TURNS OFF STATEMENT

Checking if the statement is true (lets say it is)

Doesnt send email because the statement says to not send anymore emails

Checking if the statement is true (lets say it is)

Doesnt send email because the statement says to not send anymore emails

Checking if the statement is true (lets say it is)

Doesnt send email because the statement says to not send anymore emails

Checking if the statement is true (lets say it is)

Doesnt send email because the statement says to not send anymore emails

The minute changes

The statement is turned back on

repeat this

 

I know "turning off" isnt the right term, but that is sort of what I'm looking for.

Link to comment
Share on other sites

; Wait until it is 15 minutes past the hour
While 1
    If @Min = 15 Then ExitLoop
    Sleep(60 * 1000) ; wait a minute
WEnd
; Create mail every hour
While 1
    ; create mail here
    Sleep(60 * 60 * 1000) ; Wait an hour
WEnd

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

; Wait until it is 15 minutes past the hour
While 1
    If @Min = 15 Then ExitLoop
    Sleep(60 * 1000) ; wait a minute
WEnd
; Create mail every hour
While 1
    ; create mail here
    Sleep(60 * 60 * 1000) ; Wait an hour
WEnd

Thanks for your help, I should have been more specific.

Sleep wouldn't quite work because the script itself still needs to be running (I still want to log traffic, if it's sleeping I can;t do that).

Errmmm..  Perhaps just making a separate script would be easier.

Link to comment
Share on other sites

  • Solution

why not just

$time = 3600000 ;<--- 1 hour
 
AdlibRegister("fTime", $time)
 
While 1
WEnd

Func fTime()
    Call("emailMe")
EndFunc

Edit: this will run the function every hour and not make the script stop for any reason.

Edited by MikahS

Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4

Feel free to use any of my code for your own use.                                                                                                                                                           Forum FAQ

 

Link to comment
Share on other sites

All

AdlibRegister

does is call a function every x milliseconds; essentially with an empty while loop this script will run indefinitely while calling

fTime()

every 1 hour.

Edited by MikahS

Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4

Feel free to use any of my code for your own use.                                                                                                                                                           Forum FAQ

 

Link to comment
Share on other sites

  • Moderators

Or simply create your script and use Windows' built in scheduler rather than reinventing the wheel.

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Link to comment
Share on other sites

 

All

AdlibRegister
does it call a function every x milliseconds; essentially with an empty while loop this script will run indefinitely while calling
fTime()
every 1 hour.

 

That would have been my choice.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Mine too ;)

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

@Spikeedoodles glad to help :)

Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4

Feel free to use any of my code for your own use.                                                                                                                                                           Forum FAQ

 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...