Como ativar numeros do teclado na gcheckbox do Autohotkey Topic is solved

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

Moderator: Gio

Renatobritov
Posts: 6
Joined: 05 Aug 2019, 16:29

Como ativar numeros do teclado na gcheckbox do Autohotkey  Topic is solved

05 Aug 2019, 21:09

Criei uma GUI e consiga ativar as Letras do teclado e os F1,F2.. etc.
Last edited by Renatobritov on 16 Mar 2021, 03:07, edited 1 time in total.
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Como ativar numeros do teclado na gcheckbox do Autohotkey

06 Aug 2019, 08:35

Bom dia Renatobritov.

Seja bem-vindo ao fórum da comunidade do AutoHotkey.

Se entendi a sua pergunta, você pode usar as teclas numpad0 - numpad9 para enviar comandos de números.

Exemplo (o código abaixo escreve o número 1 quando você aperta F2:

Code: Select all

F2::
Send {Numpad1}
Espero ter ajudado. Se ainda tiver alguma dúvida, sinta-se livre para postar abaixo :thumbup:
Renatobritov
Posts: 6
Joined: 05 Aug 2019, 16:29

Re: Como ativar numeros do teclado na gcheckbox do Autohotkey

07 Aug 2019, 01:31

Eu preciso saber como faço pra ativar a listbox com botões diferentes, eu já consigo pela checkbox em um botão, como faço pra ativar tanto de uma lista quanto os outros da check list? =p
Gui,1:Color, black
SetKeyDelay -1,-1,-1
List:="1|2|3|4|5|6|7|8|9|"

Gui, 1:Add, Checkbox, x42 y150 w90 h20 cwhite gSubmitIt vToggle1, 1
Gui, 1:Add, CheckBox, x42 y180 w90 h20 cwhite gSubmitIt vToggle2, 2
Gui, 1:Add, DropDownList, x372 y385 w90 h20 gSubmit_All ,% List

Gui, 1:Add, Progress, x42 y420 w60 h0 , 25
Gui, 1:Add, GroupBox, x22 y130 w450 h340 cwhite , Auto Spam Cherninh0
Gui, 1:Add, Button, x372 y410 w90 h25 +Buttons, Ativar_AutoPot
Gui, 1:Add, Button, x37 y420 w150 h27 +Buttons, Ativar_Auto_Spam
; Generated using SmartGUI Creator 4.0
Gui, 1:Show, x258 y96 h492 w498, Cherninh0 DoentoW!
Return

#If (toggle1 = 1)
$1::
while GetKeyState("1","P")
{
Send, {1}
MouseClick, left
if !GetKeyState("1","P")
break
}
return

#If (toggle2 = 1)
$2::
while GetKeyState("2","P")
{
Send, {2}
MouseClick, left
if !GetKeyState("2","P")
break
}
return

ButtonAtivar_AutoPot:
Gui, Submit
msgbox, Autopot Ativado!
return
ButtonAtivar_Auto_Spam:
Gui, submit
msgbox,CHERNINH0 ATIVADO!, GARRIDO, MAGO DE BATALHA OU BUTAR?!
return
Renatobritov
Posts: 6
Joined: 05 Aug 2019, 16:29

Re: Como ativar numeros do teclado na gcheckbox do Autohotkey

07 Aug 2019, 04:23

Estava estudando e conseguindo alguns avanços, vou te mandar o codigo simples pra que você possa entender melhor eu estou tentando e se pode me ajudar.
Eu tenho uma lista(DDL) e uma checkbox, na checkbox da minha GUI, quando eu marcar a caixinha quadrada 1 ou 2 é pra, ativar a função que eu "aperto o 1 e clico com botão esquerdo do mouse sempre que pressionar a tecla" e quando eu selecionar a DLL é pra só pressionar como esta descrito nos scripts. O MEU PROBLEMA É:

Quando eu ativo no botão ele n ativa separadamente, e a intenção é que, eu possa ativar as duas coisas em botões diferentes, ou seja eu apertar na checkbox 1 (ele vai apertar 1 e clicar com o botão esquerdo do mouse) e selecionar a posição 2 na lista( que ele vai só apertar o numero 2 varias vezess enquanto pressionado)

acho q deu pra entender. desde já agradeço.


Gui,1:Color, black
SetKeyDelay -1,-1,-1
List:="1|2|3|4|5|6|7|8|9|"


Gui, 1:Add, Picture, x100 y0 w290 h120, C:\Users\Renato Brito\Desktop\Cherninh0\cherninh0.png



Gui, 1:Add, Progress, x42 y420 w60 h0 , 25
Gui, 1:Add, GroupBox, x22 y130 w450 h340 cwhite , Auto Spam Cherninh0
Gui, 1:Add, Button, x37 y420 w150 h27 +Buttons, Ativar_Auto_Spam
; Generated using SmartGUI Creator 4.0
Gui, 1:Show, x258 y100 h490 w490,Cherninh0 DoentoW!

Gui, 1:Add, Checkbox, x42 y150 w90 h20 cwhite gSubmitIt vToggle1, 1
Gui, 1:Add, CheckBox, x42 y180 w90 h20 cwhite gSubmitIt vToggle2, 2
Gui, 1:Add, DDL, x372 y385 w90 h20 cred gSubmitIt ,% List

SubmitIt:
Gui, Submit, NoHide

Tooltip
return
List = [1]
$1::
while GetKeyState("1","P")
{
Send, {1}
sleep 150
if !GetKeyState("1","P")
break
}


List = [2]
$2::
while GetKeyState("2","P")
{
Send, {2}
sleep 150
if !GetKeyState("2","P")
break
}
return

#if (toggle1 = [1])
$1::
while GetKeyState("1","P")

{
Send, {1}
MouseClick, left
if !GetKeyState("1","P")
break
}

return

#If (toggle2 = 1)
$2::
while GetKeyState("2","P")
{
Send, {2}
MouseClick, left
if !GetKeyState("2","P")
break
}
return

ButtonAtivar_Auto_Spam:
Gui, Submit, NoHide
msgbox,CHERNINH0 ATIVADO!, GARRIDO, MAGO DE BATALHA OU BUTAR?!
return
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Como ativar numeros do teclado na gcheckbox do Autohotkey

07 Aug 2019, 09:16

Bom dia Renato.

Se entendi a sua pergunta, você deve criar labels diferentes para cada controle da tela (separando-as com comandos return) e aí deve escrever em cada label o comportamento correspondente à situação da ativação DAQUELE controle que foi ativado.

Exemplo:

Code: Select all

Gui, add, Checkbox, gLABEL_DA_CHECKBOX_FALAR vFALAR_OU_NAO x20 y20, Falar
Gui, add, Checkbox, gLABEL_DA_CHECKBOX_GRITAR vGRITAR_OU_NAO x20 y40, Gritar
Gui, add, DropDownList, gLABEL_DA_DDL vQUAL_O_VERBO_DA_DDL x150 y20, Dizer|Comentar|Cochichar
Gui, show, w300 h400, Exemplo
Return

LABEL_DA_CHECKBOX_FALAR:
Gui, submit, nohide
If (FALAR_OU_NAO = 1)
{
	msgbox % "FALOU"
}
Return

LABEL_DA_CHECKBOX_GRITAR:
Gui, submit, nohide
If (GRITAR_OU_NAO = 1)
{
	msgbox % "GRITOU"
}
Return

LABEL_DA_DDL:
Gui, submit, nohide
If (QUAL_O_VERBO_DA_DDL = "Dizer")
{
	msgbox % "DISSE"
}
If (QUAL_O_VERBO_DA_DDL = "Comentar")
{
	msgbox % "COMENTOU"
}
If (QUAL_O_VERBO_DA_DDL = "Cochichar")
{
	msgbox % "cochichou"
}
Return

Guiclose:
ExitApp
Veja que no código acima, cada controle tem uma g-label diferente. Isso ajuda na hora de organizar qual ação vai ocorrer quando o usuário apertar cada controle.

:arrow: Vejo também que você parece estar tentando unir o resultado dos controles da tela (os que o usuário apertou ou selecionou) com comportamentos específicos de uma mesma hotkey. A condicional #If serve para criar hotkeys condicionalmente, mas se você quer simplesmente condicionar o comportamento da hotkey, entendo que a condicional if (sem o jogo da velha) pode ser uma escolha melhor.

Exemplo:

Code: Select all

Gui, add, Checkbox,  vFALAR_OU_NAO x20 y20, Falar
Gui, add, Checkbox,  vGRITAR_OU_NAO x20 y40, Gritar
Gui, add, DropDownList,  vQUAL_O_VERBO_DA_DDL x150 y20, |Dizer|Comentar|Cochichar
Gui, show, w300 h400, Exemplo
Return

1::
Gui, submit, nohide
If (FALAR_OU_NAO = 1)
{
	msgbox % "FALOU"
}
If (GRITAR_OU_NAO = 1)
{
	msgbox % "GRITOU"
}
If (QUAL_O_VERBO_DA_DDL = "Dizer")
{
	msgbox % "DISSE"
}
If (QUAL_O_VERBO_DA_DDL = "Comentar")
{
	msgbox % "COMENTOU"
}
If (QUAL_O_VERBO_DA_DDL = "Cochichar")
{
	msgbox % "cochichou"
}
If (QUAL_O_VERBO_DA_DDL = "")
{
	
}
else
{
	Send {Numpad1}
}
Return


GuiClose:
ExitApp

Veja que no código acima criamos uma hotkey para ser ativada através do número 1. Dentro dessa hotkey, nós colocamos várias condicionais, e atrelamos elas às variáveis dos controles da tela, de modo que conforme a configuração dos controles, ações diferentes vão ocorrer pela mesma hotkey.

Se ainda tiver alguma dúvida, favor comentar para que possamos esclarecer melhor :thumbup:
Renatobritov
Posts: 6
Joined: 05 Aug 2019, 16:29

Re: Como ativar numeros do teclado na gcheckbox do Autohotkey

07 Aug 2019, 17:46

tem como eu entrar em contato com você atraves do discord ou algum aplicativo???

Eu estou conseguindo aplicar o que você falou, mas não consigo fazer com que seja um de cada vez, eu aperto no numero 1 da droplistbox e ativam todos os numeros da lista e o certo seria só ativar 1.

Gui, 1:Add, DDL, x372 y385 w90 h20 gLista_do_autopot vNumerodalista , 1|2|3|4|5|6|7|8|9|

Lista_do_autopot:
Gui, Submit, NoHide

return
if (vNumerodalista = 1)
$1::
while GetKeyState("1","P")
{
Send, {1}
sleep 150
if !GetKeyState("1","P")
break
}

if not (vNumerodalista = 2)
$2::
while GetKeyState("2","P")
{
Send, {2}
sleep 150
if !GetKeyState("2","P")
break
}
return

if (vNumerodalista = 3)
$3::
while GetKeyState("3","P")
{
Send, {3}
sleep 150
if !GetKeyState("3","P")
break
}
return

if (vNumerodalista = 4)
$4::
while GetKeyState("4","P")
{
Send, {4}
sleep 150
if !GetKeyState("4","P")
break
}
return

if (vNumerodalista = 5)
$5::
while GetKeyState("5","P")
{
Send, {5}
sleep 150
if !GetKeyState("5","P")
break
}
return

if (vNumerodalista = 6)
$6::
while GetKeyState("6","P")
{
Send, {6}
sleep 150
if !GetKeyState("6","P")
break
}
return

if (vNumerodalista = 7)
$7::
while GetKeyState("7","P")
{
Send, {7}
sleep 150
if !GetKeyState("7","P")
break
}
return

if (vNumerodalista = 8)
$8::
while GetKeyState("8","P")
{
Send, {8}
sleep 150
if !GetKeyState("8","P")
break
}
return

if (vNumerodalista = 9)
$9::
while GetKeyState("9","P")
{
Send, {9}
sleep 150
if !GetKeyState("9","P")
break
}
return
Renatobritov
Posts: 6
Joined: 05 Aug 2019, 16:29

Re: Como ativar numeros do teclado na gcheckbox do Autohotkey

07 Aug 2019, 18:03

Ta incompleto mais é mais ou menos por aqui, só que toda vez q eu ativo o AHK, ELE n espera eu selecionar nada, já ativa todas as teclas, sem ser checado =s E no caso eu queria q só ativasse se eu selecionasse "1" ou alguma numero de 1 a 9 da droplist e depois de selecionar eu apertasse em um botão e ativar o que estivesse sido selecioando.

Gui,1:Color, black
SetKeyDelay -1,-1,-1



Gui, 1:Add, Picture, x100 y0 w290 h120, C:\Users\Renato Brito\Desktop\Cherninh0\cherninh0.png



Gui, 1:Add, Progress, x42 y420 w60 h0 , 25
Gui, 1:Add, GroupBox, x22 y130 w450 h340 cwhite , Auto Spam Cherninh0
Gui, 1:Add, Button, x37 y420 w150 h27 +Buttons, Ativar_Auto_Spam
; Generated using SmartGUI Creator 4.0
Gui, 1:Show, x258 y100 h490 w490,Cherninh0 DoentoW!

Gui, 1:Add, Checkbox, x42 y150 w90 h20 cwhite gSubmitIt vToggle1, 1
Gui, 1:Add, CheckBox, x42 y180 w90 h20 cwhite gSubmitIt vToggle2, 2
Gui, 1:Add, CheckBox, x42 y210 w90 h20 cwhite gSubmitIt vToggle3, 3
Gui, 1:Add, CheckBox, x42 y240 w90 h20 cwhite gSubmitIt vToggle4, 4
Gui, 1:Add, CheckBox, x42 y270 w90 h20 cwhite gSubmitIt vToggle5, 5
Gui, 1:Add, CheckBox, x42 y300 w90 h20 cwhite gSubmitIt vToggle6, 6
Gui, 1:Add, CheckBox, x42 y330 w90 h20 cwhite gSubmitIt vToggle7, 7
Gui, 1:Add, CheckBox, x42 y360 w90 h20 cwhite gSubmitIt vToggle8, 8
Gui, 1:Add, CheckBox, x42 y390 w90 h20 cwhite gSubmitIt vToggle9, 9
Gui, 1:Add, CheckBox, x152 y150 w90 h20 cwhite gSubmitIt vToggleQ, Q
Gui, 1:Add, CheckBox, x152 y180 w90 h20 cwhite gSubmitIt vToggleW, W
Gui, 1:Add, CheckBox, x152 y210 w90 h20 cwhite gSubmitIt vToggleE, E
Gui, 1:Add, CheckBox, x152 y240 w90 h20 cwhite gSubmitIt vToggleR, R
Gui, 1:Add, CheckBox, x152 y270 w90 h20 cwhite gSubmitIt vToggleT, T
Gui, 1:Add, CheckBox, x152 y300 w90 h20 cwhite gSubmitIt vToggleY, Y
Gui, 1:Add, CheckBox, x152 y330 w90 h20 cwhite gSubmitIt vToggleU, U
Gui, 1:Add, CheckBox, x152 y360 w90 h20 cwhite gSubmitIt vToggleI, I
Gui, 1:Add, CheckBox, x152 y390 w90 h20 cwhite gSubmitIt vToggleO, O
Gui, 1:Add, CheckBox, x262 y150 w90 h20 cwhite gSubmitIt vToggleA, A
Gui, 1:Add, CheckBox, x262 y180 w90 h20 cwhite gSubmitIt vToggleS, S
Gui, 1:Add, CheckBox, x262 y210 w90 h20 cwhite gSubmitIt vToggleD, D
Gui, 1:Add, CheckBox, x262 y240 w90 h20 cwhite gSubmitIt vToggleF, F
Gui, 1:Add, CheckBox, x262 y270 w90 h20 cwhite gSubmitIt vToggleG, G
Gui, 1:Add, CheckBox, x262 y300 w90 h20 cwhite gSubmitIt vToggleH, H
Gui, 1:Add, CheckBox, x262 y330 w90 h20 cwhite gSubmitIt vToggleJ, J
Gui, 1:Add, CheckBox, x262 y360 w90 h20 cwhite gSubmitIt vToggleK, K
Gui, 1:Add, CheckBox, x262 y390 w90 h20 cwhite gSubmitIt vToggleL, L
Gui, 1:Add, CheckBox, x372 y150 w90 h20 cwhite gSubmitIt vToggleZ, Z
Gui, 1:Add, CheckBox, x372 y180 w90 h20 cwhite gSubmitIt vToggleX, X
Gui, 1:Add, CheckBox, x372 y210 w90 h20 cwhite gSubmitIt vToggleC, C
Gui, 1:Add, CheckBox, x372 y240 w90 h20 cwhite gSubmitIt vToggleV, V
Gui, 1:Add, CheckBox, x372 y270 w90 h20 cwhite gSubmitIt vToggleB, B
Gui, 1:Add, CheckBox, x372 y300 w90 h20 cwhite gSubmitIt vToggleN, N
Gui, 1:Add, CheckBox, x372 y330 w90 h20 cwhite gSubmitIt vToggleM, M
Gui, 1:Add, DDL, x372 y385 w90 h20 gLista_do_autopot vNumerodalista , 1|2|3|4|5|6|7|8|9|

Lista_do_autopot:
Gui, Submit, NoHide

return
if (vNumerodalista = 1)

while GetKeyState("1","P")
{
Send, {1}
sleep 150
if !GetKeyState("1","P")
break
}

if not (vNumerodalista = 2)

while GetKeyState("2","P")
{
Send, {2}
sleep 150
if !GetKeyState("2","P")
break
}
return

if (vNumerodalista = 3)

while GetKeyState("3","P")
{
Send, {3}
sleep 150
if !GetKeyState("3","P")
break
}
return

if (vNumerodalista = 4)

while GetKeyState("4","P")
{
Send, {4}
sleep 150
if !GetKeyState("4","P")
break
}
return

if (vNumerodalista = 5)

while GetKeyState("5","P")
{
Send, {5}
sleep 150
if !GetKeyState("5","P")
break
}
return

if (vNumerodalista = 6)

while GetKeyState("6","P")
{
Send, {6}
sleep 150
if !GetKeyState("6","P")
break
}
return

if (vNumerodalista = 7)

while GetKeyState("7","P")
{
Send, {7}
sleep 150
if !GetKeyState("7","P")
break
}
return

if (vNumerodalista = 8)

while GetKeyState("8","P")
{
Send, {8}
sleep 150
if !GetKeyState("8","P")
break
}
return

if (vNumerodalista = 9)

while GetKeyState("9","P")
{
Send, {9}
sleep 150
if !GetKeyState("9","P")
break
}
return

SubmitIt:
Gui, Submit, NoHide
if (toggle1 = 1)
$1::
while GetKeyState("1","P")

{
Send, {1}
MouseClick, left
if !GetKeyState("1","P")
break

}
return

if (toggle1 = 2)
$2::
while GetKeyState("2","P")

{
Send, {2}
MouseClick, left
if !GetKeyState("2","P")
break

}
return

if (toggle1 = 3)
$3::
while GetKeyState("3","P")

{
Send, {3}
MouseClick, left
if !GetKeyState("3","P")
break

}
return

if (toggle1 = 4)
$4::
while GetKeyState("4","P")

{
Send, {4}
MouseClick, left
if !GetKeyState("4","P")
break

}
return

if (toggle1 = 5)
$5::
while GetKeyState("5","P")

{
Send, {5}
MouseClick, left
if !GetKeyState("5","P")
break

}
return

if (toggle1 = 6)
$6::
while GetKeyState("6","P")

{
Send, {6}
MouseClick, left
if !GetKeyState("6","P")
break

}
return

if (toggle1 = 7)
$7::
while GetKeyState("7","P")

{
Send, {7}
MouseClick, left
if !GetKeyState("7","P")
break

}
return

if (toggle1 = 8)
$8::
while GetKeyState("8","P")

{
Send, {8}
MouseClick, left
if !GetKeyState("8","P")
break

}
return

if (toggle1 = 9)
$9::
while GetKeyState("9","P")

{
Send, {9}
MouseClick, left
if !GetKeyState("9","P")
break

}
return

ButtonAtivar_Auto_Spam:
Gui, Submit, NoHide
msgbox,CHERNINH0 ATIVADO!, GARRIDO, MAGO DE BATALHA OU BUTAR?!
return
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Como ativar numeros do teclado na gcheckbox do Autohotkey

08 Aug 2019, 15:42

Boa tarde Renatobritov.

Vejo que você ainda está tendo problemas em configurar suas hotkeys e condicionais. Você deve entender como elas funcionam antes de escrever o código, pois seu código está ficando bastante embaralhado.

Isso aqui não faz sentido:

Code: Select all

if (toggle1 = 3)
$3::
A razão porque digo isto é que o comando If não é a mesma coisa que o #if. Ambos implementam condicionais de execução (fazem executar um código se alguma coisa for verdade). A diferença é que o #If implementa hotkeys condicionais, e o If implementa blocos de códigos condicionados.

O código-exemplo que eu mostrei no último post seguia a lógica de usar vários If na mesma hotkey, para condicionar os blocos de códigos, e não para condionar as hotkeys em si. O objetivo é que a hotkey funcione sempre, mas faça uma coisa diferente em cada caso (ou seja, uma coisa diferente de acordo com cada checkbox estar ativa ou não).

Funciona mais ou menos assim. Execute o código abaixo e estude o que acontece. Ele implementa uma hotkey no botão 3, mas ela faz coisas diferentes dependendo se a checkbox está marcada ou não.

Code: Select all

Gui, add, checkbox, x20 y20 vtoggle1, ATIVAR
Gui, show, w200 h300

$3::
Gui, submit, nohide
If (toggle1 = 1)
{
    msgbox % "toggle1 está ativado!"
}
Else
{
    Send {numpad3}
}
Return
Perceba que no código acima, a hotkey $3:: NÃO está condionada ao checkbox. O que ocorre é que quando ela é ativada, o código dentro dela condiciona a msgbox ao checkbox. Além disso, ele condiciona que se o toggle não estiver ativado, enviará o comando da tecla 3. Sugiro que use essa lógica para facilitar a escrita do seu programa.

:arrow: Outra coisa: sempre coloque um bloco de códigos (usando chaves { } ) logo após qualquer condicional If. Se você não colocar o bloco, apenas a primeira linha subsequente estará condicionada ao resultado do if.

E finalmente, quando for postar códigos aqui no fórum, é importante que você os coloque dentro de tags seguindo esta sintaxe (Sem os espaços dentro da tag!): [ code ] seu código [ /code ]

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 17 guests