
一個簡單的背景服務,可以通過MQTT遠程控制Windows。
目錄
├── .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
佈局的簡要說明:
README.md是該項目的詳細描述。go.mod是該項目中模塊系統的詳細參考手冊。go.sum是模塊所需的直接和間接依賴性校驗和間接依賴性的詳細文件。main.go是programm的主要文件。docs包含項目文檔。control包含用於與WIN 10 API交互的主要軟件包,每個control的每個子目錄都是一個主要軟件包。mosquitto包含MQTT邏輯包。tray包含系統托盤應用邏輯軟件包。tools包含YAML configurator和logger軟件包。configs包含config.yaml文件的示例。 如果使用二進製文件:
Windows 10如果使用源代碼:
Windows 10Go 1.18 or greater 從發行頁面下載EXE或go file並執行它:
warden.exe
go run main.go (if you wanna start it from source files)
配置參數必須放置在您啟動監獄長的工作目錄中的配置文件中。
| 財產 | 描述 | 例子 | 強制的 |
|---|---|---|---|
| 經紀人 | MQTT經紀人的URL | 127.0.0.1 | 是的 |
| 使用者名稱 | MQTT經紀人用戶名 | 行政 | 是的 |
| 密碼 | 密碼到MQTT經紀人 | 密碼 | 是的 |
| 應用 | 關閉的應用列表 | app.exe | 不 |
Warden將在當前的工作目錄(您啟動Warden的位置)中查找此文件。如果沒有conf文件,警告將創建默認文件。更改此文件或創建config.yaml文件,然後將所需的參數放入其中。或者只需從repo中的config文件夾複製此文件的示例即可。
示例文件:
broker: 127.0.0.1
username: admin
password: password
apps:
- game.exe
- app.exe
順便說一句,Warden將在開始之前驗證您的配置,並註意您是否忘記了什麼!
CLI具有與配置文件加一個添加的參數相同的參數,如果您忘記了一個參數,則Warden將使用默認一個。
| 財產 | 描述 | 旗幟 | 預設 |
|---|---|---|---|
| 沒有調試 | 關閉調試模式 | -n / - 節點 | 沒有任何 |
| config | 用CLI配置覆蓋Config.yaml數據 | -c / - config | 沒有任何 |
| 經紀人 | MQTT經紀人的URL | -b / - 經紀人 | Localhost |
| 使用者名稱 | MQTT經紀人用戶名 | -u / - 用戶 | 行政 |
| 密碼 | 密碼到MQTT經紀人 | -p / -pass | 行政 |
(!!!)如果要覆蓋config.yaml(!!!),則必須使用config標誌
例子:
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)在發布後立即開始記錄。它在當前的工作目錄中製作warden.log文件,每7天覆蓋文件
所有消息的有效載荷是RAW字符串或有效的JSON元素(可能是原始元素,例如單個整數)。
示例有效消息有效載荷:
0100truetest stringPC_HOSTNAME是Windows PC的系統名稱。主題: Warden/pc_hostname/status/在線
有效載荷:布爾
持久:是的
是的 - 活著,錯誤 - 死了。
主題: Warden/PC_HostName/狀態/卷
有效載荷: INT在0-100範圍內
持久:不
每3秒發送一次當前的主卷狀態。
主題: Warden/pc_hostname/status/uted
有效載荷:布爾
持久:不
每5秒發送一次當前的靜音狀態。
PC_HOSTNAME是Windows PC的系統名稱。主題: Warden/pc_hostname/命令/關閉
有效載荷: -
觸發即時系統關閉。
主題: Warden/pc_hostname/命令/重新啟動
有效載荷: -
觸發即時系統重新啟動。
主題: Warden/pc_hostname/命令/睡眠
有效載荷: -
觸發即時系統睡眠。
主題: Warden/pc_hostname/命令/卷
有效載荷: INT在0-100範圍內
觸發更改系統的主卷。
主題: Warden/pc_hostname/命令/靜音
有效載荷:布爾值
“ true” - 觸發靜音系統音量。 “ false” - 觸發Unculus系統音量。
主題: Warden/pc_hostname/命令/應用程序
有效載荷:字符串
“ config” - 從配置文件“ app.exe”關閉所有應用程序 - 關閉任何指定的應用
您可以自己構建它。
go build -o bin/warden.exe -ldflags "-H windowsgui"
如果有人要求,我會很樂意添加新內容!
ChangElog
版權所有2022 Alexandra Chichko <[email protected]>
根據Apache許可證(版本2.0(“許可”)獲得許可;除了符合許可外,您不得使用此軟件。您可以在
http://www.apache.org/licenses/license-2.0
除非適用法律要求或以書面形式同意,否則根據許可證分配的軟件是按照“原樣”分發的,沒有任何明示或暗示的任何形式的保證或條件。請參閱許可證,以獲取執行許可條款和限制的特定語言。