Aviso nas bordas da tela Topic is solved

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

Moderator: Gio

LuanMts
Posts: 20
Joined: 24 May 2020, 00:36

Aviso nas bordas da tela

30 Mar 2021, 15:11

Gostaria de criar um script que desse um aviso quando o ponteiro se encontra nas bordas da tela, um aviso sonoro (não sei se tem como usar som no AHK, apenas vi algumas coisas relacionadas a posição do ponteiro e áreas da tela).

Agradeço a atenção! Fico no aguardo! :)
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Aviso nas bordas da tela  Topic is solved

30 Mar 2021, 17:32

Boa tarde LuanMTS.

Isso é relativamente simples de fazer com SetTimer, MouseGetPos, uma condicional If e SoundBeep.

Exemplo:

Code: Select all

#Persistent
SetTimer, CHECAR_POSICAO, 200
return

CHECAR_POSICAO:
CoordMode, Mouse, Screen
MouseGetPos, PosX, PosY
If ((PosX <= 0) OR (PosY <= 0) OR (PosX >= A_ScreenWidth - 1) OR (PosY >= A_ScreenHeight - 1))
{
	SoundBeep
}
Return

:arrow: E sim, tem como usar Som no AutoHotkey, não só o soundbeep, mas arquivos de som também. Na minha sig tem um link pro ArchMage Gray, um joguinho que eu fiz totalmente em AutoHotkey, e ele é cheio de sons que são totalmente controlados pelo script (tem som de "tiro", música tema, som de morte dos inimigos, etc). Portanto não se preocupe quanto a isso.
LuanMts
Posts: 20
Joined: 24 May 2020, 00:36

Re: Aviso nas bordas da tela

31 Mar 2021, 01:34

Muito obrigado, Gio! Excelente!

Consegui usar o beep apitando com intervalos quando o mouse se encontra em qualquer uma das quatro bordas em uma região que eu escolhi. Mas se eu quiser usar um beep constante tem como? (pode ter uma margem de erro, ou seja, apitar por um instante mesmo fora da borda)
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Aviso nas bordas da tela

31 Mar 2021, 11:13

Um beep constante?

Bom, um beep normalmente começa baixo, aumenta e depois abaixa pra finalizar, mas você pode fazer o que quiser com um arquivo de audio (inclusive deixar o barulho "constante" ou "quase constante" durante uma longa duração).

:arrow: Coloquei um arquivo de audio em anexo (compactado) com um barulho "constante" (de 120 segundos). Após esse período, o arquivo tem um replay automático no script se o mouse ainda estiver na área das bordas. Descompacte o arquivo de audio na pasta do script abaixo e verifique se é isso que você buscava:

Code: Select all

#Persistent
SetTimer, CHECAR_POSICAO, 200

WMA1 := ComObjCreate("WMPlayer.OCX")
WMA1.url := A_ScriptDir . "/Beep120sec.mp3"
WMA1.settings.AutoStart := 1
WMA1.controls.stop		

NAO_ESTA_TOCANDO := 1
return

CHECAR_POSICAO:
CoordMode, Mouse, Screen
MouseGetPos, PosX, PosY
If (((PosX <= 0) OR (PosY <= 0) OR (PosX >= A_ScreenWidth - 1) OR (PosY >= A_ScreenHeight - 1)) AND (ESTA_TOCANDO = 0))
{
	WMA1.controls.play
	INICIO_DO_TOQUE := A_TickCount
	ESTA_TOCANDO := 1
}
If ((PosX > 0) AND (PosY > 0) AND (PosX < A_ScreenWidth - 1) AND (PosY < A_ScreenHeight - 1))
{
	WMA1.controls.stop
	ESTA_TOCANDO := 0
}
If ((A_TickCount - INICIO_DO_TOQUE > 120000) AND (ESTA_TOCANDO = 1))
{
	wma1.controls.currentPosition := 0
	ESTA_TOCANDO := 0
}
Return
Attachments
beep120sec.zip
(730.49 KiB) Downloaded 16 times

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 42 guests