# Monitoramento de Logon/Logoff do Windows ## O que foi corrigido O cliente agora monitora **eventos reais de logon/logoff do Windows** usando o Windows Event Log, não apenas quando o NoIdle inicia/fecha. ## Como funciona 1. **Monitoramento do Event Log**: O cliente lê o log de segurança do Windows a cada 60 segundos 2. **Eventos detectados**: - **Evento 4624**: Logon bem-sucedido - **Evento 4634**: Logoff bem-sucedido - **Evento 4647**: Logoff iniciado pelo usuário ## Permissões necessárias ⚠️ **IMPORTANTE**: Para ler o Event Log de segurança, o NoIdle precisa rodar com **permissões elevadas** ou o usuário precisa ter permissão para ler o log de segurança. ### Opção 1: Executar como Administrador (Recomendado) 1. Clique com botão direito no `NoIdle.exe` 2. Selecione "Executar como administrador" 3. Ou configure para sempre executar como admin: - Clique com botão direito → Propriedades → Compatibilidade - Marque "Executar este programa como administrador" ### Opção 2: Dar permissão ao usuário (Avançado) Se não quiser executar como admin, pode dar permissão específica: 1. Abra o **Editor de Política de Grupo Local** (`gpedit.msc`) 2. Navegue até: **Configuração do Computador → Configurações do Windows → Configurações de Segurança → Políticas Locais → Atribuição de Direitos do Usuário** 3. Encontre: **"Gerar auditorias de segurança"** 4. Adicione o usuário ou grupo que executa o NoIdle ## Verificação Após atualizar o cliente: 1. **Faça logoff do Windows** (Win + L, depois logoff) 2. **Faça logon novamente** 3. **Verifique os logs do servidor**: ```bash pm2 logs pointcontrol-api --lines 30 ``` 4. **Procure por**: ``` 🔐 Evento de sessão: logon - [device_id] (username) 🔐 Evento de sessão: logoff - [device_id] (username) ``` ## Método alternativo Se o Event Log não estiver acessível (sem permissões), o cliente usa um método alternativo que detecta mudanças de sessão. Este método é menos preciso, mas ainda funciona. ## Dependências O código usa: - `win32evtlog`: Para ler o Event Log do Windows - `win32evtlogutil`: Para formatar mensagens de eventos Essas bibliotecas já estão incluídas no `pywin32`, que deve estar nas dependências do projeto.