
Um serviço de fundo simples que controla remotamente o Windows sobre o MQTT.
Índice
├── .github
├── .gitignore
├── README.md
├── go.mod
├── go.sum
├── main.go
├── docs
│ └── README.md
├── control
│ ├── power
│ │ └── power.go
│ ├── app
│ │ └── app.go
│ └── sound
│ └── sound.go
├── tools
│ ├── configurator
│ │ └── configurator.go
│ └── logger
│ └── logger.go
├── tray
│ ├── tray.go
│ │
│ └── icon.go
├── mosquitto
│ ├── mosquitto.go
│ │
│ └── sensors.go
└── configs
└── config.yaml
Uma breve descrição do layout:
README.md é uma descrição detalhada do projeto.go.mod é um manual de referência detalhado para o sistema de módulos neste projeto.go.sum é um arquivo detalhado da soma de verificação de dependência direta e indireta exigida pelo módulo.main.go é o principal arquivo de programação.docs contêm documentações do projeto.control contém pacotes principais para interação com a API WIN 10, cada subdiretório de control é um pacote principal.mosquitto contém pacote lógico MQTT.tray contém o pacote de lógica do aplicativo de bandeja do sistema.tools contêm pacotes de configurator e logger YAML.configs contêm exemplo do arquivo config.yaml. Se você usar o arquivo binário:
Windows 10Se você usar o código -fonte:
Windows 10Go 1.18 or greater Faça o download do arquivo exe ou Go da página de lançamentos e execute -o:
warden.exe
go run main.go (if you wanna start it from source files)
Os parâmetros de configuração devem ser colocados em arquivos de configuração no diretório de trabalho de onde você inicia o diretor.
| Propriedade | Descrição | Exemplo | Obrigatório |
|---|---|---|---|
| corretor | URL do corretor MQTT | 127.0.0.1 | sim |
| nome de usuário | Nome de usuário para MQTT Broker | admin | sim |
| senha | Senha para MQTT Broker | senha | sim |
| aplicativos | Lista de aplicativos para desligar | App.exe | não |
O diretor procurará esse arquivo no diretório de trabalho atual (diretório de onde você lançou o diretor). Se não houver arquivo conf warnen, criará um arquivo padrão. Altere este arquivo ou crie o arquivo config.yaml e coloque os parâmetros desejados nele. Ou apenas copie um exemplo deste arquivo da pasta de configuração no repositório.
Arquivo de exemplo:
broker: 127.0.0.1
username: admin
password: password
apps:
- game.exe
- app.exe
A propósito, o Warden validará você a configurar antes de iniciar e perceber se você esquece alguma coisa!
A CLI tem os mesmos parâmetros que o arquivo de configuração, mais um adicionado e se você esquecer um dos params que o diretor usará o padrão.
| Propriedade | Descrição | Bandeira | Padrão |
|---|---|---|---|
| Sem depuração | Desligue o modo de depuração | -n / - -nodebug | nenhum |
| Config | substitui os dados config.yaml com configuração da CLI | -C / - -Config | nenhum |
| corretor | URL do corretor MQTT | -b / --broker | LocalHost |
| nome de usuário | Nome de usuário para MQTT Broker | -u / --user | admin |
| senha | Senha para MQTT Broker | -p / - -pas | admin |
(!!!) Você deve usar o sinalizador de configuração se quiser substituir o config.yaml (!!!)
Exemplo:
warden.exe -n
warden.exe -c -n -b 192.168.1.1 -u sasha -p password
warden.exe --cli --nodebug --broker 192.168.1.1 --user sasha --pass 12345678
warden.exe -c -n --broker 192.168.1.1 --user sasha -p 12345678
O diretor começa a registrar imediatamente após o lançamento. Faz o arquivo Warden.log no diretório de trabalho atual e substitui o arquivo a cada 7 dias 
A carga útil de todas as mensagens é a string bruta ou um elemento JSON válido (possivelmente um primitivo, como um único número inteiro).
Exemplo de cargas úteis de mensagem válida:
0100truetest stringPC_HOSTNAME é o nome do sistema do seu PC Windows. Tópico: Warden/PC_Hostname/Status/Online
Carga útil: bool
Persistente: Sim
Verdadeiro - vivo, falso - morto.
Tópico: Warden/PC_Hostname/Status/Volume
Carga útil: int no intervalo de 0-100
Persistente: não
Envie o status atual do volume mestre a cada 3 segundos.
Tópico: Diretor/PC_Hostname/Status/Suted
Carga útil: bool
Persistente: não
Envie o status de mudo atual a cada 5 segundos.
PC_HOSTNAME é o nome do sistema do seu PC Windows. Tópico: Warden/PC_Hostname/Commands/Shutdown
Carga útil: -
Acionar o desligamento imediato do sistema.
Tópico: Warden/PC_Hostname/Commands/Reboot
Carga útil: -
Trigger reinicialização imediata do sistema.
Tópico: Warden/PC_Hostname/Commands/Sleep
Carga útil: -
Acionar o sono imediato do sistema.
Tópico: Warden/PC_Hostname/Commands/Volume
Carga útil: int no intervalo de 0-100
Trigger alterações volume mestre de sistema.
Tópico: Warden/PC_Hostname/Commands/MUTE
Carga de pagamento: booleano
"True" - Trigger Mutes System Volume. "Falso" - aciona o volume do sistema de alojamento.
Tópico: Warden/PC_Hostname/Commands/Apps
Carga de pagamento: string
"Config" - desliga todos os aplicativos do arquivo de configuração "app.exe" - Desligar qualquer aplicativo especificado
Você pode construí -lo sozinho.
go build -o bin/warden.exe -ldflags "-H windowsgui"
Terei prazer em adicionar coisas novas, se alguém solicitar!
Changelog
Copyright 2022 Alexandra Chichko <[email protected]>
Licenciado sob a licença Apache, versão 2.0 (a "licença"); Você não pode usar este software, exceto em conformidade com a licença. Você pode obter uma cópia da licença em
http://www.apache.org/license/license-2.0
A menos que exigido pela lei aplicável ou acordada por escrito, o software distribuído sob a licença é distribuído "como está", sem garantias ou condições de qualquer tipo, expressa ou implícita. Consulte a licença para o idioma específico que rege as permissões e limitações sob a licença.