窗口信息主要有:窗口句柄、标题、类名、区域,还有一个ZOrder,它表示窗口显示在桌面的上下层级,窗口是否被遮盖。 include <qt_windows.h> include <QDebug> int GetWindowZOrder(HWND hwnd); struct WindowInfo...
远程桌面切换到console session
我用vpn连到公司内网,然后通过mstsc远程桌面连到公司内网机器。我想关掉vpn这样就不能用微软的远程桌面了,所以我先起了一个第三方的远程桌面软件,这样关闭vpn和微软的远程桌面,就可以用第三方的远程桌面在家里连接公司...
JavaScript优雅的编程方式
JavaScript 有许多高级技巧可以提高代码的可读性和可维护性,本回答将介绍其中的一些技巧并给出示例。 1. 使用函数式编程 函数式编程可以使代码更加灵活、可复用、容错性强,是一种将函数看作第一等公民的编程范式...
实现RPA软件的关键点
实现RPA(Robotic Process Automation)软件的关键点包括以下几个方面: 识别业务流程:首先需要确定要自动化的业务流程,识别出业务流程中哪些环节可以被自动化执行。 开发自动化脚本:根据业务流程的识别结果,采用相...
Win32 MSAA UIA技术介绍
Win32、MSAA、UIA技术在Windows平台开发中是比较常见的技术。本文将对这几种技术进行简要介绍,并解释为什么RPA产品会用到这些技术。 Win32 Win32是一套基于C语言的API接口,是Windows操作系统最为基础的API。通过Win3...
C++20 模块入门指南
如果你正在学习 C++ 或从事 C++ 开发,那么你一定使用过头文件(header file)来实现代码的模块化。然而,在 C++ 早期版本中,头文件带来了很多问题,比如编译速度慢、头文件依赖复杂等等。因此,在 C++20 中引入了一个新的特性...
Python的几种函数参数类型
位置参数,根据参数的传入顺序来赋值 def add(a, b): return a + b 默认参数,n就是默认参数,调用函数的时候可以不传 默认参数必须写在后面且指向不变对象 def power(a, n=2): s = 1 for ...
Effective Python
读Effective Python的一些练习和记录 关于命名的建议 PEP 8 建议采用不同的方式来给 Python 代码中的各个部分命名,这样在阅读代码时, 就可以根据这些名称看出它们在 Python 语言中的角色。 函数、变量及属性用小...
Mac、linux安装brew终极办法
安装brew的时候是不是经常碰到连不上或者下载缓慢的情况,下面方法可以帮你解决这个问题: 在终端粘贴如下命令回车就可以了,注意执行后的命令行提示,可能要输入开机密码 /bin/zsh -c "$(curl -fsSL https://gite...
IE获取元素样式
IE浏览器获取元素样式,通过正常方式获取不了。 这种方法获取不了: CComPtr<IHTMLStyle> pHtmlStyle; if (!FAILED(m_pHtmlElement->get_style(&pHtmlStyle)) && pHtmlStyle != NULL) { if (!FAIL...
QProcess 7z.exe 解压进度
我们使用一个简单的方法来实现,使用7z提供的sdk实现太麻烦了。 7z命令行 使用7z的命令行来解压要获取进度必须要读取到stdout里面的进度信息,关键参数是:-bsp1,只有这样才能在readyReadStandardOutput信号中不断读...
降权启动应用
如果应用是管理员权限,它再去启其他进程时也会是管理员权限,那么怎样降权呢?让它以普通用户的权限来启动,下面代码提供了一种实现方法。 注意!!! WTSQueryUserToken在普通会话下调用总是失败,但是在session 0上的...