Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Você começa seu trabalho todos os dias cedo para poder resolver tudo durante o dia. Então você verifica o relógio e são 3 da manhã, mas seu trabalho ainda não terminou. Então, para onde foi o tempo?

Você pode usar um aplicativo dedicado de controle de tempo, mas isso pode ser complicado e frustrante. Em vez disso, por que não criar seu próprio aplicativo simples? Este aplicativo pode rastrear todas as janelas que você usou durante o dia. Você só precisa do AutoHotKey, um processador de texto básico como o Notepad, e cerca de meia hora. Vamos começar!

Crie seu próprio script de registro do Windows com AutoHotKey

Antes de começar, você deve instalar o AHK em seu computador, pois ele atuará como um “analisador” do script. É a ferramenta que permitirá que seu script “corra”.

Nota : Você também pode compilar o script após a conclusão para transformá-lo em um programa executável real. No entanto, isso está além do escopo deste artigo.

Baixe o AutoHotKey do site oficial e instale-o.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Selecione Novo> Script AutoHotKey

Abra seu gerenciador de arquivos favorito e acesse a pasta onde deseja armazenar o script. Em seguida, clique com o botão direito em um local vazio e selecione Novo > AutoHotKey Script .

Depois de concluído, é hora de escrever o script real.

1. Identifique as variáveis ​​necessárias

Abra o script em seu editor favorito. Você pode usar algo simples como o Notepad que vem com o Windows, mas o artigo usará o Notepad++  para este tutorial. O Notepad++ é gratuito e melhor adaptado para esse fim, então você deve experimentá-lo.

Observe que você não deve usar aplicativos como Word ou Google Docs, pois podem afetar a formatação do script. Use um editor de texto ou código.

O script conterá algumas informações básicas recomendadas sobre compatibilidade e desempenho. Deixe-os como estão e inicie o script abaixo.

Começa com:

AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

Comece atribuindo o valor "10" a AppLoggingRate , que será usado para calcular o tempo entre as tentativas de registro da janela.

Quando usado com a função Sleep do AHK, 1000 é aproximadamente igual a um segundo. Portanto, multiplicando-o por AppLogingRate você tornará a variável SleepTime "igual a 10 segundos".

LogPath é o caminho usado para armazenar logs. O exemplo está usando o valor %A_ScriptDir% , que se traduz em "o diretório de onde você executa o script". Você pode usar o caminho completo para outra pasta, se desejar.

Por fim, defina LastActiveWindow como vazio e use mais tarde para verificar se a janela ativa foi alterada.

2. Monitore janelas ativas

Como queremos monitorar continuamente qual janela está ativa e se ela mudar, registrar o título e a hora, teremos que usar um “loop”.

Como o nome sugere, um loop é executado continuamente, repetindo a(s) mesma(s) função(ões). Graças à sintaxe simples do AHK, o seguinte “código” é relativamente fácil de entender:

Loop
{
    Sleep %SleepTime%
    Msgbox, It Works!
}

Defina um loop simplesmente digitando a palavra "loop" e marcando seu início com "{" e finalizando com "}". Tudo nas linhas entre "{" e "}" será executado indefinidamente até você sair do script.

Inicie o loop aguardando ( Sleep ) por um período de tempo igual à variável SleepTime. Esta variável simplifica o controle do tempo. Em vez de editar o script você mesmo, você pode "dizer", através desta variável, quantos segundos cada loop deve durar.

Por fim, use a caixa de mensagens para testar o script. Tente salvá-lo e executá-lo (clique duas vezes no arquivo de script). Você verá uma caixa de mensagem que diz “Funciona!” (script funcionando) após 10 segundos.

Clique com o botão direito no ícone do AHK na bandeja do Windows e saia do script quando tiver caixas de mensagens suficientes. Em seguida, volte ao editor e substitua a linha MsgBox por:

WinGetActiveTitle, ActiveWindow

Este é o comando para obter o título da janela ativa. Omita a linha extra "StoreActiveWindow" que o exemplo usou durante o script para teste.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Obtenha o título da janela ativa e armazene-o em uma variável

3. Obtenha a hora e o nome atuais

Agora vem o núcleo da lógica do script. Compare o nome da janela ativa com a anterior e, se forem diferentes, "faça alguma coisa". Tudo é tão simples assim:

If ActiveWindow != %LastActiveWindow%
{
}

Diante do exposto, verifique se o ActiveWindow atual é diferente ( != ) do valor armazenado na variável LastActiveWindow (que foi inicialmente definida como vazia). Nesse caso, o AHK executará o código entre { e } , que está atualmente vazio.

Defina a função para comparar o título da janela ativa e da janela anterior

É necessário rastrear a data e a hora para medir o tempo de atividade de uma janela. Serão retidos registros diferentes para cada dia, usando a data em seu nome. Não apenas todas as alterações, mas o momento em que elas ocorrem também serão registradas. Para fazer isso, atribua diferentes formatos de hora às variáveis ​​LogTime e LogFilename , com:

FormatTime, LogTime,, HH:mm:ss
FormatTime, LogFilename,, yyyy-MMM-dd

Adicione essas linhas entre as chaves em "If ActiveWindow..." , para que o AHK as execute quando detectar uma alteração na janela.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Obtenha a hora atual e atribua-a em duas variáveis ​​de formatos diferentes

4. Formato de dados

Agora capturamos a hora em duas variáveis ​​formatadas de forma diferente, bem como o título da janela ativa. Porém, há um pequeno problema: o título da janela também pode conter caracteres indesejados. É possível remover todos os caracteres não alfanuméricos usando o suporte do AHK para RegEx, com:

LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")

Com isso em mente, vamos "pedir" ao AHK para remover todos os caracteres da variável ActiveWindow que não correspondem ao que está entre colchetes:

  • Minúsculas
  • Letra maiúscula
  • Números

Em seguida, atribua o resultado à variável LogWindow.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Limpe o título da janela ativa com RegEx

Com todas as variáveis ​​definidas e todos os dados valiosos coletados, você está pronto para formatar o arquivo de log e seu conteúdo.

LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%

Anteriormente, atribuímos a data atual à variável LogFilename. Portanto, para a primeira linha, adicione "_AppLog.md" à data para usá-la como nome do arquivo.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Defina o nome do arquivo de log

Na segunda linha, combine a variável LogPath , definida no início como destino do arquivo de log junto com o nome do arquivo. A combinação deles é o caminho completo do arquivo de log, atribuído à variável LogFile.

Vamos atribuir o valor equivalente de "linha vazia, Tempo - Nome da janela, mais duas linhas vazias, um divisor e outra linha vazia, para garantir" à variável FileContent.

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • A letra “n” diz ao AHK para inserir uma nova linha (equivalente a pressionar Enter uma vez).
  • Três traços aparecerão como separadores quando exibidos em um visualizador compatível com cruz para baixo.
  • "% LogTime%" e "% LogWindow%" são variáveis ​​que armazenam o nome da janela ativa e o horário em que ela foi detectada.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Determina o conteúdo do arquivo de log

5. Atualizar arquivos

Você definiu o que queremos escrever no arquivo, bem como seu caminho e nome de arquivo. Tudo o que resta é o texto simples e real como segue:

FileAppend, %FileContent%, %LogFile%

Anexe tudo na variável “FileContent” ao arquivo “LogFile”.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Use a função Append do AHK para atualizar o arquivo de log ou criar um do zero

A função "append" adicionará "FileContent" ao arquivo, se ele existir, mas também o criará do zero se o arquivo não existir.

Há um ajuste final: substitua o conteúdo da variável LastActiveWindow pela janela atualmente ativa.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

Insere o título da janela ativa atual na variável LastActiveWindow para testes futuros

Para fazer isso, o script deve ser capaz de detectar a próxima alteração na janela.

LastActiveWindow = %ActiveWindow%

E com essa última adição, o windows logger está pronto! Salve o script e execute-o. Em seguida, verifique o arquivo markdown, este arquivo aparecerá na pasta do arquivo de script após 10 segundos.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

O arquivo de log do Windows é criado no mesmo diretório do script

Assuma o controle do seu próprio tempo

Você pode abrir o arquivo de log com qualquer editor de texto. No entanto, ficará melhor se você abri-lo em um editor compatível com markdown. Na captura de tela você pode ver o log no popular editor Typora.

Como criar um aplicativo de controle de tempo no Windows com AutoHotKey

O arquivo markdown gerado pelo script é carregado no Typora

É uma maneira fácil de verificar quais aplicativos você usa há mais tempo e requer apenas uma ferramenta como o Bloco de Notas para usar.

Se você quiser algo "mais especial", você sempre pode "estilar" a saída do logger para criar um arquivo CSV. É tão fácil quanto ajustar a variável FileContent e a extensão do arquivo criado. Você pode então importar esses arquivos para aplicativos como Excel, Google Calc ou até mesmo rastreadores de tempo de terceiros.

Roteiro completo

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
; Variables
; ---------
AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow = 
; Logic
; -----
Loop
{
	Sleep %SleepTime%
	
	WinGetActiveTitle, ActiveWindow
	StoreActiveWindow = %ActiveWindow%
	
	If ActiveWindow != %LastActiveWindow%
	{
		FormatTime, LogTime,, HH:mm:ss
		FormatTime, LogFilename, , yyyy-MM-dd
		
		LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
		
		LogFilename = %LogFilename%_AppLog.md
		LogFile = %LogPath%\%LogFilename%
		
		FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
		
		sleep 50
		
		FileAppend, %FileContent%, %LogFile%
		LastActiveWindow = %ActiveWindow%
	}
}
Exit

Deixar um comentário

Como remover o aviso de solicitação de direitos autorais no canto direito da tela do Windows 10

Como remover o aviso de solicitação de direitos autorais no canto direito da tela do Windows 10

Você vê uma notificação de ativação do Windows 10 no canto direito da tela? Este artigo irá orientá-lo sobre como excluir o aviso de solicitação de direitos autorais no Windows 10.

Instruções do AZ sobre como instalar o Windows 10 build 14393.222

Instruções do AZ sobre como instalar o Windows 10 build 14393.222

Recentemente, a Microsoft lançou a atualização cumulativa mais recente para usuários de PC com Windows 10, chamada Build 14393.222. Esta atualização lançada para o Windows 10 corrige principalmente bugs com base no feedback do usuário e melhora a experiência de desempenho do sistema operacional.

Proteja sua rede de computadores com host Bastion em apenas 3 etapas

Proteja sua rede de computadores com host Bastion em apenas 3 etapas

Você tem computadores em sua rede local que precisam de acesso externo? Usar um host bastião como gatekeeper para sua rede pode ser uma boa solução.

3 maneiras de limpar rapidamente todos os logs de eventos no Windows 10

3 maneiras de limpar rapidamente todos os logs de eventos no Windows 10

Às vezes, pode ser necessário excluir logs de eventos antigos de uma só vez. Neste guia, Quantrimang.com mostrará três maneiras de excluir rapidamente todos os logs de eventos no Visualizador de Eventos do Windows 10.

Como criar uma tecla do Windows se o seu teclado não estiver disponível

Como criar uma tecla do Windows se o seu teclado não estiver disponível

Se você preferir usar um teclado clássico antigo, como o IBM Modelo M, que não inclui uma tecla física do Windows, existe um método fácil de adicionar mais, pegando emprestada uma tecla que você não usa com frequência.

Como criar modo de fundo transparente no Windows 10

Como criar modo de fundo transparente no Windows 10

WindowTop é uma ferramenta que tem a capacidade de escurecer todas as janelas de aplicativos e programas em execução em computadores com Windows 10. Ou você pode usar uma interface de fundo escuro no Windows.

Métodos de IP falso ajudam você a acessar anonimamente

Métodos de IP falso ajudam você a acessar anonimamente

Em muitos artigos anteriores, mencionamos que permanecer anônimo online é extremamente importante. Informações privadas vazam todos os anos, tornando a segurança online cada vez mais necessária. Essa também é a razão pela qual devemos usar endereços IP virtuais. Abaixo, aprenderemos sobre métodos para criar IPs falsos!

Como desativar a barra de idiomas na barra de tarefas do Windows 8

Como desativar a barra de idiomas na barra de tarefas do Windows 8

A barra de idiomas do Windows 8 é uma barra de ferramentas de idiomas em miniatura projetada para ser exibida automaticamente na tela da área de trabalho. No entanto, muitas pessoas desejam ocultar esta barra de idiomas na barra de tarefas.

Dicas para otimizar a velocidade da conexão com a Internet da Linksys

Dicas para otimizar a velocidade da conexão com a Internet da Linksys

Maximizar a velocidade da Internet é essencial para otimizar sua conexão de rede. Você pode ter uma ótima experiência de entretenimento e trabalho usando computadores, TVs com Internet, consoles de jogos, etc.

Como configurar WEP, WPA, WPA2 para roteador Linksys

Como configurar WEP, WPA, WPA2 para roteador Linksys

A conectividade sem fio é uma necessidade hoje e por isso a segurança sem fio é essencial para garantir a segurança da sua rede interna.