掌控课堂-你的课堂你做主,简单易用的工具
掌控课堂
项目官网📌 官方网站:掌控课堂官网
功能特性
🚀 解除键盘锁
当极域等软件 HOOK 键盘以阻止输入时,本程序通过定时覆盖 HOOK 来恢复键盘输入功能。无需频繁轮询,高效且不影响性能,让你随时恢复输入自由。
🖱️ 解除鼠标锁
极域可能会限制鼠标操作,导致鼠标无法正常移动或点击。本程序可以解除鼠标锁定,恢复鼠标的正常使用权,让你畅通无阻地操作计算机。
📌 强制顶层窗口
有些软件(如极域)会强行保持自身窗口在最前。本程序利用 SetWindowPos + SetForegroundWindow 组合,让你强制置顶目标窗口,保证它不会被其他窗口覆盖。同时支持隐藏窗口以避免焦点争夺,确保你的操作流畅不受干扰。
🔥 终结进程
一键强制终止极域/奥易云等进程,解除限制,恢复自由操作。
💬 集成聊天室
内置 SSH 聊天室(基于 Devzat),支持多人实时交流,无需额外配置。
🛡️ 回调杀进程
定时检测并强制终止指定进程,防止极域等软件自动重启。
📊 监控运行状态
实时检测极域学生端进程状态,显示进程 ID,确保掌控 ...
科学上网7年经验魔法科普扫盲
科学上网7年经验魔法科普扫盲
引文有很多不甚了解的朋友可能不清楚 翻… 没错就是那个东西, 我在这里做科学扫盲,咳咳~ 只是扫盲啊,教授这个是违法的,不过任何事情都不是绝对的, 比如 翻墙是违法的技术 , 但是把翻墙的技术拆开看 “Linux运维”,“加密混淆”,”网络通信”,“通信协议”,“Web服务开发” ,这些东西单拿出来看都不违法
大家要知道网络是有“审查”的,科学上网的本质就是 “对抗审查” ,也就是 “反审查” 记住这个词
审查在某些方面对新闻和言论的挑战,当年的Google退出中国大陆就很明显了,德先生是否还能留在这里?
审查技术GFW有一个网络审查机器 , 中国国家防火墙 [1]GFW
相关论文文献:[2]GFWeb:大规模衡量防火长城的 Web 审查 —— USENIX Security | 国际网络安全与隐私计算顶会
它的诞生这个GFW是 Great Firewall 的缩写,网信办叫它 “数据跨境安全网关” [3]方滨兴就是GFW首要设计师,其中还有 思科、微软….公司协力,后来GFW项目就移交给 [4]启明星辰运维
这个G ...
Github Pages 添加自定义域
Github Pages 添加自定义域
引言
问:为什么要自定义子域?
因为我的博客文章部署在Github Pages在国内访问Github 网页加载要好久,所以我打算添加一个 自定义子域,这个自定义子域会 经过 cloudflare 的 CDN 来加速页面加载
其实我早应该这么做了,只是拖了这么长时间才想起来 :)
自定义子域类型
这在Github官方文档就有提到,下面就以我的域名为例
支持的自定义域类型
DEMO
www 子域
www.vyantaosheweining.top
自定义子域
blog.vyantaosheweining.top
Apex 域
vyantaosheweining.top
www 子域 是早期互联网用作网站的标准入口,表示 www 子域 是 网站服务
自定义子域 是域名所有者自由创建的,用于将不同的服务解析到对应的地址
Apex 域 是根域名 就是不存在子域前缀
创建CNAME解析下面以cloudflare 操作为例
因为blog.vyantaosheweining.top 是指向域名 zsui2354.g ...
个人PC音频系统构建
个人PC音频系统部署
音频系统必然要使用舒适,就不能简单,最起码的功能:
音乐播放单独一个音频通道
让手机声音进入宿主进行统一管理
要有一个备用提供给其他软件的音频通道
人声通道 和 效果通道
音乐通道环绕声
个人喜欢整点花活 所以必须有 变声
前置准备
PC1
PC2
主力机
辅机
192.168.3.2
192.168.3.1
还有声卡设备 , 我选用的是 midiplus studio m 和一个手机声卡
一根双绞线
主力机声卡驱动 midiplus
主力机声音设置录制
播放
主力机宿主跳线输入
输出
创建音轨后
这一套下来音乐伴奏就已经独立通道了,它的音乐环绕效果靠插件实现 ,DearVR pro 插件
让插件读取我画在包络线上的路径去控制 插件中的 X 和 Z 轴 并且 将包络线路径循环读取运作就实现了音乐环绕效果
手机声音处理将手机输出 到 手机声卡 , 后将手机声卡与主力机连接 ,此时Voicemeeter Banana 会识别到设备,将设备Inout 选中手机声卡
将Out 处的 A1 输出到 5 ...
LeetCode题解 19.删除链表的倒数第 N 个节点
19.删除链表的倒数第 N 个节点
解题思路:
1.首先拿到链表需要做预处理,如果为空或 <=0 就返回原链表
2.然后开始用 current指针遍历 ,并计数有多少节点
3.处理 counter 和 position 相同就是删除头节点
4.遍历结束就可以 将 current 重置 指向头节点, counter(链表节点总数) - position 就得到正向索引值
5.用for 指向目标节点的前一个节点,将目标节点的 前后节点相连,目标节点自然就会脱离链表,最后delete 将其释放
123456789101112131415161718192021222324252627282930313233343536373839// struct ListNode {// int val;// ListNode *next;// ListNode() : val(0), next(nullptr) {}// ListNode(int x) : val(x), next(n ...
逆向工程 - 外挂 PACIFY安抚
逆向工程 - 外挂 PACIFY安抚
人在焦虑中总是要逃避一小段时间 , 比如玩游戏 ,可是多巴胺消退不再给我刺激时 ,焦虑还是会萦绕于心 ,不面对就永远无法摆脱。 ——jelly
兴趣于学业结合我也会想短短的逃避一下,但又不能抛弃学业,陷入其中
我会在玩游戏的时候 ,去对一个游戏逆向工程,这就是兴趣于学业结合
我做了什么
首先就是内存地址
我采用 Github开源的 ImGui框架 编写
我获取到了游戏的 关键的 模块地址,基址,内存偏移,我把他们写在如下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 ...
开放节点资源
开放分享的节点,点击节点页面可获取Linked:加入群组:Butterfly
节点页面:Butterfly
V2rayN: Butterfly
V2rayNG: Butterfly
Xray-core: Butterfly
Cheat Engine编译
事情起因我想自己重新编译一个最新的Cheat Engine在配置文件和项目设置里改了一通。
点击编译,结果发现 ????
Cheat Engine Release 64-Bit O4 AVX2 ,Error: Identifier not found “ExtractFileNameWithoutExt”
然后我上 stackoverflow 也没找到解决办法 最后在一则 Issues 找到了原因https://github.com/cheat-engine/cheat-engine/issues/2642
原来是环境问题 新版本的lazarus编译不起作用 ,我尝试了2.2.4版本的lazarus 编译正常通过
从Lazarus 2.2开始,FileUtil中的某些功能在较新的版本中已更改为LazFileUtils ,ExtractFileNameWithoutExt这个函数在 LazFileUtils 中,而不是在较新的 Lazaruses 中的 FileUtil 中
还是太粗心大意了,这就是不看文档的后果,踩到不该踩的坑
解决采用旧版本lazarus ,2.2.4 或2. ...
C++ 链接表从 0 到 1 的实践应用
C++ 链接表从 0 到 1 的实践应用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 ...
与GPT的题目问答1
容器的选择
GPT: 在什么情况下,你会选择使用std::vector而不是std::list?请解释你的理由。
答:在存储大量且连续的数据会使用 vector,因为vector的容量的扩充是 以幂次扩充的它特别适合存储大量且连续的数据,相对于list 它还有迭代器的随机访问能力,时间复杂度是O1,这是list做不到的,std::vector在需要频繁随机访问和插入/删除操作主要集中在末尾时性能更优。相比之下,std::list在需要频繁在中间插入或删除元素时更合适,因为它的插入和删除操作不涉及大量元素的移动。
GPT: 描述std::map和std::unordered_map的主要区别,以及它们各自的使用场景。
答:他们两个的区别仅仅在于 ,std::map是基于红黑树实现的,键值对有序且键不允许重复。std::unordered_map是基于哈希表实现的,键值对无序但键同样不允许重复。如果需要保持元素的排序顺序,应该使用std::map;如果不需要排序但更关注查找效率,可以使用std::unordered_map,它提供平均O(1)的查找复杂度
迭代器的类型
GPT: 请解 ...