
一个简单的背景服务,可以通过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
除非适用法律要求或以书面形式同意,否则根据许可证分配的软件是按照“原样”分发的,没有任何明示或暗示的任何形式的保证或条件。请参阅许可证,以获取执行许可条款和限制的特定语言。