Aos amigos experientes com autohotkey sou cego e preciso de ajuda sobre um script que estou começando a fazer

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

Moderator: Gio

thomasmessi
Posts: 46
Joined: 22 Dec 2019, 17:33

Aos amigos experientes com autohotkey sou cego e preciso de ajuda sobre um script que estou começando a fazer

24 Dec 2019, 09:48

Saudações aos amigos brasileiro que compartilham seus conhecimentos para os novos aprendizes.
Bom eu sou cego total e comecei a desenvolver um script com clicar com o mouse em coordenadas em um programa que não tem acessibilidade com leitores de tela e são os leitores de tela que possibilitam nós cegos a usarmos o computador com autonomia.

em 5 dias estudando os tópicos do fórum já comecei a fazer e aprendi algumas coisas e sou grato a vocês e a moderação.

Vamos as minhas questões:

Para quem enxerga o programa que estou mapeando e tentando deixar um pouco acessível com os movimentos e clicks do mouse e acessado basicamente por clicks. Mas como esta tela não dá informação onde podemos clicar, eis que estou mapeando aos poucos com ajuda de quem enxerga para poder capturar as coordenadas e eu fazer o script e a ação possa funcionar e acontecer..

primeiro como fazer com que ao iniciar o script ele fale o título do meu script, vi isso em um script e achei super útil para nós, pois, ao clicar no script pela primeira vez, poderia retornar uma mensagem como: seu script foi iniciado. Mas não é como aquelas caixas de diálogos. É só um aviso e depois some.
É como se chegasse uma notificação na bandeja do sistema do windows e o leitor de tela lesse esta notificação é assim que nós somos avisados com novas notificações.


Segundo, na tela deste programa tem escrito módulo A, módulo b, módulo c, módulo d. Como eu poderia fazer para que ao mover o mouse para cima da categoria, clicasse e falasse o nome onde o mouse está posicionado.. Retornando um anúncio como se fosse um balão de texto e sumisse só para nos informar onde estamos clicando

obs: neste caso o comando _Mouseclick e MouseMove_ já consegui fazer e ter ação, falta apenas essa possibilidade de falar ou anunciar o ítem ao mover o mouse para cima da coordenada ou quando clicar em cima
por exemplo quando estudei html quando colocávamos o mouse em cima de um botão vem o balão com a informação do botão por exemplo enviar _acho que o parâmetro em html do botão pra falar o texto seria o "name text"_


terceiro, como poderia fazer para criar um menu de contexto e esse menu de contexto fosse acessável ao clicar com o botão direito do mouse, descer com as setas do teclado ou subisse e quando estivesse em cima do item ao apertar enter acessasse este ítem. e também falasse o nome do ítem por exemplo você clicou no piano natural S..

E finalizando para nós cegos os movimentos do mouse e suas ações são importantíssimas para nos dar acessibilidade, pois onde o mouse passa e nos traz balões de informações ou botões clicáveis rotulados com nome ou etiqueta é como se fosse nossos olhos

Agradeço a paciência e atenção, peço desculpas pelo pedido longo, mas não poderia ser diferente para tentarem ajudar e entender o contexto da minha dificuldade e idéia.
User avatar
Gio
Posts: 1095
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Aos amigos experientes com autohotkey sou cego e preciso de ajuda sobre um script que estou começando a fazer

24 Dec 2019, 13:01

Bom dia Thomasmessi.

Seja bem-vindo aos fóruns da comunidade do AutoHotkey.

primeiro como fazer com que ao iniciar o script ele fale o título do meu script
Você pode usar a funcionalidade de TTS do windows através da tecnologia COM. Coloque as três linhas abaixo no início do script e ajuste para que o título correspondente seja indicado em cada script.

Code: Select all

oVoice := ComObjCreate("SAPI.SpVoice")
oVoice.Speak("Escreva o título do script aqui",0x0)
oVoice := ""

:arrow: Dependendo da sua versão (e do idioma) do windows você pode acabar escutando a mensagem na matriz fonética do português, inglês, espanhol ou outra língua qualquer configurada. As vezes o português está presente, porém não é a voz principal e as vezes não está nem presente. Nesse caso você deve testar qual das vozes fica melhor. O script abaixo exemplifica o uso de 3 vozes diferentes (a quantidade de vozes instalada muda, pode ser que não hajam 3 ou que hajam mais ou menos que 3. No meu são 3):

Code: Select all

oTTS := ComObjCreate("SAPI.SpVoice")	
oTTS.Voice := oTTS.GetVoices().Item(0)
oTTS.Speak("Escreva o título do script aqui",0x0)
oTTS.Voice := oTTS.GetVoices().Item(1)
oTTS.Speak("Escreva o título do script aqui",0x0)
oTTS.Voice := oTTS.GetVoices().Item(2)
oTTS.Speak("Escreva o título do script aqui",0x0)	
oTTS := ""

Para ver a quantidade de vozes instaladas na sua máquina, basta executar o script abaixo:

Code: Select all

MsgBox % ComObjCreate("SAPI.SpVoice").GetVoices.Count

:arrow: Essa API de voz do windows é bem mais completa do que estamos tratamos aqui. Existem muitas opções para fazer quase tudo o que desejar (falar mais rápido, mais devagar, mais alto, mais baixo, identificar as vozes disponíveis pelo nome... etc).

Segundo, na tela deste programa tem escrito módulo A, módulo b, módulo c, módulo d. Como eu poderia fazer para que ao mover o mouse para cima da categoria, clicasse e falasse o nome onde o mouse está posicionado.. Retornando um anúncio como se fosse um balão de texto e sumisse só para nos informar onde estamos clicando

Tem como você anexar uma imagem dessa tela em um post abaixo?

terceiro, como poderia fazer para criar um menu de contexto e esse menu de contexto fosse acessável ao clicar com o botão direito do mouse, descer com as setas do teclado ou subisse e quando estivesse em cima do item ao apertar enter acessasse este ítem. e também falasse o nome do ítem por exemplo você clicou no piano natural S..

A ideia não está muito clara para mim. Como seriam definidas as opções desse menu? seriam opções padrão ou dependeria de onde você clicou? Criar menus acessíveis pelo mouse com opções padrões é uma tarefa relativamente fácil no AutoHotkey.

:arrow: No código abaixo, o menu de contexto exemplo é acessado segurando o botão direito do mouse e em seguida apertando o esquerdo (fiz isso porque a função padrão do botão direito sozinho é muito importante no windows, então não recomendo uma hotkey que seja feita com esse botão somente).

Após acessar o menu de contexto, você pode usar as teclas de setas e o enter para ativar os itens conforme desejado. O nome do item acessado será falado.

Code: Select all

oVoice := ComObjCreate("SAPI.SpVoice")
	
	;Menu, Abrir, add, Abrir, :Abrir
	Menu, Arquivo, add, Abrir, Abrir
	Menu, Arquivo, add, Fechar, Fechar
	Menu, Arquivo, add, Salvar, Salvar
	Menu, Editar, add, Localizar, Localizar
	Menu, ToolBar, add, Arquivo, :Arquivo
	Menu, ToolBar, add, Editar, :Editar
	Return
	
	Arquivo:
	oVoice.Speak("Clicou em Arquivo",0x0)
	Return
	
	Abrir:
	oVoice.Speak("Clicou em Abrir",0x0)
	Return
	
	Fechar:
	oVoice.Speak("Clicou em Fechar",0x0)
	Return
	
	Salvar:
	oVoice.Speak("Clicou em Salvar",0x0)
	Return
	
	Localizar:
	oVoice.Speak("Clicou em Localizar",0x0)
	Return	
	
	Rbutton & LButton::
	Menu, Toolbar, show
	Return
	
	Rbutton::
	Send {Rbutton}
	Return
:arrow: Criar opções customizadas dependendo de onde você clicou também é possível, mas nesse caso teria que programar toda a inteligência e as rotinas que definiriam cada possibilidade de menu. Isso seria mais como um projeto, portanto recomendaria usar o exemplo acima e ir modificando o script aos poucos, adicionando cada funcionalidade ao longo do desenvolvimento.

:arrow: Sobre o pedido longo: Não tem problema ser um pedido longo, mas atrapalha um pouco responder 3 coisas em um post só. Então vamos fazer o seguinte: foquemos de agora em diante em uma única pergunta e quando ela estiver respondida prosseguimos para a próxima ok? Também gostaria que fizesse um tópico por pergunta, colocando um título que correspondesse diretamente ao assunto ou sub-assunto tratato, pois assim podemos indexar melhor os tópicos no nosso fórum :thumbup:
thomasmessi
Posts: 46
Joined: 22 Dec 2019, 17:33

Re: Aos amigos experientes com autohotkey sou cego e preciso de ajuda sobre um script que estou começando a fazer

24 Dec 2019, 22:27

Em primeiro lugar mais um vez desculpe pelo post longo e com muitas dúvidas.
Vou tentar explicar melhor.

meu início de projeto

alt & k::
MouseClick left, 250, 250
Return
;aqui o mouse se movimenta para cima de um botão que não tem acessibilidade nem identificação para quem é cego, é apenas gráfico e avança os instrumentos.

alt & j::
MouseClick left, 200, 250
Return

;aqui o mouse se movimenta para cima de um botão sem identificação ou rótulo e retrocede os instrumentos.

A minha dúvida inicial é: Ao mover o mouse para cima do botão que está na tela, que é de um programa que não tem acessibilidade, mas que com o click do mouse é possível ter a ação de voltar e avançar, é possível colocar alguma linha no código do script que ao mover ou clicar anunciasse o nome por exemplo avançar instrumento ou voltar instrumento. Como se fosse igual a um balão quando colocamos o mouse em cima de um ícone na área de trabalho do windows por exemplo??
Estou mapeando um programa que não é acessível para cegos, mas com comandos de clicks de mouse definindo as coordenadas x e y e fazendo a função MouseClick e MouseClickDrag consigo fazer as ações, mas para ficar ainda melhor queria que ao posicionar o mouse eu pudesse inserir uma identificação na posição ou um nome do local onde será clicado.

obrigado pela ajuda.
User avatar
Gio
Posts: 1095
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Aos amigos experientes com autohotkey sou cego e preciso de ajuda sobre um script que estou começando a fazer

26 Dec 2019, 08:26

Bom dia Thomasmessi.

Vi que conseguiu algumas respostas no fórum em inglês durante o natal.

Para referências futuras e caso alguém se interesse, este é o tópico onde as perguntas do nosso amigo foram respondidas: https://www.autohotkey.com/boards/viewtopic.php?f=76&t=71024

E antes tarde do que nunca: Feliz natal :xmas:
thomasmessi
Posts: 46
Joined: 22 Dec 2019, 17:33

Re: Aos amigos experientes com autohotkey sou cego e preciso de ajuda sobre um script que estou começando a fazer

08 Feb 2020, 13:50

olá muito boa tarde. Somente agora vi essas respostas. Ainda estou me adaptando as pesquisas com mais precisão pelo fórum. Para nós cegos é um desafio, porém existe acessibilidade!
Sim, meu script teve um grande avanço e agradeço pela ajuda.
Mas ainda seguindo a mesma linha de pensamento, gostaria de fazer duas questões para est mesmo script.
Nas telas de programas que não são acessíveis, existem butões virtuais que podem ser girados como os knobis e os deslizantes para cima e para baixo.

Como eu faria para conseguir estes controles ou ações usando apenas o teclado. Visto que, quem enxerga, é só clicar com o mouse em cima e arrasta ou ir girando com a roda do mouse.
Mas para nós o mouse físico não ajuda nada. Somente o teclado .

ps: eu já tenho a posição do mapeamento dos botões, falta apenas fazer com que tenha ação certa.

alguma idéia??


agradeço! E posso até gravar minha tela em vídeo para uma melhor análise dos amigos.

E algumas informações sobre o deslizante que eu acho ser mais fácil criar a linha de comando.

Alt & j::
MouseClick left, 250, 350 ; esta posição é a inicial do botão deslizante
MouseClick left, 250, 380 ;aqui é a posição final do deslizante. É como se fosse um controle de volume e efeito que sobe e desce.
Return

A pergunta sobre o fader deslizante: Tem como fazer um comando com a tecla page down para descer de 1 em 1 e a tecla page up para subir de 1 em 1???

E sobre o botão que pode ser girado: ele começa do lado esquerdo e pode ser girado até o lado direito.

abraços e desculpem o e-mail longo demais.
meu contato pessoal 92994236781 se quiserem enviar whatsapp estou on line direto e gostaria muito desta ajuda para ajudar outros cegos também.

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: Joerbeth and 2 guests