
Un servicio de fondo simple que controla de forma remota Windows sobre MQTT.
Tabla de contenido
├── .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
Una breve descripción del diseño:
README.md es una descripción detallada del proyecto.go.mod es un manual de referencia detallado para el sistema de módulos en este proyecto.go.sum es un archivo detallado de la suma de verificación de dependencia directa e indirecta requerida por el módulo.main.go es el archivo principal de Programm.docs contiene documentos del proyecto.control contiene paquetes principales para la interacción con Win 10 API, cada subdirectorio de control es un paquete principal.mosquitto contiene el paquete lógico MQTT.tray contiene el paquete de lógica de la aplicación de la bandeja del sistema.tools contiene paquetes configurator YAML y logger .configs contiene un ejemplo de archivo config.yaml. Si usa el archivo binario:
Windows 10Si usa el código fuente:
Windows 10Go 1.18 or greater Descargue el archivo exe o Go desde la página de comunicados y ejecutarlo:
warden.exe
go run main.go (if you wanna start it from source files)
Los parámetros de configuración deben colocarse en los archivos de configuración en el directorio de trabajo desde donde inicia al Guardián.
| Propiedad | Descripción | Ejemplo | Obligatorio |
|---|---|---|---|
| corredor | URL del corredor MQTT | 127.0.0.1 | Sí |
| nombre de usuario | Nombre de usuario a MQTT Broker | administración | Sí |
| contraseña | Contraseña a MQTT Broker | contraseña | Sí |
| aplicaciones | Lista de aplicaciones para apagar | app.exe | No |
Warden buscará este archivo en el directorio de trabajo actual (directorio desde donde lanzó Warden). Si no hay un archivo conf warnen, creará un archivo predeterminado. Cambie este archivo o cree el archivo config.yaml y coloque los parámetros deseados en él. O simplemente copie un ejemplo de este archivo de la carpeta de configuración en el repositorio.
Archivo de ejemplo:
broker: 127.0.0.1
username: admin
password: password
apps:
- game.exe
- app.exe
Por cierto, Warden lo validará antes de comenzar y note si olvida algo.
CLI tiene los mismos parametros que el archivo de configuración más uno agregado y si olvida uno de los parámetros Warden usará uno predeterminado.
| Propiedad | Descripción | Bandera | Por defecto |
|---|---|---|---|
| Sin depuración | apaga el modo de depuración | -n / -nodebug | ninguno |
| configuración | anula config.yaml datos con la configuración de cli | -c / -config | ninguno |
| corredor | URL del corredor MQTT | -B / -Broker | hostil |
| nombre de usuario | Nombre de usuario a MQTT Broker | -u / -user | administración |
| contraseña | Contraseña a MQTT Broker | -p / -pass | administración |
(!!!) Debe usar el indicador de configuración si desea anular config.yaml (!!!)
Ejemplo:
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
Warden comienza a registrarse inmediatamente después del lanzamiento. Hace un archivo Warden.log en el directorio de trabajo actual y sobrescribe el archivo cada 7 días 
La carga útil de todos los mensajes es una cadena sin procesar o un elemento JSON válido (posiblemente un primitivo, como un solo entero).
Ejemplo de cargas útiles de mensajes válidos:
0100truetest stringPC_HOSTNAME es el nombre del sistema de su PC con Windows. Tema: Guardián/PC_HostName/Status/Online
Carga útil: bool
Persistente: si
Verdadero - Vivo, Falso - Muerto.
Tema: Guardián/PC_HostName/Status/Volume
Carga útil: int en el rango 0-100
Persistente: no
Envíe el estado del volumen maestro actual cada 3 segundos.
Tema: Guardián/PC_HOSTNAME/STATO/MALEDE
Carga útil: bool
Persistente: no
Envíe el estado de silencio actual cada 5 segundos.
PC_HOSTNAME es el nombre del sistema de su PC con Windows. Tema: Guardián/PC_HostName/Comandos/Callado
Carga útil: -
Activar el apagado del sistema inmediato.
Tema: Guardián/PC_HostName/Comandos/Reboot
Carga útil: -
Activar el reinicio del sistema inmediato.
Tema: Guardián/PC_HostName/Comandos/Sleep
Carga útil: -
Activar el sueño del sistema inmediato.
Tema: Guardián/PC_HostName/Comandos/Volumen
Carga útil: int en el rango 0-100
El activador cambia el volumen maestro del sistema.
Tema: Guardián/PC_HostName/Comandos/MUTE
Carga útil: booleano
"Verdadero" - Volumen del sistema de activación del sistema. "Falso" - activar el volumen del sistema de SiMutes.
Tema: Guardián/PC_HostName/Comandos/Apps
Carga útil: cadena
"config" - apaga todas las aplicaciones del archivo de configuración "App.exe" - apaga cualquier aplicación especificada
Puedes construirlo solo.
go build -o bin/warden.exe -ldflags "-H windowsgui"
¡Con mucho gusto agregaré cosas nuevas, si alguien solicitará!
Colegio de cambios
Copyright 2022 Alexandra Chichko <[email protected]>
Licenciado bajo la licencia Apache, versión 2.0 (la "licencia"); No puede usar este software, excepto de conformidad con la licencia. Puede obtener una copia de la licencia en
http://www.apache.org/licenses/license-2.0
A menos que la ley aplicable sea requerida o acordado por escrito, el software distribuido bajo la licencia se distribuye de manera "como es", sin garantías ni condiciones de ningún tipo, ya sea expresas o implícitas. Consulte la licencia para los permisos y limitaciones de rigor de idioma específico bajo la licencia.