All Posts

  • Published on
    本文介绍了如何使用 Python 和 Redis 实现多台电脑之间的剪切板内容同步。通过创建 `ClipboardSync` 类,程序能够监听本地剪切板的变化,并将复制的内容发送到 Redis 服务器。其他运行相同程序的电脑可以从 Redis 接收并粘贴这些内容。项目依赖于 `pyperclip` 和 `redis-py` 库,利用多线程和 `asyncio` 事件循环确保实时同步。此工具简化了跨设备分享文本和链接的过程,提升了工作效率。
  • Published on
    本文介绍了如何获取 Windows 桌面上所有可见窗口的信息,包括窗口句柄、标题、类名、区域和 ZOrder(显示层级)。通过使用 C++ 和 Windows API,定义了 `WindowInfo` 结构体来存储窗口信息,并通过 `EnumWindows` 函数枚举所有可见窗口。代码示例展示了如何遍历窗口列表,获取每个窗口的详细信息,并计算其 ZOrder,最终返回包含所有窗口信息的 `QVector<WindowInfo>`。
  • Published on
    本文介绍了如何在使用第三方远程桌面软件连接公司电脑时,解决物理控制台无显示的问题。原因是微软远程桌面(RDP)会创建独立的会话,默认不显示在物理控制台上,而其他软件如 TeamViewer 无法直接输出到物理屏幕。通过使用 `tscon` 命令将远程会话转换为 console session,可以实现在物理控制台上查看远程桌面输出。具体步骤包括使用 `query user` 查看会话ID,并执行 `tscon <session ID> /dest:console` 进行转换。
  • Published on
    C++20 引入模块特性以解决头文件问题。模块由 interface 和 implementation 组成,使用 import 导入,如 example 模块示例。命名应遵循规范,像 math 模块。模块能提升代码维护重用性,编译快、组织简单、冲突少。
  • Published on
    本文介绍 Win32、MSAA、UIA 技术。Win32 是基础 API 用于 Windows 界面开发,MSAA 助开发辅助功能,UIA 是 Windows7 新功能提供更精确访问信息。RPA 产品需这些技术来控制 GUI 应用,各技术优缺点各异,需根据需求灵活选择。