
Bem pessoal, como a continuação do tutoria sobre o Android deve demorar mais um pouco, para dar uma movimentada por aqui, resolvi postar um breve artigo sobre o fantástico AutoHotkey.
Para quem não conhece AutoHotkey é um utilitário open-source que permite, dentre outras coisas, fazer automação de tarefas repetitivas de mouse e teclado, criar teclas de atalho (dai o nome...) e o desenvolver interfaces gráficas simples. Neste artigo utilizaremos o AutoHotkey como uma linguagem de programação de propósito geral, fazendo proveito de sua velocidade e simplicidade. Não me aprofundarei na sintaxe das construções do AutoHotkey, muito menos tenho a pretenção de passar conceitos básicos informática geral, lógica de programação, etc... Presume-se que o leitor tenha intimidade com computadores e conhecimento básico de desenvolvimento de sistemas.
Objetivo
O objetivo do utilitário que desenvolveremos é facilitar a adição de "entradas" no menu de contexto. O menu de contexto é apresentado sempre que clicamos com o botão direito do mouse sobre um arquivo ou pasta, e como o próprio nome sugere, é sensível ao contexto, variando conforme o tipo de arquivo que está sendo clicado.

"Fisiologia" do Programa
Tecnicamente o que o software vai fazer é adicionar uma chave ao Registro do Windows, mais precisamente em HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*, podemos verificar as entradas existentes atravez do "Editor de Registro", para acessa-lo basta seguir os seguintes passos:
INICIAR -> EXECUTAR -> [digite] regedit

A navegação no regedit é muito semelhante a do Windows Explorer, você "expande" as pastas (no caso do registro, chaves) e vai descendo na hierarquia.

Com o intuito de manter a simplicidade, nosso programa de fato não vai ser sensível ao contexto. A chave, invariavelmente, será criada no contexto "*", ou seja, será válida para todos os tipos de arquivo.
Como relatei mais acima, passarei apenas "linhas gerais" do programa, vou me deter na "solução" em si, e não como chegar até ela, disponibilizarei o código, e como o mesmo está razoavelmente bem documentado, pode-se aprender um pouco mais com sua "leitura".
A alma do programa se resume a linha 27.
É nesta linha que informamos o caminho e os valores que devem ser adicionados. A "função" RegWrite possui os seguintes parâmetros:
RegWrite, [TIPO DE DADOS],[CHAVE PRINCIPAL],[NOME DO VALOR],[VALOR]
No caso do nosso software, criaremos um novo "valor de sequência" (REG_SZ), a partir da chave HKEY_LOCAL_MACHINE (ou seja, válido para todos os usuários), descendo a hierarquia de "chaves" SOFTWARE\Classes\*\shell, adicionaremos uma nova cujo o nome é a descrição informada pelo usuário, e uma sub-chave de nome command que contém um valor de sequência padrão cujo o conteúdo é o path do programa que deve ser executado.

Executando o Programa (Instruções de uso)
Ao executar o programa, sua tela principal é apresentada, devemos digitar no primeiro campo o caminho (path) do programa que deverá ser executado (ou busca-lo com o botão "...") seguido de "%1", isso é necessário para informar ao programa o nome do arquivo a ser editado. Para adicionar, por exemplo, o notepad a linha de comando teria o seguinte aspecto:
C:\WINDOWS\notepad.exe "%1"
As aspas também são necessárias para evitar problemas com arquivos que contém espaços em seus nomes (pois o SO pode interpretar as partes do nome do arquivo como vários parâmetros), herança dos velhos tempos do DOS.
O segundo campo é moleza, basta digitar uma descrição, esta é a que vai ser apresentada no menu de contexto, como por exemplo: Editar com o Notepad

É só clicar no botão Criar e pronto! Acabamos de adicionar uma opção para editar arquivos com o Notepad ao menu de contexto!
Coisas a Fazer
O programa ainda é muito cru, faltam opções para excluir as entradas adicionadas e escolher o contexto (tipo de arquivo), além de melhorias óbvias na interface. Fica a sugestão aos leitores, um bom exercício para os que estão aprendendo!
Conclusão
Bem, tudo o que este programinha faz, é possível fazer com as funcionalidades padrão do Windows, a minha intenção com este artigo, foi somente apresentar a ferramenta para aqueles que ainda não a conheciam e passar alguns truques de edição de registro, espero que todos tenham aproveitado algo, os conceitos aqui apresentados podem ser utilizados em programas mais úteis (a edição programática do registro é muito utilizada em scripts de logon, fica a sugestão). Prometo que vou me esforçar para postar com mais frequência (e com mais qualidade), abraços e até a próxima!
Link para o código fonte
Link para o executável compilado

"Fisiologia" do Programa
Tecnicamente o que o software vai fazer é adicionar uma chave ao Registro do Windows, mais precisamente em HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*, podemos verificar as entradas existentes atravez do "Editor de Registro", para acessa-lo basta seguir os seguintes passos:
INICIAR -> EXECUTAR -> [digite] regedit

A navegação no regedit é muito semelhante a do Windows Explorer, você "expande" as pastas (no caso do registro, chaves) e vai descendo na hierarquia.

Com o intuito de manter a simplicidade, nosso programa de fato não vai ser sensível ao contexto. A chave, invariavelmente, será criada no contexto "*", ou seja, será válida para todos os tipos de arquivo.
Como relatei mais acima, passarei apenas "linhas gerais" do programa, vou me deter na "solução" em si, e não como chegar até ela, disponibilizarei o código, e como o mesmo está razoavelmente bem documentado, pode-se aprender um pouco mais com sua "leitura".
A alma do programa se resume a linha 27.
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\*\shell\%vDescricao%\command,, %vPrograma%
RegWrite, [TIPO DE DADOS],[CHAVE PRINCIPAL],[NOME DO VALOR],[VALOR]
No caso do nosso software, criaremos um novo "valor de sequência" (REG_SZ), a partir da chave HKEY_LOCAL_MACHINE (ou seja, válido para todos os usuários), descendo a hierarquia de "chaves" SOFTWARE\Classes\*\shell, adicionaremos uma nova cujo o nome é a descrição informada pelo usuário, e uma sub-chave de nome command que contém um valor de sequência padrão cujo o conteúdo é o path do programa que deve ser executado.

Executando o Programa (Instruções de uso)
Ao executar o programa, sua tela principal é apresentada, devemos digitar no primeiro campo o caminho (path) do programa que deverá ser executado (ou busca-lo com o botão "...") seguido de "%1", isso é necessário para informar ao programa o nome do arquivo a ser editado. Para adicionar, por exemplo, o notepad a linha de comando teria o seguinte aspecto:
C:\WINDOWS\notepad.exe "%1"
As aspas também são necessárias para evitar problemas com arquivos que contém espaços em seus nomes (pois o SO pode interpretar as partes do nome do arquivo como vários parâmetros), herança dos velhos tempos do DOS.
O segundo campo é moleza, basta digitar uma descrição, esta é a que vai ser apresentada no menu de contexto, como por exemplo: Editar com o Notepad

É só clicar no botão Criar e pronto! Acabamos de adicionar uma opção para editar arquivos com o Notepad ao menu de contexto!
Coisas a Fazer
O programa ainda é muito cru, faltam opções para excluir as entradas adicionadas e escolher o contexto (tipo de arquivo), além de melhorias óbvias na interface. Fica a sugestão aos leitores, um bom exercício para os que estão aprendendo!
Conclusão
Bem, tudo o que este programinha faz, é possível fazer com as funcionalidades padrão do Windows, a minha intenção com este artigo, foi somente apresentar a ferramenta para aqueles que ainda não a conheciam e passar alguns truques de edição de registro, espero que todos tenham aproveitado algo, os conceitos aqui apresentados podem ser utilizados em programas mais úteis (a edição programática do registro é muito utilizada em scripts de logon, fica a sugestão). Prometo que vou me esforçar para postar com mais frequência (e com mais qualidade), abraços e até a próxima!
Link para o código fonte
Link para o executável compilado
Nenhum comentário:
Postar um comentário