
Ein einfacher Hintergrunddienst, der Windows über MQTT aus der Ferne steuert.
Inhaltsverzeichnis
├── .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
Eine kurze Beschreibung des Layouts:
README.md ist eine detaillierte Beschreibung des Projekts.go.mod ist ein detailliertes Referenzhandbuch für das Modulsystem in diesem Projekt.go.sum ist eine detaillierte Datei der vom Modul erforderlichen Überprüfung der direkten und indirekten Abhängigkeit.main.go ist die Hauptdatei von Programm.docs enthält Projektdokumentationen.control enthält Hauptpakete für die Interaktion mit Win 10 API. Jedes Unterverzeichnis der control ist ein Hauptpaket.mosquitto enthält ein MQTT -Logikpaket.tray enthält das Logikpaket für das System Tray App.tools enthält YAML configurator und logger -Pakete.configs enthält ein Beispiel für config.yaml -Datei. Wenn Sie eine binäre Datei verwenden:
Windows 10Wenn Sie den Quellcode verwenden:
Windows 10Go 1.18 or greater Laden Sie entweder die exe- oder Go -Datei von der Releases -Seite herunter und führen Sie sie aus:
warden.exe
go run main.go (if you wanna start it from source files)
Konfigurationsparameter müssen in Konfigurationsdateien im Arbeitsverzeichnis eingefügt werden, aus dem Sie Warden starten.
| Eigentum | Beschreibung | Beispiel | Obligatorisch |
|---|---|---|---|
| Makler | URL des MQTT -Brokers | 127.0.0.1 | Ja |
| Benutzername | Benutzername zum MQTT -Broker | Administrator | Ja |
| Passwort | Passwort zum MQTT -Broker | Passwort | Ja |
| Apps | Apps -Liste zum Ausschalten | app.exe | NEIN |
Warden sucht diese Datei im aktuellen Arbeitsverzeichnis (Verzeichnis aus dem Ort, an dem Sie Warden gestartet haben). Wenn keine Conf -Datei vorhanden ist, erstellt Warnen die Standarddatei. Ändern Sie diese Datei oder erstellen Sie die Datei config.yaml und geben Sie die gewünschten Parameter hinein. Oder kopieren Sie einfach ein Beispiel dieser Datei aus dem Konfigurationsordner im Repo.
Beispieldatei:
broker: 127.0.0.1
username: admin
password: password
apps:
- game.exe
- app.exe
Übrigens validieren Warden Ihre Konfiguration, bevor Sie anfangen, ob Sie etwas vergessen!
CLI hat die gleichen Parameter wie Konfigurationsdatei plus eine hinzugefügte und wenn Sie vergessen, dass einer der Params Warden Standard verwendet.
| Eigentum | Beschreibung | Flagge | Standard |
|---|---|---|---|
| Kein Debuggen | schaltet den Debug -Modus aus | -n / --nodeBug | keiner |
| Konfiguration | überschreiben config.yaml -Daten mit CLI -Konfiguration | -c / - -config | keiner |
| Makler | URL des MQTT -Brokers | -B / -Broker | Lokalhost |
| Benutzername | Benutzername zum MQTT -Broker | -U / --user | Administrator |
| Passwort | Passwort zum MQTT -Broker | -P / - -Pass | Administrator |
(!!!) Sie müssen das Konfigurationsflag verwenden, wenn Sie config.yaml (!!!) überschreiben möchten.
Beispiel:
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 beginnt sofort nach dem Start zu protokollieren. Es macht Warter.log -Datei im aktuellen Arbeitsverzeichnis und überschreibt alle 7 Tage über. 
Die Nutzlast aller Nachrichten ist entweder eine rohe Zeichenfolge oder ein gültiges JSON -Element (möglicherweise ein primitives, wie eine einzelne Ganzzahl).
Beispiel Gültige Nachrichtennutzlasten:
0100truetest stringPC_HOSTNAME ist der Systemname Ihres Windows -PCs. Thema: Warden/PC_HOSTNAME/Status/Online
Nutzlast: Bool
Persistent: Ja
wahr - lebendig, falsch - tot.
Thema: Warden/PC_HOSTNAME/Status/Volumen
Nutzlast: int im Bereich 0-100
Persistent: Nein
Senden Sie den aktuellen Master -Volumenstatus alle 3 Sekunden.
Thema: Warden/PC_HOSTNAME/STATUS/SUSTED
Nutzlast: Bool
Persistent: Nein
Senden Sie den aktuellen Stummschaltstatus alle 5 Sekunden.
PC_HOSTNAME ist der Systemname Ihres Windows -PCs. Thema: Warden/PC_HOSTNAME/Befehle/Herunterfahren
Nutzlast: -
Sofortige Systemverletzung auslösen.
Thema: Warden/PC_HOSTNAME/Befehle/Neustart
Nutzlast: -
Sofortige System -Neustart auslösen.
Thema: Warden/PC_HOSTNAME/Befehle/Schlaf
Nutzlast: -
Sofortige Systemschlaf auslösen.
Thema: Warden/PC_HOSTNAME/Befehle/Volumen
Nutzlast: int im Bereich 0-100
Auslösen verändert das Master -System des Systems.
Thema: Warden/PC_HOSTNAME/Befehle/stumm
Nutzlast: Boolean
"TRUE" - Mutes -Systemvolumen. "Falsch" - Trigger Unmutes Systemvolumen.
Thema: Warden/PC_HOSTNAME/Befehle/Apps
Nutzlast: String
"config" - schaltet alle Apps aus der Konfigurationsdatei "app.exe" aus - deaktiviert jede angegebene App
Sie können es selbst bauen.
go build -o bin/warden.exe -ldflags "-H windowsgui"
Ich werde gerne neue Sachen hinzufügen, wenn jemand anfordern wird!
Changelog
Copyright 2022 Alexandra Chichko <mü[email protected]>
Lizenziert unter der Apache -Lizenz, Version 2.0 (der "Lizenz"); Sie dürfen diese Software nur in Einklang mit der Lizenz verwenden. Sie können eine Kopie der Lizenz bei erhalten
http://www.apache.org/licenses/license-2.0
Sofern nicht nach geltendem Recht oder schriftlich zu vereinbart wird, wird die im Rahmen der Lizenz verteilte Software auf "As is" -Basis ohne Gewährleistung oder Bedingungen jeglicher Art ausdrücklich oder impliziert verteilt. Siehe die Lizenz für die spezifischen Sprachberechtigungen und Einschränkungen im Rahmen der Lizenz.