Bom dia, minha dúvida é simples, gostaria de saber se é possível fazer com que um botão marque e desmarque uma checkbox na GUI.
Por exemplo:
*F7::
Se não estiver marcada:
Checkbox (marca)
Se já estiver marcada:
Checkbox (desmarca)
botão marca checkbox Topic is solved
Moderator: Gio
Re: botão marca checkbox
Bom dia Lazyyy.
Quando você mencionou botão, pensei que se tratava de um botão em uma gui (button), mas vejo que se trata na verdade de uma hotkey (F7).
Em ambos o caso isso é possível fazer isso usando o comando Control em suas opções Check e UnCheck.
Exemplo (veja os comentários no código):
Quando você mencionou botão, pensei que se tratava de um botão em uma gui (button), mas vejo que se trata na verdade de uma hotkey (F7).
Em ambos o caso isso é possível fazer isso usando o comando Control em suas opções Check e UnCheck.
Exemplo (veja os comentários no código):
Code: Select all
Gui, add, Text, x20 y20, Aperte F7 para marcar`n a checbox abaixo
gui, add, checkbox, x50 y50 vMARCADA_OU_DESMARCADA ; Usamos uma variável para o controle Checkbox.
gui, show, w200 h200, Exemplo - Checkbox
return
F7::
Gui, submit, nohide ; Populamos as variáveis dos controles.
If ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 1)) ; E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário).
{
Control, UnCheck,, Button1, Exemplo - Checkbox ; Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada).
Return
}
Else if ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 0)) ; Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe.
{
Control, Check,, Button1, Exemplo - Checkbox ; E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada)
Return
}
else ; Agora se nenhuma das verificações deu resultado...
{
msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ; É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela).
Return
}
Return
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Re: botão marca checkbox
Obrigado @Gio, esse código funcionou bem em script, só não consegui adaptar ao que eu já tinha, acho que o problema foi a variável, porque minha checkbox já tem uma label.Gio wrote: ↑05 Jun 2020, 08:28Bom dia Lazyyy.
Quando você mencionou botão, pensei que se tratava de um botão em uma gui (button), mas vejo que se trata na verdade de uma hotkey (F7).
Em ambos o caso isso é possível fazer isso usando o comando Control em suas opções Check e UnCheck.
Exemplo (veja os comentários no código):
Code: Select all
Gui, add, Text, x20 y20, Aperte F7 para marcar`n a checbox abaixo gui, add, checkbox, x50 y50 vMARCADA_OU_DESMARCADA ; Usamos uma variável para o controle Checkbox. gui, show, w200 h200, Exemplo - Checkbox return F7:: Gui, submit, nohide ; Populamos as variáveis dos controles. If ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 1)) ; E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário). { Control, UnCheck,, Button1, Exemplo - Checkbox ; Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada). Return } Else if ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 0)) ; Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe. { Control, Check,, Button1, Exemplo - Checkbox ; E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada) Return } else ; Agora se nenhuma das verificações deu resultado... { msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ; É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela). Return } Return
Meu código:
Code: Select all
Gui, Add, CheckBox, vCheck4 x18 y220 w160 h20 gstop1, STOP
Gui, show
Return
gosub stop1
stop1:
Gui, Submit, NoHide
if (check4)
{
FileDelete, %A_ScriptDir%/Data/safestop.txt
FileAppend, true, %A_ScriptDir%/Data/safestop.txt
}
else
{
FileDelete, %A_ScriptDir%/Data/safestop.txt
FileAppend, false, %A_ScriptDir%/Data/safestop.txt
}
Return
Re: botão marca checkbox Topic is solved
@Gio , obrigado
@Lazyyy boa tarde , save state in INI ( iniread / iniwrite )
@Lazyyy boa tarde , save state in INI ( iniread / iniwrite )
Code: Select all
;-------- saved at 2020-06-06 19:30 UTC --------------
;- botão marca checkbox / Gio
;- https://www.autohotkey.com/boards/viewtopic.php?f=69&t=76913
Gui,2: -dpiscale
Gui,2:color,black,black
Gui,2:Font,s12 cYellow,Lucida Console
f1=%A_scriptdir%\safestop.txt
ifnotexist,%f1%
IniWrite,1,%f1%,yes_no,state
IniRead,var1, %f1%,yes_no,state
if (var1=1)
cb1=checked
else
cb1=
Gui,2:add,Text,x20 y5 cGray, Aperte F7 para marcar a checkbox abaixo
Gui,2:add,edit,x10 y60 w270 h40 vE1 -hscroll -vscroll center readonly
Gui,2:Add, CheckBox, vVar1 %cb1% x18 y200 gAA, STOP
Gui,2:show,x500 y100 w800 h300,Exemplo - Checkbox
Gosub,aa
Return
;----------
aa:
Gui,2:submit, nohide
if (Var1=1)
GuiControl,2:,E1,Checked
else
GuiControl,2:,E1,NOT Checked
return
;----------
2Guiclose:
Gui,2:submit,nohide
IniWrite,%var1%,%f1%,yes_no,state
exitapp
;------------------------------------
$F7::
Gui,2: submit, nohide ;- Populamos as variáveis dos controles.
If ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 1)) ;- E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário).
{
Control, UnCheck,, Button1, Exemplo - Checkbox ;- Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada).
Return
}
Else if ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 0)) ;- Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe.
{
Control, Check,, Button1, Exemplo - Checkbox ;- E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada)
Return
}
else ;- Agora se nenhuma das verificações deu resultado...
{
msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ;- É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela).
Return
}
Return
;===================================
Re: botão marca checkbox
ficou muito confuso pra mim, não consegui adaptar ao meu código. Tem algum jeito mais fácil de fazer isso?garry wrote: ↑06 Jun 2020, 14:16@Gio , obrigado
@Lazyyy boa tarde , save state in INI ( iniread / iniwrite )Code: Select all
;-------- saved at 2020-06-06 19:30 UTC -------------- ;- botão marca checkbox / Gio ;- https://www.autohotkey.com/boards/viewtopic.php?f=69&t=76913 Gui,2: -dpiscale Gui,2:color,black,black Gui,2:Font,s12 cYellow,Lucida Console f1=%A_scriptdir%\safestop.txt ifnotexist,%f1% IniWrite,1,%f1%,yes_no,state IniRead,var1, %f1%,yes_no,state if (var1=1) cb1=checked else cb1= Gui,2:add,Text,x20 y5 cGray, Aperte F7 para marcar a checkbox abaixo Gui,2:add,edit,x10 y60 w270 h40 vE1 -hscroll -vscroll center readonly Gui,2:Add, CheckBox, vVar1 %cb1% x18 y200 gAA, STOP Gui,2:show,x500 y100 w800 h300,Exemplo - Checkbox Gosub,aa Return ;---------- aa: Gui,2:submit, nohide if (Var1=1) GuiControl,2:,E1,Checked else GuiControl,2:,E1,NOT Checked return ;---------- 2Guiclose: Gui,2:submit,nohide IniWrite,%var1%,%f1%,yes_no,state exitapp ;------------------------------------ $F7:: Gui,2: submit, nohide ;- Populamos as variáveis dos controles. If ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 1)) ;- E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário). { Control, UnCheck,, Button1, Exemplo - Checkbox ;- Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada). Return } Else if ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 0)) ;- Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe. { Control, Check,, Button1, Exemplo - Checkbox ;- E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada) Return } else ;- Agora se nenhuma das verificações deu resultado... { msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ;- É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela). Return } Return ;===================================
Re: botão marca checkbox
Eu pessoalmente não uso ele, mas me parece algo bem simples, a unica coisa que precisa ser feita, é trocar a variavel de dentro desse script, pela variavel da sua CheckBox, nada mais
Discord: Npc Bugado#9074
local config = {
delrey = getPlayerCarValue(cid, DELREY),
cigarro = getPlayerCancer(cid, DERBY),
prostituta = getPlayerAIDS(cid, cracuda),
tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end
local config = {
delrey = getPlayerCarValue(cid, DELREY),
cigarro = getPlayerCancer(cid, DERBY),
prostituta = getPlayerAIDS(cid, cracuda),
tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end
Re: botão marca checkbox
@Gio , obrigado > F7 button
@Lazyyy boa tarde ,exemplo fácil : Checkbox / IniRead
@Lazyyy boa tarde ,exemplo fácil : Checkbox / IniRead
Code: Select all
;- Checkbox and Iniread example ---------------------
;Modified = 20200611
;Created = 20200611
#Warn
#NoEnv
#SingleInstance force
filename1=Checkbox_IniReadWrite
SetWorkingDir, %A_ScriptDir%
Gui,2: Color, Gray,Black
Gui,2: Font,s12 cYellow ,Lucida Console ;- font , font-size and color
;----------- ini-file create once and read ------------------------
RSSINI=%A_scriptdir%\%filename1%_config.ini
ifnotexist,%rssini%
{
IniWrite,notepad, %rssini% , Program-1 ,EXE
IniWrite,calc , %rssini% , Program-2 ,EXE
}
IniRead, var1, %rssini%, Program-1, EXE
IniRead, var2, %rssini%, Program-2, EXE
;---------- check ini file -----------------------------------------
if (var1=1)
cb1a=checked
else
cb1a=
;------------
if (var2=1)
cb2a=checked
else
cb2a=
;--------------------------------------------------------------------
Gui,2:Add, checkbox, x10 y10 vcb1 %cb1a%, NotePad
Gui,2:Add, Checkbox, x10 y40 vcb2 %cb2a%, Calc
Gui,2: Add, Button, x10 y80 w160 h27 gRunSelected ,Run_Selected
Gui,2: Add, Button, x180 y80 w170 h27 gClearCheckBox,Clear_Checkbox
Gui,2: Show,x100 y10 w370 h120,%filename1%
return
;======================== END GUI =============================================
;- close script and save checkbox settings ----------------------------
2Guiclose:
Gui,2:submit,nohide
IniWrite, %Cb1% , %rssini% ,Program-1 , EXE
IniWrite, %Cb2% , %rssini% ,Program-2 , EXE
exitapp
;--------- Run Selected ---------------------
RunSelected:
Gui,2: submit, nohide
If (cb1 = 1)
run,Notepad
If (cb2 = 1)
run,calc
return
;---------- clearcheckbox --------------------
clearcheckbox:
Loop,2
GuiControl,2:, cb%A_Index%, 0
return
;============== END SCRIPT =============================================
Re: botão marca checkbox
obrigado, @garry consegui utilizando seu primeiro código
Return to “Ajuda e Suporte Geral”
Who is online
Users browsing this forum: No registered users and 28 guests