Jump to content

Frezan

Membros
  • Content count

    64
  • Joined

  • Last visited

  • Days Won

    6

Frezan last won the day on March 13

Frezan had the most liked content!

Community Reputation

13 Neutro

About Frezan

  • Rank
    Membro

Profile Information

  • Gender
    Not Telling
  • Location
  1. Multi-thread em autoit

    A função "AdlibRegister()" tem um segundo parâmetro que define a frequência (em milissegundos com padrão de 250ms) que ela será chamada. AdlibRegister ( "function" [, time = 250] ) Não seria isso?
  2. Editar arquivo txt.

    StringSplit Sem informar nenhum delimitador no segundo parâmetro. Retorna um array cuja posição 0 contém a quantidade de caracteres separados. #include <Array.au3> Local $result = StringSplit("teste", "") _ArrayDisplay( $result ) 
  3. Te entendo, o IE Embed me deixou na mão em algumas vezes(principalmente no CSS) e em outras eu tive que dar uma volta grande para contornar o problema. Por enquanto o ActiveX está fora do meu alcance, mas pretendo fazer uma integração direta entre o Delphi+CEF e o AutoIt. Caso se interessem eu posso fazer um tutorial rápido de como fazer a instalação do componente. Para quem não tem o Delphi há também o Lazarus que além de ser free também possui o componente do CEF(ref).
  4. Queria ter apresentado algo melhor porém meus conhecimentos em AutoIt são um tanto limitados por enquanto. Mas ainda não vou desistir. Obrigado mesmo assim.
  5. [update] Qualquer browser pode ser incorporado no AutoIt se tiver ActiveX Object (ref). (Ref para criação de "ATL Simple Object Wizard"). [Gambiarra] Criei uma aplicação em Delphi+CEF e mandei rodar dentro da GUI da aplicação em AutoIt (ref). Não é o que eu procuro porém por hora me serve. #include <Constants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> Opt("GUIOnEventMode", 1) OnAutoItExitUnRegister('Close') Global $GUI = GUICreate('Browser', 1020, 484, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_TABSTOP,$WS_SIZEBOX,$WS_CLIPCHILDREN)) GUISetOnEvent($GUI_EVENT_CLOSE, 'Close') GUISetState(@SW_SHOW) Global $PID_AR1 = Run('Browser.exe "http://forum.autoitbrasil.com"', '', @SW_HIDE) Sleep(100) Global $AR1 = _GetHwndFromPID($PID_AR1) _WinAPI_SetWindowLong($AR1, $GWL_EXSTYLE , $WS_EX_MDICHILD) _WinAPI_SetParent($AR1,$GUI) Sleep(250) $GUI_pos = WinGetPos($GUI) WinMove($AR1,'',0,0,$GUI_pos[2],$GUI_pos[3]) Sleep(250) AdlibRegister('Resize', 50) WinSetState($AR1, '', @SW_MAXIMIZE) While 1 Sleep(10) WEnd Func Resize() $pos = WinGetPos($GUI) WinMove($AR1, '', 0, 0, $pos[2]-15, $pos[3]-37, 1) EndFunc Func Close() ProcessClose($PID_AR1) Exit EndFunc Func _GetHwndFromPID($PID) $hWnd = 0 $stPID = DllStructCreate("int") Do $winlist2 = WinList() For $i = 1 To $winlist2[0][0] If $winlist2[$i][0] <> "" Then DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $winlist2[$i][1], "ptr", DllStructGetPtr($stPID)) If DllStructGetData($stPID, 1) = $PID Then $hWnd = $winlist2[$i][1] ExitLoop EndIf EndIf Next Sleep(100) Until $hWnd <> 0 Return $hWnd EndFunc ;==>_GetHwndFromPID [AutoIt Source + Delphi Binary] https://www.dropbox.com/s/qnv7c805jgi7q3j/AitoIt_Chrome_Main.7z?dl=1 (30,01 MB) Obs.: Usei o upx para comprimir os resources gerados no Delphi por conta do tamanho original (86,8 MB). [AutoIt Source + Delphi Source] Delphi Project: https://www.dropbox.com/s/yst3ppve420xoep/Browser_dcef.7z?dl=1 Obs: Requerido-> CEF3 Component for Delphi (https://github.com/hgourvest/dcef3) [screenshot]
  6. Backups via cpanel

    Eu não sei qual a forma que é usada para obter os arquivos (click, link estático..) então vou deixar um pedaço do código de um projeto meu como demonstração. A ideia principal é criar uma aplicação desktop para que eu pudesse ver novos posts aqui no fórum sem precisar estar logado no navegador. Para entender como funciona o código você precisa ter alguma noção em "HTML" em um pouco de "Expressões Regulares". Você tem que analisar as <FORM> e outros elementos para poder fazer login, navegar pelo site e obter os downloads. #include-once #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <StaticConstants.au3> #include <Array.au3> Global $obj = ObjCreate('WinHttp.WinHttpRequest.5.1') Main() Exit ; ============================================================================= ; Main Function ; ============================================================================= Func Main() LoginForm() EndFunc ; ============================================================================= ; Login Form ; ============================================================================= Func LoginForm() $Form1 = GUICreate("Window Title", 268, 395, 213, 167, Default) $MenuItem1 = GUICtrlCreateMenu("&Options") $MenuItem2 = GUICtrlCreateMenu("&Help") $MenuItem3 = GUICtrlCreateMenuItem("&Check Update", $MenuItem2) $MenuItem4 = GUICtrlCreateMenuItem("&About", $MenuItem2) $Input1 = GUICtrlCreateInput("", 40, 136, 200, 21) $Label1 = GUICtrlCreateLabel("Username", 107, 115, 52, 17, $SS_CENTER) $Label2 = GUICtrlCreateLabel("Password", 109, 170, 50, 17, $SS_CENTER) $Input2 = GUICtrlCreateInput("", 40, 189, 200, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD)) $Checkbox1 = GUICtrlCreateCheckbox("Remember me", 87, 241, 97, 17) GUICtrlSetState(-1, $GUI_DISABLE) $Button1 = GUICtrlCreateButton("Login", 76, 265, 113, 29) GUISetState(@SW_SHOW) While 1 $iMsg = GUIGetMsg() Select Case $iMsg = $GUI_EVENT_CLOSE ExitLoop Case $iMsg = $Button1 Login($Input1, $Input2) ExitLoop EndSelect WEnd GUIDelete($Form1) EndFunc ; ============================================================================= ; Data ; ============================================================================= Func Login($d_username, $d_password) Local $username = GUICtrlRead($d_username) Local $password = GUICtrlRead($d_password) Local $data = 'auth_key=880ea6a14ea49e853634fbdc5015a024&referer=http://forum.autoitbrasil.com/&ips_username='&$username&'&ips_password='&$password Local $receive = HttpPost($obj, 'http://forum.autoitbrasil.com/index.php?app=core&module=global&section=login&do=process', $data) Local $regCheck = "<div id='user_navigation' class='logged_in'>" If StringRegExp($receive, $regCheck, $STR_REGEXPMATCH) = 1 Then FileDelete('receive.html') FileWrite('receive.html', $receive) ConsoleWrite('Logged.' & @CRLF) Else FileDelete('receive.html') ConsoleWrite('Not logged.' & @CRLF) EndIf EndFunc ; ============================================================================= ; HttpPost() ; ============================================================================= Func HttpPost($obj, $url, $data='', $cookies='') $obj.Open('POST', $url, False) $obj.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded') $obj.SetRequestHeader('Accept-Charset', 'utf-8') $obj.Send($data) If($obj.Status<>200) Then Return False Return $obj.ResponseText EndFunc ; ============================================================================= ; HttpGet() ; ============================================================================= Func HttpGet($obj, $url, $data='') $obj.Open('GET', $url, False) $obj.SetRequestHeader('Content-Type', 'text/html; charset=utf-8') $obj.Send($data) If($obj.Status<>200) Then Return False Return $obj.ResponseText EndFunc
  7. Fazendo o Windows falar

    Funcionou comigo. Configurações: OS: Windows 10 Home Observação: Da pra alterar a velocidade em que é reproduzida a voz especificando o ".Rate". _TalkOBJ("AutoIt é muito legal") ; change the text to suit Func _TalkOBJ($s_text) Local $o_speech $o_speech = ObjCreate("SAPI.SpVoice") $o_speech.Rate=-5 $o_speech.Speak ($s_text) $o_speech = "" EndFunc ;==>_TalkOBJ() Abraço.
  8. Passando para agradecer ao @antony-ag pois estou começando a "fuçar" em Arduino+AutoIt e obtive sucesso com o exemplo apresentado. Minhas configurações: OS: Windows 10 Placa: Arduino UNO Compilador Arduino versão: 1.6.9 Abraço.
  9. website de apostas: csgo

    Verifica se os dados do banco estão informados corretamente. Verifica também se a conta Bot está corretamente configurada para funcionar na Steam. Existe vários scripts de site de apostas para CSGO na internet, esse é um deles? Se sim, CUIDADO! Há algumas versões que o pessoal modifica, joga na internet e depois rouba os itens da Steam do teu bot! O painel da tua host é Cpanel? Se sim, para executar um script dentro de tempo em tempo, procure a opção "Cron Jobs" e especifique o comando e o horário em que vai ser executado o mesmo.
  10. Usando o _FileListToArray() que o @Belini mencionou e baseando no código do @antony-ag, segue abaixo: #include <File.au3> ; Declara variáveis para serem usadas posteriormente Local $file, $texto ; Sequencia de caracteres a serem listados ; No caso, será listado todos os arquivos que tenham no inicio 'Extrato' e termine com '.txt'. ; O '*' significa que pode conter N caracteres entre 'Extrato' e '.txt'. Local $nome = 'Extrato*.txt' ; Define qual a pasta que irá conter os arquivos Local $pasta = @ScriptDir & '\' ; ($FLTA_FILES) determina que pastas não entram na listagem. Local $lista = _FileListToArray($pasta, $nome, $FLTA_FILES) ; Percorre o Array ; A posição '$lista[0]' contém o número de arquivos encontrados For $i=1 To $lista[0] Step 1 ; Abre o arquivo no modo 'SOMENTE LEITURA' ($FO_READ) $file = FileOpen( $lista[$i] , $FO_READ) ; Lê o arquivo $texto = FileRead( $lista[$i] ) ; Imprime o texto em uma caixa de diálogo MsgBox(0,'',$texto) ; Fecha o arquivo para que o próximo possa ser aberto FileClose($file) Next Exit
  11. @Roni, não entendi ao certo o que tu quer fazer. - Tu quer abrir o arquivo "Extrato.txt" apenas? Pois, "Extrato.txt, Extrato(2).txt, Extrato(3).txt" ... são arquivos distintos. - O nome do arquivo que tu quer abrir é fixo? No caso, exatamente assim "Extrato.txt" ? Geralmente arquivos baixados no mesmo diretório com o mesmo nome são renomeados e recebem uma numeração (entre parênteses) no final do arquivo para evitar serem substituídos. O arquivo mais antigo é o de menor numeração (ou sem ela) e o mais recente é o de maior numeração no final. - Sendo assim, tu quer acessar a versão mais antiga ("Extrato.txt") ou a mais nova ("Extrato(3).txt") ? Se tu retirar os números no final do arquivo, tu vai estar abrindo o mais antigo.
  12. Apresentando o NW.js & Electron

    Bacana @joelson0007, vou dar uma olhada. Eu tentei fazer algo do tipo (para Windows) usando o _IECreateEmbedded() do AutoIt porém é limitado por usar o IE. Tentei usar também o Chromium Embedded Framework(CEF) porém não consegui ainda fazer essa junção.
  13. Movimentar imagens em loop

    Tu diz em deixar como tava e apenas deixar mais rápido? Se for isso, segue abaixo: #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $movimentar = 0, $liber_mover = 0, $imagens = 0, $imagens_mover[7], $pic_grade[7] $imagens_mover[0] = @ScriptDir & "\Abacaxi.bmp" $imagens_mover[1] = @ScriptDir & "\Cereja.bmp" $imagens_mover[2] = @ScriptDir & "\Laranja.bmp" $imagens_mover[3] = @ScriptDir & "\Limão.bmp" $imagens_mover[4] = @ScriptDir & "\Maçã.bmp" $imagens_mover[5] = @ScriptDir & "\Morango.bmp" interface() While 1 Sleep(10) $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch movimenta_imagens() WEnd Func interface() Local $gui = GUICreate("Form1", 665, 136, -1, -1) GUISetBkColor(0x000000, $gui); muda a cor do fundo $pic_grade[0] = GUICtrlCreatePic($imagens_mover[0], 8, 16, 100, 100) $pic_grade[1] = GUICtrlCreatePic($imagens_mover[1], 118, 16, 100, 100) $pic_grade[2] = GUICtrlCreatePic($imagens_mover[2], 228, 16, 100, 100) $pic_grade[3] = GUICtrlCreatePic($imagens_mover[3], 338, 16, 100, 100) $pic_grade[4] = GUICtrlCreatePic($imagens_mover[4], 448, 16, 100, 100) $pic_grade[5] = GUICtrlCreatePic($imagens_mover[5], 558, 16, 100, 100) GUISetState(@SW_SHOW) EndFunc ;==>interface Func movimenta_imagens() $liber_mover += 1 If $liber_mover <= 30 Then $liber_mover = 0 For $i = 0 To 6 Step 1 $movimentar += 1 If $movimentar > 5 Then $movimentar = 0 GUICtrlSetImage($pic_grade[$i], $imagens_mover[$movimentar]) ;TrayTip($movimentar, $imagens_mover[$movimentar], 5) Next EndIf EndFunc ;==>movimenta_imagens Notas: - Esse de cima deu algumas travadas no meu computador por conta da taxa de atualização ser de apenas 10 milissegundos (por isso tinha usado a função AdlibRegister() ). - As vezes (no travamento também) pode aparecer imagens duplicadas mas é por conta que não fechou o ciclo do For na função movimenta_imagens(). - Coloquei um Sleep() no inicio da movimenta_imagens() porém acaba interferindo nos eventos da GUI. [Edit] Até pode, mas os eventos da GUI irão ficar com delay, como por exemplo, fechar a janela.
  14. Movimentar imagens em loop

    Quando fui postar vi que o Mutleey tinha chegado primeiro então resolvi dar algumas modificadas no teu script. Deixei a troca de imagens um pouco mais rápida e adicionei um desacelerador de velocidade (para parecer uma roleta). [importante] comentei a função TrayTip("...") para evitar travamentos no sistema. Segue abaixo o código: #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $movimentar = 0, $liber_mover = 0, $imagens = 0, $imagens_mover[7], $pic_grade[7] Global $desacelerar = 1, $time = 400 $imagens_mover[0] = @ScriptDir & "\Abacaxi.bmp" $imagens_mover[1] = @ScriptDir & "\Cereja.bmp" $imagens_mover[2] = @ScriptDir & "\Laranja.bmp" $imagens_mover[3] = @ScriptDir & "\Limão.bmp" $imagens_mover[4] = @ScriptDir & "\Maçã.bmp" $imagens_mover[5] = @ScriptDir & "\Morango.bmp" interface() AdlibRegister("movimenta_imagens", 100) While 1 Sleep(10) $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE AdlibUnRegister("movimenta_imagens") Exit EndSwitch WEnd Func interface() Local $gui = GUICreate("Form1", 665, 136, -1, -1) GUISetBkColor(0x000000, $gui); muda a cor do fundo $pic_grade[0] = GUICtrlCreatePic($imagens_mover[0], 8, 16, 100, 100) $pic_grade[1] = GUICtrlCreatePic($imagens_mover[1], 118, 16, 100, 100) $pic_grade[2] = GUICtrlCreatePic($imagens_mover[2], 228, 16, 100, 100) $pic_grade[3] = GUICtrlCreatePic($imagens_mover[3], 338, 16, 100, 100) $pic_grade[4] = GUICtrlCreatePic($imagens_mover[4], 448, 16, 100, 100) $pic_grade[5] = GUICtrlCreatePic($imagens_mover[5], 558, 16, 100, 100) GUISetState(@SW_SHOW) EndFunc ;==>interface Func movimenta_imagens() $desacelerar += 2 $time = $time - 60 + $desacelerar if $time > 800 Then AdlibUnRegister("movimenta_imagens") Sleep($time) $liber_mover += 1 If $liber_mover >= 30 Then $liber_mover = 0 For $i = 0 To 6 Step 1 $movimentar += 1 If $movimentar > 5 Then $movimentar = 0 GUICtrlSetImage($pic_grade[$i], $imagens_mover[$movimentar]) ;TrayTip($movimentar, $imagens_mover[$movimentar], 5) Next EndIf EndFunc ;==>movimenta_imagens [Edit] Desfiz uma modificação que eu fiz para funcionar aqui. Coloquei o sinal como estava. If $liber_mover >= 30 Then
  15. Editar arquivo.

    Bom dia Manimal. Sim sim, o meu script é bem simplesinho, ele carece de tratamentos de erros e de um código mais limpo. Capaz. Sou novo nessa área e ainda tenho bastante o que aprender, então compartilhar conhecimento é fundamental. kkkk :P Abração. :mc-hammer: :D
×