Jump to content
Sign in to follow this  
Coolw

Help combining two .au3 files to work as one.

Recommended Posts

Coolw

Ok, here is my dilemma, I have a server checker, for a game, and i want the program to send emails, based on the status of the server.

Here is the server checker:

CODE
#include <GUIConstants.au3>

#Include <Timers.au3>

;--------------------------------------------------------------------------------

HotKeySet( "{ESC}", "_Exit") ;Escape!

;--------------------------------------------------------------------------------

$State = "Stopped" ;Is the program is monitoring the server?

$msg = ""

;--------------------------------------------------------------------------------

GUICreate( "Server Watcher - By David L.", 205, 110) ;Created the GUI

$Monitor = Guictrlcreatebutton( "Start Monitoring", 10, 10)

$Stop = GUICtrlCreateButton( "Stop Monitoring", 110, 10)

$Label = GUICtrlCreateLabel( $State, 10, 50)

$SMS = GUICtrlCreateCheckbox( "Send Text Message with",10, 70)

$SMS2 = GUICtrlCreateLabel("server change in status?",27, 90)

Guisetstate() ;Set the GUI information

;--------------------------------------------------------------------------------

While $msg <> $GUI_EVENT_CLOSE ;Test to see if they tried to hit the X

$msg = GUIGetMsg()

Select

Case $msg = $Monitor ;They hit the monitor button

$State = "Monitoring"

GUICtrlSetData( $Label, $State)

Case $msg = $Stop ;They want to stop monitoring

GUICtrlSetData( $Label, $State)

$State = "Stopped"

Case $msg = $GUI_EVENT_CLOSE ;Exited using X

Exit

EndSelect

If $State = "Monitoring" Then ;Check to see if program should monitor

GUICtrlSetData( $Label, $State) ;Change the label telling them what the program is doing

$starttime = _Timer_Init()

While $State = "Monitoring" ;A loop to wait until they Stop or Exit

If _Timer_Diff($starttime) >= 30000 Then

If WinExists( "Application Error") Then ;Check every 30 seconds to see if window exists

;_RestartServer() ;lets restart the server

$inputsms=GUICtrlRead($SMS)

If $inputsms = $GUI_CHECKED Then

;_SendSMS ;If enabled, send email to users phone to tell them the status

EndIf

EndIf

$starttime = _Timer_Init()

EndIf

$msg = GUIGetMsg()

;GUICtrlSetData($Label, _Timer_Diff($starttime))

Select

Case $msg = $Stop ;Hit stop

$State = "Stopped"

GUICtrlSetData( $Label, $State)

Case $msg = $GUI_EVENT_CLOSE ;Exited

Exit

EndSelect

WEnd

GUICtrlSetState($Monitor, $GUI_ENABLE)

EndIf

WEnd

;--------------------------------------------------------------------------------

Func _Exit()

Exit

EndFunc

and here is the email, which I know works, because I have tried it:

CODE
#Include<file.au3>

Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

$s_SmtpServer = "smtp.gmail.com" ; address for the smtp-server to use - REQUIRED

$s_FromName = "Wut" ; name from who the email was sent

$s_FromAddress = "myserver@test.com" ; address from where the mail should come

$s_ToAddress = "bunkerdude103@gmail.com" ; destination address of the email - REQUIRED

$s_Subject = "Test" ; subject from the email - can be anything you want it to be

$as_Body = "This is a test email" ; the messagebody from the mail - can be left blank but then you get a blank mail

$s_AttachFiles = "" ; the file you want to attach- leave blank if not needed

$s_CcAddress = "" ; address for cc - leave blank if not needed

$s_BccAddress = "" ; address for bcc - leave blank if not needed

$s_Username = "bunkerdude103@gmail.com" ; username for the account used from where the mail gets sent - Optional (Needed for eg GMail)

$s_Password = "***********" ; password for the account used from where the mail gets sent - Optional (Needed for eg GMail)

;$IPPort = 25 ; port used for sending the mail

;$ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS

$IPPort=465 ; GMAIL port used for sending the mail

$ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

;##################################

; Script

;##################################

Global $oMyRet[2]

Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

$rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)

If @error Then

MsgBox(0, "Error sending message", "Error code:" & @error & " Rc:" & $rc)

EndIf

;

Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0)

$objEmail = ObjCreate("CDO.Message")

$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'

$objEmail.To = $s_ToAddress

Local $i_Error = 0

Local $i_Error_desciption = ""

If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress

If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress

$objEmail.Subject = $s_Subject

If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then

$objEmail.HTMLBody = $as_Body

Else

$objEmail.Textbody = $as_Body & @CRLF

EndIf

If $s_AttachFiles <> "" Then

Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")

For $x = 1 To $S_Files2Attach[0]

$S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])

If FileExists($S_Files2Attach[$x]) Then

$objEmail.AddAttachment ($S_Files2Attach[$x])

Else

$i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]

SetError(1)

return 0

EndIf

Next

EndIf

$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer

$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort

;Authenticated SMTP

If $s_Username <> "" Then

$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username

$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password

EndIf

If $Ssl Then

$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True

EndIf

;Update settings

$objEmail.Configuration.Fields.Update

; Sent the Message

$objEmail.Send

if @error then

SetError(2)

return $oMyRet[1]

EndIf

EndFunc;==>_INetSmtpMailCom

;

;

; Com Error Handler

Func MyErrFunc()

$HexNumber = Hex($oMyError.number, 8)

$oMyRet[0] = $HexNumber

$oMyRet[1] = StringStripWS($oMyError.description,3)

ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)

SetError(1); something to check for when this function returns

Return

EndFunc;==>MyErrFunc

I would like my program to send an email, when told to, how would I do that?


My ProgramsMy WIP'sSteam Server Restarter

Share this post


Link to post
Share on other sites
flyingboz

you've got all you need.

call the function you need to call with the parameters you want when the conditions you define are met.

you can implement with a smtp mail function as another #include file, or just cut/paste the udf to your server script.


Reading the help file before you post... Not only will it make you look smarter, it will make you smarter.

Share this post


Link to post
Share on other sites
Coolw

you've got all you need.

call the function you need to call with the parameters you want when the conditions you define are met.

you can implement with a smtp mail function as another #include file, or just cut/paste the udf to your server script.

ok, i got it to work, but how can i make it so i can have variables in the server .au3 file, such as variables as where to send the mail, msg, ect?


My ProgramsMy WIP'sSteam Server Restarter

Share this post


Link to post
Share on other sites
flyingboz

ok, i got it to work, but how can i make it so i can have variables in the server .au3 file, such as variables as where to send the mail, msg, ect?

uh....define them, use them, check any example code for how to pass parameters to functions.


Reading the help file before you post... Not only will it make you look smarter, it will make you smarter.

Share this post


Link to post
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
Sign in to follow this  

×