Jump to content

max.santiago

Membros
  • Content count

    7
  • Joined

  • Last visited

  • Days Won

    1

max.santiago last won the day on October 26 2016

max.santiago had the most liked content!

Community Reputation

2 Neutro

About max.santiago

  • Rank
    Novato

Profile Information

  • Location
    Taboão da Serra
  1. InetGetSize - enviar resultados no e-mail

    Olá Manimal, Obrigado pela ajuda! O ideal seria um check list do que foi acessado com sucesso e o que não. O InetGetSize foi uma das formas que encontrei para verificar se o site está up. No código que postei não estava acertan do as saídas do resultado em específico do InetGetSize, só estava retornando o último site da lista no arquivo ini. Fiz uma alteração onde ele criasse um arquivo de log e as informações que ele vai inserindo lá, retornasse no corpo do e-mail, e o texto em HTML colocasse essas variáveis ($leituraN). Não sei de dessa forma é mais trabalhosa mas deu certo rsrs. Global $site = IniReadSection("C:\TEMP\" & "sites.ini", "sites") ;or "http://www.google.com" For $i = 1 to $site[0][0] Global $up = InetGetSize($site[$i][1]) ; "1" forces page load from the internet If $up > 0 Then _FileWriteLog("C:\TEMP\" & "log_teste_URL.log", $site[$i][0] & "===========> " &$site[$i][1] & "............... Conexão OK" & @CRLF) Else _FileWriteLog("C:\TEMP\" & "log_teste_URL.log", $site[$i][1] & " ************ Verificar manualmente a conexão" & @CRLF) ;~ MsgBox(0, "Internet", "Up ! (" & $site[$i][1] & " returned a file size of " & $up & " bytes)") EndIf Next Local $abrearq = FileOpen("C:\TEMP\" & "log_teste_URL.log", 16384) Local $leitura = FileReadline($abrearq) Local $leitura2 = FileReadline($abrearq, 2) Local $leitura3 = FileReadline($abrearq, 3) Local $leitura4 = FileReadline($abrearq, 4) Local $leitura5 = FileReadline($abrearq, 5) Local $leitura6 = FileReadline($abrearq, 6) Local $leitura7 = FileReadline($abrearq, 7) Local $leitura8 = FileReadline($abrearq, 8) Local $leitura9 = FileReadline($abrearq, 9) Local $leitura10 = FileReadline($abrearq, 10) Local $leitura11 = FileReadline($abrearq, 11) Local $leitura12 = FileReadline($abrearq, 12) Local $leitura13 = FileReadline($abrearq, 13) Local $leitura14 = FileReadline($abrearq, 14) Local $leitura15 = FileReadline($abrearq, 15) Local $leitura16 = FileReadline($abrearq, 16) Local $leitura17 = FileReadline($abrearq, 17) Local $leitura18 = FileReadline($abrearq, 18) Local $leitura19 = FileReadline($abrearq, 19) Local $leitura20 = FileReadline($abrearq, 20) Local $leitura21 = FileReadline($abrearq, 21) Local $abrearq = FileClose("C:\TEMP\" & "log_teste_URL.log")
  2. Pessoal, bom dia! Gostaria de pedir uma ajuda a vcs. Estou usando o InetGetSize para verificar alguns sites se estão up ou não. E o resultado desses sites (up e down) vão no corpo do email. Fiz algumas tentativas e uma delas só exibe o último resultado. Como faço para que todos os resultados apareçam no email? Podem me ajudar? Segue o código: #include <IE.au3> #include <Array.au3> #include <Date.au3> If _NowTime() > "18:00:00" Then $dia = "Senhores, Boa noite!" EndIf If _NowTime() < "18:00:00" Then $dia = "Senhores, Boa tarde!" EndIf If _NowTime() < "12:00:00" Then $dia = "Senhores, Bom dia!" EndIf ; ********************************************************************************** Global $site = IniReadSection("C:\TEMP\" & "sites.ini", "sites") For $i = 1 to $site[0][0] Global $up = InetGetSize($site[$i][1]) ; "1" forces page load from the internet If @error = 0 Then Local $arq = "" Local $oIE Local $sHTML = _IEBodyReadHTML($oIE) _IEBodyWriteHTML($oIE, $sHTML) $sHTML = "<html><head>" & $dia & "<br><br>URLs validadas: " & "<br>" & $site[$i][1] & "<br>" & "<br><br><br>" & "<br><br> E-mail enviado automaticamente. Por favor, não responda! <br><br><br><br></br></html></HEAD><BODY>" & @CRLF & "</td> <font size = ""4px""><p align=""Left""><strong></strong>" & @CRLF & "<font size = ""3px""><p align=""Left""></" & @CRLF & "</font><br>" & @CRLF & "<br></br>" & @CRLF & </br>" & @CRLF & "</HTML>" & @CRLF EndIf Next ;Abaixo vem a função do e-mail Local $inifile = IniRead("C:\TEMP\" & "email.ini", "emails", "address", "") ; Módulo para envio de e-mail ;******************************************************************************************************* ; ;################################## ; Include ;################################## #Include<file.au3> #Include<IE.au3> #Include<Date.au3> #include <ScreenCapture.au3> #include <WinNet.au3> ;################################## ; Variables ;################################## $SmtpServer = "seusmtp" ; address for the smtp-server to use - REQUIRED $FromName = "Nome" ; name from who the email was sent $FromAddress = "seuendereço@endereço.com" ; address from where the mail should come $ToAddress = $inifile ; destination address of the email - REQUIRED $Subject = "Check List URLs - " & _NowDate() ; subject from the email - can be anything you want it to be ;$Body = "Teste de e-mail AutoIt" ; the messagebody from the mail - can be left blank but then you get a blank mail $AttachFiles = $arq ; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed $CcAddress = "" ; address for cc - leave blank if not needed $BccAddress = "" ; address for bcc - leave blank if not needed $Importance = "Normal" ; Send message priority: "High", "Normal", "Low" $Username = "teste@teste.com" ; username for the account used from where the mail gets sent - REQUIRED $Password = "suasenha" ; password for the account used from where the mail gets sent - REQUIRED $IPPort = 25 ; port used for sending the mail $ssl = 1 ; 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($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $sHTML, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl) If @error Then MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc) EndIf ; ; The UDF Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0) Local $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]) ;ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF) $objEmail.AddAttachment($S_Files2Attach[$x]) Else ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF) 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 If Number($IPPort) = 0 then $IPPort = 25 $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 ; Set Email Importance Switch $s_Importance Case "High" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High" Case "Normal" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal" Case "Low" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low" EndSwitch $objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf $objEmail="" 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 ;************************************************************************
  3. Depurando no SciTE/Autoit

    @BigMen essa solução é bem legal. Tem uma funcionalidade que ele mostra os erros bem no código. Além de ir depurando quando é habilitado o Trace Lines em Tools no SciTE
  4. Depurando no SciTE/Autoit

    @Parkless, Existe uma maneira de depurar o código do AutoIt, instalando o SciTE4AutoIt. Ele inclui novas funcionalidades ao editor SciTE. Instale-o e veja se atende as suas necessidades. https://www.autoitscript.com/site/autoit-script-editor/downloads/
  5. Verificar se uma pasta tem novos arquivos

    @AutoItCoder, eu fiz um teste com essa API e não deu certo para caminhos de rede (\\servidor\pasta). Localmente ele funciona. Será que é necessário incluir algo no código para dar certo?
  6. Verificar se uma pasta tem novos arquivos

    @AutoItCoder, muito obrigado pela ajuda. Vou estudar a função e respondo quando tiver êxito. Já deu uma luz rsrsrs. Na verdade estou começando neste mundo e não manjo muito de programação. Aos demais colegas que responderam tbm, muito obrigado!
  7. Pessoal, boa tarde! Gostaria de tirar uma dúvida: Eu estou fazendo um código para verificar se uma pasta recebe novos arquivos, após este arquivo é movido para uma outra pasta. Estou usando a função _FileListToArray. Ela funciona somente quando o arquivo já está na pasta, mas quando é movido o arquivo para a pasta o script não pega o arquivo. Se puderem me ajudar, agradeço muito... Segue o script: #include <File.au3> #include <Date.au3> #include <Array.au3> Local $PastaProc = ("\\servidor\Aplicativos\executaveis_carga\CARGAS_DOC\MIGRACAO_JANDIRA\") Local $PastaLog = ("\\servidor\Aplicativos\executaveis_carga\CARGAS_DOC\MIGRACAO_JANDIRA\LogErro\") Local $mes = _DateToMonth(@MON, 2) Local $PastaSaida = ("\\servidor2\ti\PRODUCAO\Backup_Cargas\MANHA\Migracao_Jandira\CARGA\" & @YEAR & "\" & $mes & "\" & @MDAY & "-" & @MON & "-" & @YEAR & "\") Local $arq = _FileListToArray($PastaProc, "*.txt") Local $arq2 = _FileListToArray($PastaProc, "CAIXASGD.TXT") Local $arq3 = _FileListToArray($PastaLog, "*.log") Dim $cont = 0 Local $fim = True While _NowTime() < "16:30:00"  For $i = 1 To UBound($arq)    If FileExists($PastaProc & $arq[$i]) Then    Local $mensagem = MsgBox(4160, "MIGRAÇÃO JANDIRA", "CHEGOU CARGA!")    If $mensagem =  $IDOK Then    FileMove($PastaProc & $arq[$i], $PastaProc & "CAIXASGD" & ".TXT")    Sleep(1000)    Programa()   EndIf    EndIf    Next ;~    Sleep(10000)    WEnd Func Programa()    Local $mensagem2 = MsgBox(4164,"MIGRAÇÃO JANDIRA", "Executar o processamento da carga?") If $mensagem2 = $IDYES Then ShellExecuteWait("\\servidor3\Programas2\executaveis_carga\CARGAS_DOC\MIGRACAO_JANDIRA\SQLLDR_CARGA.bat") MsgBox(64, "MIGRAÇÃO JANDIRA", "Executar a procedure PRC_CARREGA_MIGRA_JAND no Menu Interfile")    Sleep(5000) Move() Else    Exit    EndIf EndFunc ;~    Func Rename() ;~    For $i In $arq ;~    If FileExists($PastaProc & $arq[$i]) Then ;~    FileMove($PastaProc & $arq[$i], $PastaProc & "CAIXASGD.TXT") ;~    EndIf ;~ Next ;~ EndFunc ;Rename() Func Move()    For $i = 1 To UBound($arq2) -1    If FileExists($PastaProc & $arq2[$i]) Then    FileMove($PastaProc & $arq2[$i], $PastaSaida & "CAIXASGD_" & @MDAY & @MON & @YEAR & "_" & @HOUR & @MIN & @SEC & ".TXT")    EndIf Next For $i = 1 To UBound($arq3) -1    If FileExists($PastaLog & $arq3[$i]) Then    FileMove($PastaLog & $arq3[$i], $PastaSaida & "LogErro_" & @MDAY & @MON & @YEAR & "_" & @HOUR & @MIN & @SEC & ".log")    EndIf Next EndFunc ;Move()
×