Logo Hardware.com.br
enes
enes Membro Senior Registrado
190 Mensagens 7 Curtidas

Software de gravação de macro para linux...

#1 Por enes 27/05/2008 - 15:52
Pessoal, saudações!

Já faz algum tempo que estou procurando um software de gravação de macros (teclado e mouse) para linux. O software que estou procurando seria algo similar ao EZ - Macros, usado no windows para automatizar algumas tarefas. Não sei se existe isso no linux. Se alguém tiver idéia de onde encontrar o software pronto, ou mesmo alguma função que possa ser implementada, eu agradeco muito.

Muito obrigado!
Responder
Mike Pacasi
Mike Pacasi Geek Registrado
2.4K Mensagens 94 Curtidas
#2 Por Mike Pacasi
28/05/2008 - 02:33
enes disse:
...Já faz algum tempo que estou procurando um software de gravação de macros (teclado e mouse) para linux. O software que estou procurando seria algo similar ao EZ - Macros, usado no windows para automatizar algumas tarefas. Não sei se existe isso no linux. Se alguém tiver idéia de onde encontrar o software pronto, ou mesmo alguma função que possa ser implementada, eu agradeco muito.
Olá... Quando eu preciso automatizar uma seqüência de teclas, eu uso o comando alias e uma seqüência de letras: Veja um exemplo: Vou digitar dua letras "e" + "j" (de "ejetar") e o meu CD-ROM vai fazer o seguinte:

Abrir (ejetar) ---> Esperar 8 segundos (prá eu colocar um CD dentro) ---> Fechar automáticamente ---> Executar o comando `$ ls -l /media/cdrom0`

Veja como eu defino o alias "ej":

$ alias ej="eject; sleep 8; eject -t; mount /dev/hdc; ls -l /media/cdrom0"
Neste meu caso, o CD-ROM está definido no /etc/fstab com parametros user, noauto de forma que eu possa montá-lo manualmente com a seqüência de teclas ou comando "ej"

Se quiser que os seus comandos alias customizados sejam permanentes, defina-os no arquivo ~/.bashrc

Exemplos:

# alguns alias ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias ej="eject; sleep 8; eject -t; mount /dev/hdc; ls -l /media/cdrom0"
De forma mais complicada (sei que não é o que vc quer fazer...), mas mais elegante, você pode criar um programa "daemon" em Python por exemplo, que fica monitorando os eventos das teclas e executa comandos qdo. uma seqüência de teclas é acionada pelo usuário: Veja aqui um exemplo

Manual do Python

Flw!
Ubuntu, Debian and Fedora User

enes
enes Membro Senior Registrado
190 Mensagens 7 Curtidas
#3 Por enes
28/05/2008 - 13:46
Cara, apesar de não ser exatamente o que eu estou procurando, esta é a solução mais próxima que eu já vi até agora. Você não faz ideia do quanto as suas dicas serão úteis para mim. Na verdade já estou pensando em fazer um gravador de macros, seguindo a sua dica do Python eu acho que é possivel fazer um programinha que captura uma seguencia de teclas e depois executa esta seguencia quando eu quizer. Acho que é só usar o monitoramento de eventos como você disse. Na verdade eu criei um gravador de macros para windows em lazarus, usando este mesmo esquema, mas no linux eu não sei como trabalhar com eventos.

Muito obrigado pela ajuda e...só mais uma coisa, você acha que é possivel fazer isso em free pascal? é que eu não programo em Python.

Muito obrigado, sua ajuda foi realmente muito boa.
Em ordem crescente de importância: Windows, Linux, Eu... cool.png !!!
Mike Pacasi
Mike Pacasi Geek Registrado
2.4K Mensagens 94 Curtidas
#4 Por Mike Pacasi
28/05/2008 - 17:04
enes disse:
Cara, apesar de não ser exatamente o que eu estou procurando, esta é a solução mais próxima que eu já vi até agora. Você não faz ideia do quanto as suas dicas serão úteis para mim. Na verdade já estou pensando em fazer um gravador de macros, seguindo a sua dica do Python eu acho que é possivel fazer um programinha que captura uma seguencia de teclas e depois executa esta seguencia quando eu quizer. Acho que é só usar o monitoramento de eventos como você disse. Na verdade eu criei um gravador de macros para windows em lazarus, usando este mesmo esquema, mas no linux eu não sei como trabalhar com eventos.

Muito obrigado pela ajuda e...só mais uma coisa, você acha que é possivel fazer isso em free pascal? é que eu não programo em Python.

Muito obrigado, sua ajuda foi realmente muito boa.
Ôpa..! Blz..! Mas o pacote Lazarus tem também disponível para Debian GNU/Linux amd64 e i386 e inclui o próprio lazarus, free pascal, compilador, ide, utils e units para uma série de aplicações como gtk, libc, multimedia, etc. Não sei te dizer se tem a mesma funcionalidade do lazarus no windows, já que lá ele deve ser integrado a outras tecnologias. Então mesmo usando o Lazarus no Linux, vc teria que se adaptar a outras aplicações como gtk, etc.

De qualquer forma, usando Lazarus, Python ou outra linguagem qquer, vc precisa criar um script ou binário tipo daemon que vai ficar monitorando os eventos das teclas e atualizando o estado das correspondentes variáveis de ambiente (ou coisa parecida...), para que um outro programa (ou ele mesmo) dispare as ações programadas, essas ações podem ser definidas num arquivo de configuração ou numa interface gráfica (Tkinter). Depois vc cria um script de inicialização e parada (start/stop), apontando para o seu daemon.py, para colocá-lo em /etc/init.d. Veja um exemplo em Python.

Embora isso não seja necessário (é só um "palpite"..), se vc fizer um programa básico e funcional e publicá-lo sob a GPL, é possível que apareçam colaboradores que irão ajudá-lo a incrementá-lo para satisfazer as necessidades específicas de cada um, permitindo que vc economize seu tempo e ganhe em qualidade. Se eu fosse fazer um programa SL/CA, eu jamais tentaria fazer tudo sózinho...Mesmo que fosse algo pequeno e simples, eu iria publicá-lo e divulgá-lo sob a GPL.

Flw!
Ubuntu, Debian and Fedora User

enes
enes Membro Senior Registrado
190 Mensagens 7 Curtidas
#5 Por enes
28/05/2008 - 17:32
Então cara, infelizmente eu não posso compilar o mesmo código que usei no windows usando o lazarus for linux, isto porque eu utilizei algumas funções da API do windows para fazer a paradinha funcionar. Toda a parte de monitoramento de teclas foi feita usando a Getasynckeystate que é da API do windows, no linux eu não sei como fazer isso, na verdade nem tenho idéia de como monitorar as teclas, mouse e outros eventos no linux. Será que tem alguma coisa semelhante a função GetAsyncKeyState no linux?

Quanto a idéia de torná-lo GPL, eu posso fazer isso sim, seria uma honra poder contribuir e receber contribuições da comunidade, só que eu programo mais por hobby e não sou profissional não. Não sei se meus conhecimentos seriam de alguma utilidade numa comunidade tão rica em programadores experts.
nomralmente crio aplicações para meu próprio uso e para alguns amigos, mas posso liberar sob a GPL sem problema nenhum...só não sei como isso seria visto pela comunidade...

Obrigado de novo e souber alguma dica sobre programação de eventos no linux e algo do tipo, fico grato!
Em ordem crescente de importância: Windows, Linux, Eu... cool.png !!!
Mike Pacasi
Mike Pacasi Geek Registrado
2.4K Mensagens 94 Curtidas
#6 Por Mike Pacasi
28/05/2008 - 21:01
enes disse:
Então cara, infelizmente eu não posso compilar o mesmo código que usei no windows usando o lazarus for linux, isto porque eu utilizei algumas funções da API do windows para fazer a paradinha funcionar. Toda a parte de monitoramento de teclas foi feita usando a Getasynckeystate que é da API do windows, no linux eu não sei como fazer isso, na verdade nem tenho idéia de como monitorar as teclas, mouse e outros eventos no linux. Será que tem alguma coisa semelhante a função GetAsyncKeyState no linux?

Quanto a idéia de torná-lo GPL, eu posso fazer isso sim, seria uma honra poder contribuir e receber contribuições da comunidade, só que eu programo mais por hobby e não sou profissional não. Não sei se meus conhecimentos seriam de alguma utilidade numa comunidade tão rica em programadores experts.
nomralmente crio aplicações para meu próprio uso e para alguns amigos, mas posso liberar sob a GPL sem problema nenhum...só não sei como isso seria visto pela comunidade...

Obrigado de novo e souber alguma dica sobre programação de eventos no linux e algo do tipo, ....
Só prá confirmar: Com o Lazarus para Linux você consegue programar os eventos de teclado com as units para a linguagem FreePascal/GTK+.

Para usar GTK+ com Free Pascal, vc tem que declarar a unit GTK:
USES gtk,gdk,glib;
Então vc pode usar as rotinas GTK+ para programar os seus objetos visuais, e compilá-los com o compilador do FreePascal. Veja aqui.


Flw!
Ubuntu, Debian and Fedora User

SuporteTecnicoID
SuporteTecni... Membro Senior Registrado
230 Mensagens 2 Curtidas
#8 Por SuporteTecni...
17/12/2008 - 20:35
enes disse:
Blz, valeu pela ajuda cara! vou estudar um pouco isso e ver o que sai...olha se tudo der certo posto o código aqui depois...valeu mesmo!


Pode usar o :

http://sourceforge.net/forum/forum.php?forum_id=623223
ou
http://xmacro.sourceforge.net/
ou
ajude a implementar o meu script:
http://www.resulinux.forumdebian.com.br/web/forum/viewtopic.php?t=4212&highlight=

smile.pngsmile.pngsmile.png
k7.0
www.indexdata.com.br
Autorizada AmazonPC kennex CCE MegaWare Excess kelyx Oregon Advanced Cameras Genius,
SuporteTecnicoID
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal