Algumas dúvidas Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

Nauany
Posts: 58
Joined: 12 Dec 2016, 01:37

Algumas dúvidas

23 Mar 2018, 20:45

Boa noite
estou com algumas dúvidas sobre certos assuntos:
- seria possível eu salvar algumas hotkey que eu escolhi após executar meu script, e toda vez que eu fecha-lo e abri-lo novamente essas "hotkeys" estarem salvas para n ser necessário configura-lo novamente?

- eu gostaria de fazer um "sleep" com o tempo desejado pela pessoa, por exemplo:

Gui, Add, edit, x80 y185 h20 w50 number vvariavel1 ;a pessoa escolhe um valor qualquer.
variablell1 := variablell1 * 1000 ; eu multiplicaria por 1000 para esse valor ser contado como segundos (ja que o sleep funciona em ms).


MouseGetPos, xpos, ypos
Send {Ctrl down}
Send {z}
Send {Ctrl up}
sleep, 500
MouseClick, left, %Bs23X%, %Bs23Y%, ,0
sleep, 700
MouseMove, %xpos%,%ypos%
Sleep, variablell1 ;????? teria algo assim do tipo?? o codigo ai é só um exemplo.,.. o foco seria fazer o "sleep" usar alguma variavel de um certo numero escolhido... seria possivel?
Send {Ctrl down}
Send {z}
Send {Ctrl up}
sleep, 900
MouseMove, %xpos%,%ypos%
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Algumas dúvidas  Topic is solved

24 Mar 2018, 09:06

Bom dia Nauany.
seria possível eu salvar algumas hotkey que eu escolhi após executar meu script, e toda vez que eu fecha-lo e abri-lo novamente essas "hotkeys" estarem salvas para n ser necessário configura-lo novamente?
É possível sim. Tem várias formas de fazer isso. Os executáveis rodam no computador utilizando a memória RAM, que se perde no término da execução (ou quando você desliga o computador se você usar outro aplicativo em execução para manter as informações), portanto, você precisa escrever no disco as informações que quer que sejam armazenadas entre execuções. Isso pode ser feito escrevendo um arquivo.

O AutoHotkey oferece suporte nativo para escrever e ler arquivos de texto e ainda alguns comandos para operar arquivos do tipo .ini, que são bastante utilizados como parâmetros de configuração de programas. Os comandos em questão são o IniWrite e o IniRead.

Além disso, será necessário escrever algumas coisas a mais pra que o código funcione de forma redonda, mas no fim não é tão complexo assim.

Code: Select all

; No início do programa, lemos o arquivo .ini (se ele existir) e criamos uma hotkey conforme a que estava gravada.
; Precisamos da informação valor (para recriar a hotkey nesta execução) e da informação posição (para selecionar a entrada na DropDownList).
IfExist, %A_ScriptDir%/HOTKEY_INFO.ini
{
	IniRead, HOTKEY_SELECIONADA_VALOR, %A_ScriptDir%/HOTKEY_INFO.ini, HOTKEY, VALOR
	IniRead, POSICAO_HOTKEY_ARMAZENADA, %A_ScriptDir%/HOTKEY_INFO.ini, HOTKEY, POSICAO
	Hotkey, %HOTKEY_SELECIONADA_VALOR%, MOSTRAR_MSGBOX ; O comando hotkey permite implementar hotkeys dinamicas.
}

; Depois, criamos a Tela de controle.
Gui, font, s10 w700
Gui, add, text, x20 y20, Selecione uma hotkey e clique em gravar. Ela será lembrada entre execuções.
Gui, add, dropdownlist, x20 y40 vHOTKEY_SELECIONADA AltSubmit Choose%POSICAO_HOTKEY_ARMAZENADA%, F2|F3|F6|F7|F8
Gui, add, Button, x20 y70 gGravar, Gravar
Gui, show, w600 h200, Hotkey de Messagebox
Return

; A label Gravar vai salvar a seleção atual no arquivo .ini e implementar a hotkey na execução atual, primeiro desligando a hotkey antiga (se houver). O arquivo .ini será gravado na mesma pasta em que o script estiver.
Gravar:
Gui, submit, nohide
If !(HOTKEY_SELECIONADA_VALOR = "") ; Se não havia hotkey gravada, não precisamos desligar nada (e pular essa tentativa evita um erro).
{
	Hotkey, %HOTKEY_SELECIONADA_VALOR%, MOSTRAR_MSGBOX, Off
}
ControlGetText, HOTKEY_SELECIONADA_VALOR, ComboBox1, Hotkey de Messagebox ; Aqui coletamos o valor da hotkey (a posição já está na variável do controle, em virtude do AltSubmit).
IniWrite, %HOTKEY_SELECIONADA_VALOR%, %A_ScriptDir%/HOTKEY_INFO.ini, HOTKEY, VALOR ; Aqui escrevemos no arquivo ini a chave VALOR.
IniWrite, %HOTKEY_SELECIONADA%, %A_ScriptDir%/HOTKEY_INFO.ini, HOTKEY, POSICAO ; Aqui escrevemos no arquivo ini a chave POSICAO.
Hotkey, %HOTKEY_SELECIONADA_VALOR%, MOSTRAR_MSGBOX ; E aqui ativamos a nova hotkey selecionada.
msgbox % "Gravado com sucesso"
Return


MOSTRAR_MSGBOX:
msgbox % "Você apertou a hotkey certa!"
Return
- eu gostaria de fazer um "sleep" com o tempo desejado pela pessoa
Sem problemas. Basta usar uma variável no parâmetro do tempo e dereferenciá-la.

Code: Select all

Gui, font, s10 w700
Gui, add, text, x20 y20, Indique o tempo de espera antes da msgbox (em segundos!).
Gui, add, Edit, number x20 y40 vTEMPO_DE_ESPERA
Gui, add, Button, x20 y70 gRODAR, RODAR
Gui, show, w600 h200, Mensagem com espera
Return


RODAR:
Gui, Submit, nohide
TEMPO_A_ESPERAR := TEMPO_DE_ESPERA * 1000
Sleep, %TEMPO_A_ESPERAR%
msgbox % "o tempo pretentedido transcorreu."
Return
Se tiver algum dúvida sobre os códigos dos exemplos, basta perguntar :thumbup:
Nauany
Posts: 58
Joined: 12 Dec 2016, 01:37

Re: Algumas dúvidas

24 Mar 2018, 10:32

Obrigado novamente =D

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: Google [Bot] and 20 guests