Files
cybercore-signer/docs/DIAGNOSTICO_JANELA.md
T

66 lines
2.4 KiB
Markdown

# Diagnóstico: Janela Principal no Windows 11 (Bisseção e Monitoramento)
Este documento descreve o procedimento de diagnóstico para isolar a causa de ocultamento nativo da janela principal no Windows 11 ao passar o mouse.
---
## 1. Monitor Nativo Win32/DWM (`scripts/diag-window.ps1`)
O script [scripts/diag-window.ps1](file:///var/www/cybercore/cybercore-signer/scripts/diag-window.ps1) inspeciona a cada 300ms a janela nativa via P/Invoke da Win32 API e DWM:
- `IsWindowVisible`: se a janela está visível perante o subsistema Win32;
- `DWMWA_CLOAKED`: se o gerenciador gráfico do Windows 11 ocultou a composição;
- `IsIconic`: se foi minimizada;
- `GetWindowRect`: coordenadas reais (detecta se foi deslocada para fora da tela).
### Como executar o monitor:
Em uma janela separada do PowerShell:
```powershell
powershell -ExecutionPolicy Bypass -File .\scripts\diag-window.ps1
```
---
## 2. Roteiro de Bisseção (Fase 2)
Execute cada um dos comandos abaixo individualmente (garantindo antes que instâncias anteriores foram encerradas com `Stop-Process -Name java -Force` se necessário):
### Teste A: Desativar Middleware PKCS#11 / SafeSign (`aetpkss1.dll`)
Isola hooks nativos do SafeSign e middlewares A3:
```powershell
java -Dcybercore.diag.no-pkcs11=true -jar .\cybercore-signer.jar --dev
```
*Se a janela NÃO sumir ao passar o mouse, a causa é o hook nativo do middleware PKCS#11.*
---
### Teste B: Plain Stage (Janela livre sem `setResizable(false)` e sem limites min/max)
Isola o bug de composição do DWM / Glass no Windows 11 com janelas de tamanho fixo:
```powershell
java -Dcybercore.diag.plain-stage=true -jar .\cybercore-signer.jar --dev
```
*Se a janela NÃO sumir ao passar o mouse, a causa é a restrição fixa de tamanho no Windows 11.*
---
### Teste C: Desativar Efeitos de Sombra no Mouse (`-fx-effect`)
Isola recálculo de dropshadow e troca de cursor:
```powershell
java -Dcybercore.diag.no-effects=true -jar .\cybercore-signer.jar --dev
```
---
### Teste D: Desativar Monitor Dinâmico de Smart Cards (PC/SC)
Isola threads em segundo plano de `javax.smartcardio`:
```powershell
java -Dcybercore.diag.no-smartcard-watcher=true -jar .\cybercore-signer.jar --dev
```
---
### Teste E: Desativar Windows Certificate Store (Windows-MY)
Isola inicialização de CryptoAPI / SunMSCAPI:
```powershell
java -Dcybercore.diag.no-wincert=true -jar .\cybercore-signer.jar --dev
```