Jump to content

peterhigashi

Membros
  • Content count

    21
  • Joined

  • Last visited

  • Days Won

    2

peterhigashi last won the day on July 7 2017

peterhigashi had the most liked content!

Community Reputation

4 Neutro

About peterhigashi

  • Rank
    Membro

Profile Information

  • Location
    Recife
  1. Veja se é isso que você precisa MouseClickDrag. Espero ter ajudado. Flw :up:
  2. Você também pode usar o RunAs. Eu uso o código abaixo p/ apagar um atalho que requer direito de administrador, que no meu caso o #RequireAdmin não resolvia. RunAs($sUserName, @ComputerName, $sPassword, 0, @Comspec & ' /c del "C:\Users\Public\Desktop\Mozilla Firefox.lnk"', @SystemDir) Espero ter ajudado! Flw :up:
  3. Pesquisar Texto _IEBodyReadText com StringRight/Left

    Luigi muito obrigado pela ajuda!!! :like_icon: Refiz o código de acordo com suas instruções e não tive o resultado que eu esperava :unsure: Adicionei a pagina inicial do Fórum :ILA2: para ficar mais fácil os testes e vou tentar reforça a explicação: Quando eu encontrar a palavra "ontem" gostaria que retorna-se no lado esquerdo o nome do usuário e do lado direito o horário conforme o quadro de "Tópicos Recentes" mais retorna "==========div class='message error'==========". Fiz algo errado? :emoticons281: #include <IE.au3> #include <MsgBoxConstants.au3> #include <String.au3> Global $pg = "AutoIt Script Brasil" ;~ Com Local $oIE = _IECreate("http://forum.autoitbrasil.com/", "embedded") WinWaitActive($pg) Local $sText = _IEBodyReadText($oIE) local $meuTexto = "ontem" If StringInStr($sText, $meuTexto) then Msgbox($MB_SYSTEMMODAL, "", "Text detectado " & $meuTexto) Else Msgbox($MB_SYSTEMMODAL, "", "Nada") EndIf Local $meuTexto = "" Local $sInicio = "<", $sFim = ">", $sRepetir = "=" Local $ExistePalavra = _StringBetween($sText, $sInicio, $sFim) If IsArray($ExistePalavra) Then $meuTexto = _StringRepeat($sRepetir, 10) & $ExistePalavra[0] & _StringRepeat($sRepetir, 10) EndIf ConsoleWrite($meuTexto & @LF)
  4. Bom dia pessoal :ILA2: ! Gostaria de ajudar de vocês, conforme o código abaixo, vou descrever a minha necessidade: Acesso um site; No site localizo uma palavra; E ao achar a palavra informar 50 caracteres antes e depois. Mais no final estou :mad2: :emoticons281: Se alguém puder ajudar agradeço antecipadamente!!! :up: #include <IE.au3> #include <MsgBoxConstants.au3> Global $pg = "AutoIt Script Brasil" ;~ Com Local $oIE = _IECreate("http://forum.autoitbrasil.com/", "embedded") WinWaitActive($pg) Local $sText = _IEBodyReadText($oIE) local $meuTexto = "ontem" If StringInStr($sText, $meuTexto) then Msgbox($MB_SYSTEMMODAL, "", "Text detectado " & $meuTexto) Else Msgbox($MB_SYSTEMMODAL, "", "Nada") EndIf ConsoleWrite(StringRight($meuTexto, 50)) ConsoleWrite(StringLeft($meuTexto, 50))
  5. Auto execução

    Vê se isso ajuda: #include <Timers.au3> #include <MsgBoxConstants.au3> HotKeySet("{PAUSE}","Quit") Local $title = "your title" Local $width = "300" Local $height = "300" Local $x = -1 ; sets default, which is to center Local $y = -1 ; sets default, which is to center Local $opt = 1 While 1 Switch @HOUR Case 15 & 30 = @HOUR & @MIN MsgBox(0, "Relatório às", @HOUR & ":" & @MIN,3) ; Script do relatório EndSwitch WEnd Func Quit() Exit EndFunc Flw :up:
  6. BlockInput como Administrador

    Desculpe a demora, estive pesquisando sobre o caso e em outros projetos. Oiler, e ae de boa? Tentei mais não sei ainda onde estou errando? Não sabia que era possível descompilar? Encontrei esse código e também tentei usa-lo, achei muito bom! #include <GUIConstants.au3> #include <WinAPI.au3> Global const $SLEEP_TIME = 41000 Global $timer Global $frmBlock = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST), WinGetHandle(AutoItWinGetTitle())) Global $lblTimer = GUICtrlCreateLabel("Going through login procedure, please wait" & @CRLF & $SLEEP_TIME / 1000 & " seconds remaining", 0, @DesktopHeight * .4, @DesktopWidth, @DesktopHeight * .4, $SS_CENTER) Global $hMod = _WinAPI_GetModuleHandle(0) Global $dll_block1 = DllCallbackRegister("_BlockInput", "long", "int;wparam;lparam") Global $dll_block2 = DllCallbackRegister("_BlockInput", "long", "int;wparam;lparam") GLobal $hook_ex_1 = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($dll_block1), $hMod) GLobal $hook_ex_2 = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($dll_block2), $hMod) GUICtrlSetFont(-1, 24, "", "", "Segoe UI") GUICtrlSetColor(-1, 0xFF0000) GUISetBkColor(0x000000, $frmBlock) _WinAPI_SetLayeredWindowAttributes($frmBlock, 0x000000, 255) GUISetState(@SW_SHOW, $frmBlock) $timer = TimerInit() While (Ceiling(($SLEEP_TIME - TimerDiff($timer)) / 1000) > 0) Sleep(200) GUICtrlSetData($lblTimer, "Going through login procedure, please wait" & @CRLF & Ceiling(($SLEEP_TIME - TimerDiff($timer)) / 1000) & " seconds remaining") WEnd GUIDelete($frmBlock) _WinAPI_UnhookWindowsHookEx($hook_ex_1) _WinAPI_UnhookWindowsHookEx($hook_ex_2) DllCallbackFree($dll_block1) DllCallbackFree($dll_block2) Exit 0 Func _BlockInput($nCode, $wParam, $lParam) Return 1 EndFunc Pedro, e ae blz :like_icon: ? No seu caso, o seu usuário deve ter privilegio de administrador. No meu caso, eu habilito o administrador do Win7, habilito senha, crio um usuário limitado para o usuário final. Tipo, na maquina que eu uso o código funciona, nas demais estações que são limitado não! Flw :up:
  7. BlockInput como Administrador

    É... :huh: Já vi que vou ter que pedi demissão e procurar outra função :ik_cryin: Não consegui!!! :mad2: Adicionei o script, exclui a linha 8 a 19 e nada, Agora se eu colocar o #RequireAdmin e digitar o usuário e senha manualmente funciona. :ik_cryin: De toda forma muito obrigado pela ajuda Oiler. Flw :up:
  8. Boa tarde a todos! Preciso usar o BlockInput sendo que ele exige direito de administrador no Win7, como todos os usuários são usuários limitados não consigo. Sendo que, se eu adicionar #RequireAdmin vai solicitar a senha. Tentei adicionar o RunAs junto mais não consegui :emoticons281: , alguém pode ajudar? #include <AutoItConstants.au3> $sUserName = "administrador" $domain = @ComputerName $sPassword = "minhasenha" Example() Func Example() ; Run Notepad Run("notepad.exe") ; Wait 10 seconds for the Notepad window to appear. Local $hWnd = WinWait("[CLASS:Notepad]", "", 10) ; Disable user input from the mouse and keyboard. RunAs($sUserName, @ComputerName, $sPassword, 0, BlockInput($BI_DISABLE)) ; Wait for 2 seconds. Sleep(2000) ; Send the 'F5' key to the edit control of Notepad to display the date and time. The handle returned by WinWait is used for the "title" parameter of ControlSend. ControlSend($hWnd, "", "Edit1", "{F5}") ; Enable user input from the mouse and keyboard. RunAs($sUserName, @ComputerName, $sPassword, 0, BlockInput($BI_ENABLE)) ; Wait for 2 seconds. Sleep(2000) ; Close the Notepad window using the handle returned by WinWait. WinClose($hWnd) ; Now a screen will pop up and ask to save the changes, the classname of the window is called ; "#32770" and simulating the "TAB" key to move to the second button in which the "ENTER" is simulated to not "save the file" WinWaitActive("[CLASS:#32770]") Sleep(500) Send("{TAB}{ENTER}") EndFunc ;==>Example Flw :up:
  9. Finalizar programa mouse parado

    Grande Pedro!!!! Você não entendeu bem a minha duvida, mais tudo bem agradeço de toda forma pela ajuda :like_icon: . Rodei, rodei e rodei, quando eu tava quase desistindo :emoticons281: ai pesquisando outros assuntos eu encontro :digno1: : #include <timers.au3> Global $iLimit = 5 ; idle limit in seconds HotKeySet("{pause}", "_Quit") AdlibRegister("_CheckIdleTime", 500) Local $expired = False While 1 Sleep(20) If $expired Then MsgBox(16, "Tempo esgotado", "Você não fez nada em " & $iLimit & " segundos... Ficar ocupado!", 3) $expired = Not $expired EndIf WEnd Func _CheckIdleTime() If _Timer_GetIdleTime() > $iLimit * 1000 Then $expired = True EndFunc ;==>_CheckIdleTime Func _Quit() Exit EndFunc ;==>_Quit Flw :up:
  10. Shutdown automático

    Legal, Sr. Luz :like_icon: Porém não seria mais fácil um bat com o comando shutdown? O seu script comingo apresentou esse erro:" /ErrorStdOut" :huh:? Flw :up:
  11. Pessoal :like_icon: Preciso de uma forma que se o mouse ficar parado por 5 minutos sem se mover o script finalizar o programa. Poderia ser em até outra linguagem de programação, programa especifico. Qual minha necessidade p/ vocês entenderem: Se o mouse ficar sem ação (mover, clique) por 5 minutos, ele finaliza a automação que está em autoit. Flw :up:
  12. Escrever caracteres com o comando send

    Pessoal, Já tive um problema parecido, não escrevia o alguns caracteres como Marivaldo está falando. A solução que usei foi códigos ASCII: Send("ftp:{asc 47}{asc 47}Endereco_do_FTP.com.br") Marivaldo, tenta fazer isso e verifica a tabela no help para outros caracteres. Flw :up:
  13. Comparar um digito na tela

    Opa!!! Eu tenho um sistema que o mesmo fica gerando processos para cadastro, fiz o código abaixo que está localizando o texto no site e informando se existe ou não. Porém, ao fazer uma nova pesquisa ele mantem o resultado da primeira pesquisa. Para vocês entenderem meu sistema: Criei 2 paginas html, em uma no corpo tem "Aguardando" e na outra "Código Interno:" . Gostaria que ao localizar o texto "Código Interno:" realiza-se uma atividade. Ao voltar e localizar novamente realiza-se outra atividade. E assim sucessivamente. Alguém pode mim ajudar? Estou usando alguma lógica errada? #include <IE.au3> #include <MsgBoxConstants.au3> Local $oIE = _IEAttach("Robos", "embedded") ; "Robos" é o título da pagina html Local $sText = _IEBodyReadText($oIE) HotKeySet("{PAUSE}","Quit") WinWaitActive("Robos") If WinActive ("Robos") Then Call(atv1) Else EndIf Func atv1() ; verificar se tem processo If StringInStr($sText, "Código Interno:") then ; "Código Interno:" é o texto que ele procura no site Msgbox($MB_SYSTEMMODAL, "Achei", "Vou p/ atv2", 2) Call(atv2) Else Msgbox($MB_SYSTEMMODAL, "Não Achei", "Vou p/ atv3", 2) Call(atv3) EndIf EndFunc Func atv2() ; Mudar o processo Msgbox($MB_SYSTEMMODAL, "", "atv2", 2) Sleep(1000) Send("^{tab}") Sleep(800) Call(atv1) EndFunc Func atv3() Msgbox($MB_SYSTEMMODAL, "", "atv3", 2) Sleep(1000) Send("^{tab}") Sleep(800) Call(atv1) EndFunc Func Quit() Exit EndFunc Flw :up:
  14. Utilizar variavel recebida para procurar arquivo

    Legal também tinha uma dúvida dessa, agora e seu eu precisasse abrir só o arquivo novo adicionado nessa pasta ao invés de utiliza a inputBox? Flw
  15. Comparar e escrever

    Galera, Na época da minha dúvida, não consegui fazer o código, tive que roda o código do jeito que tava mais tudo bem... Após ter terminado minha atividade voltei p/ código e agora segue o que eu queria se alguém precisar. Gostaria também de agradecer ao Antony-ag que ajudou no código. Valeu!!! WinWaitActive("Microsoft Excel - Dados_01") ; planilha aberta e salva como dados_01 Local $Estados[2][27] = [["AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", "TO"], ["Acre", "Alagoas", "Amapá", "Amazonas", "Bahia", "Ceará", "Distrito Federal", "Espírito Santo", "Goiás", "Maranhão", "Mato Grosso", "Mato Grosso do Sul", "Minas Gerais", "Pará", "Paraíba", "Paraná", "Pernambuco", "Piauí", "Rio de Janeiro", "Rio Grande do Norte", "Rio Grande do Sul", "Rondônia", "Roraima", "Santa Catarina", "São Paulo", "Sergipe", "Tocantins"]] Local $oExcel = ObjGet("","Excel.Application") ;Mostra no Console a Sigla do Estado e o Nome correspondente. for $i = 0 to ubound($Estados, 2) - 1 ConsoleWrite($Estados[0][$i] & " - " & $Estados[1][$i] & @CRLF) Next ;Exiba uma mensagem com o nome do Estado de acordo com a sigla $SiglaDoEstado = $oExcel.Application.ActiveCell.Value ; verifica a celula selecionada atual if @error then Exit for $i = 0 to ubound($Estados, 2) - 1 ;Busca na lista de estados, a sigla digitada. if $SiglaDoEstado = $Estados[0][$i] then If WinExists("Microsoft Excel - Dados_01") Then Run("notepad") WinWaitActive("Sem título - Bloco de notas") send($Estados[1][$i]) ; escrever o resultado Else MsgBox(0, "", "Bloco de notas não existe!") EndIf ExitLoop EndIf ;Se ao chegar no último estado da lista, ainda não tiver saido do loop é pq não encontrou a sigla na lista, então exibe a mensagem. if $i = ubound($Estados, 2) - 1 then msgbox(4096, "", "Sigla não encontrada") Next
×