1099 字
5 分钟
远程控制程序杂谈

简介#

这是我在大一时期就开始制作的软件
当时需求只是能控制电脑打开远程控制类软件
为了安全考虑
所以远程控制软件的自启动是被我禁用了的(包括服务)
我就想着写一个软件远程启动sunshine或者UU远程
因为使用校园网(大范围局域网)
所以sunshine的可用性非常高
在教室用平板连接电脑写代码简直不要太爽
我也是这样度过了大一下和大二时期

遇到的问题#

1.多exe问题#

在最开始的时候就想着
主程序和GUI写在同一个软件里
但没有开发经验
写了半天发现
关闭窗口主程序大概率也会跟着出问题
不是退出就是卡死
后面也解决了
但看着那内存占用
还是决定分开
每个程序都能单独运行
主程序可单独使用
不需要GUI
只不过需要自己写配置文件
内存占用大幅减低

2.开机自启问题#

Windows不知道为啥
不管快速启动是否开启
重启都有概率出现
重启后程序没有在后台启动
好了才知道
一般在开机后会启动桌面环境
但有时候又不会启动
就会导致开机自启的软件失效
需要输入开机密码才能启动
最后解决办法就是
用计划任务实现开机自启
但有个问题就是开机时启动的程序
是SYSTEM用户身份运行的
但桌面通知需要登录用户身份运行
因为SYSTEM和登录用户
的桌面激活不一样
是两个单独的桌面环境
通知也就不互通
最后就的方法是将托盘单独出来
主程序还是系统启动时运行
托盘在登录时运行
托盘启动时强制重启主程序
让主程序运行在新的桌面环境

3.程序间通信问题#

就是不同exe间的通讯问题
因为托盘要程序主程序的权限状态
找了很多方法
还是用的本地文件实现
优点很明显
不占端口
而且和log放一起
也不会太占空间
主程序启动时将管理员权限状态
写入文件
托盘查询时咨询读取文件内容即可
不需要额外代码
而且添加主程序在运行作为前置添加
避免出现主程序已经退出了
托盘还提示主程序有管理员权限的问题
至于GUI就根本没和其他程序通讯
GUI就只负责生成和测试配置文件
连log都不输出到文件
只要托盘和主程序有日志

4.性能问题#

因为Python的原因
打包出来的exe特别大
就只负责生成配置文件的GUI
都达到了20多MB
托盘也是差不多
而且运行起来总感觉比较慢
就尝试换成C语言来写
目前也就托盘写完了
打包出来也才100kb左右
而且运行速度很明显快了很多
但也有些不痛不痒的小问题
比如说主程序目前
还没想好用哪个mqtt模块
但转C语言的计划不会终止
相信转C语言后
总空间占用能在2MB左右
Python只占用高达60多MB

5.安装问题#

都写GUI了
怎么能少了安装包
原本想着都上github了
应该会用免安装的程序吧
但我还是不放心
所以研究了半天安装包程序
成功实现了安装时就可以设置开机自启
虽然安装包程序是英文的
但能用中文的地方我还是用了中文
在弄安装包前配置文件存放在用户目录
已经是appdata里
但有个问题就是开机自启的主程序
如果没有登录用户就没法读取配置文件
所以改回了相对目录的方式
配置文件保存在程序所在目录
没权限时也会提示权限不足

我为了小白的体验#

可谓是煞费苦心啊#

远程控制程序杂谈
https://blog.spacjoy.top/posts/remote-control-talk-about/
作者
Space Joy
发布于
2025-11-22
许可协议
CC BY-NC-SA 4.0