pywinauto获取控件(python pywinauto能控制任意的.exe进程吗)
本文目录
- python pywinauto能控制任意的.exe进程吗
- python怎么判断windows下的某一个窗口是否当前正在操作的
- 熟悉python的进!Windows下的UI自动化类库pywinauto如何获取消息框的内容
- python+pywinauto写自动化测试脚本时,怎么获取windows软件页面元素按钮啊刚开始用这个不太明白
- 使用pywinauto如何 获取systreeview32内的item(python语言)
- Python2.7:的pywinauto(Windows界面测试库)如何获取文本框的内容
- pyautogui运行时可以关闭显示器
python pywinauto能控制任意的.exe进程吗
可以Pywinauto是基于Python开发的,用于自动化测试的脚本模块,主要操作于Windows标准图形界面。它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。 其中,最主要功能为对windows标准控件的一系列动作可编程处理。包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。程序的开始为对所需应用的启 动或连接。获得程序连接后,pywinauto通过窗口的名称、类名、是否可见等属性寻找匹配的窗口,进而通过类似方法寻找用户所需的控件,并获得相应的 句柄。之后,用户可通过易理解的编程方式对指定控件进行相关操作的编程,包括鼠标点击、键盘输入、判断控件间关系、获取控件属性等。
python怎么判断windows下的某一个窗口是否当前正在操作的
获取这个指定窗口的HANDLE,再根据这个HANDLE得到窗口的状态,大概就这个思路。Python没用过,其它语言倒是处理过,正常获取到某个程序主窗体没问题
熟悉python的进!Windows下的UI自动化类库pywinauto如何获取消息框的内容
一般的Window下弹出的消息框,内容可以用 Ctrl+X 或 Ctr+C 放到到剪切板,试一下代码实现这两个功能可不可以放到剪切板。
python+pywinauto写自动化测试脚本时,怎么获取windows软件页面元素按钮啊刚开始用这个不太明白
Win32 APIbackend=win32 - 一个默认后端现在MFC,VB6,VCL,简单的WinForms控件和大多数旧的旧应用程序MS UI自动化backend=uiaWinForms,WPF,Store应用程序,Qt,浏览器
使用pywinauto如何 获取systreeview32内的item(python语言)
①SysListView32#define TEXTSIZE 256void Func(){HWND hYF; //SysListView32的父窗口句柄HWND hLV = FindWindowEx(hYF, NULL, _T("SysListView32"), _T(""));DWORD PID;HWND hWnd; //hWnd 应用程序的句柄GetWindowThreadProcessId(hWnd, &PID);HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, PID);TCHAR buf;TCHAR lpClassName;while(1 && (NULL != hLV)){GetClassName(hLV, (LPWSTR)lpClassName, TEXTSIZE-1); //获得窗口类名CString className(lpClassName);if (className != _T("SysListView32"))continue;CListView* pListView = (CListView*)CWnd::FromHandle(hLV);CListCtrl& listCtrl = pListView-》GetListCtrl();LVCOLUMN* plvcolumn =(LVCOLUMN*)VirtualAllocEx(hProcess, NULL, sizeof(LVCOLUMN), MEM_COMMIT, PAGE_READWRITE);TCHAR* pColumnTitle = (TCHAR*)VirtualAllocEx(hProcess, NULL, TEXTSIZE, MEM_COMMIT, PAGE_READWRITE);LVCOLUMN lvcol;lvcol.pszText = pColumnTitle;lvcol.cchTextMax = TEXTSIZE;lvcol.mask = LVCF_TEXT;WriteProcessMemory(hProcess, plvcolumn, &lvcol, sizeof(LVCOLUMN), NULL);listCtrl.GetColumn(0, plvcolumn);ReadProcessMemory(hProcess, pColumnTitle, buf, TEXTSIZE, NULL);VirtualFreeEx(hProcess, plvcolumn, 0, MEM_RELEASE);VirtualFreeEx(hProcess, pColumnTitle, 0, MEM_RELEASE);CString lvcolTitle(&buf);if (lvcolTitle == _T("图像名称")){break;}hLV = ::GetWindow(hLV, GW_HWNDNEXT);}BOOL bRet = TRUE;CListView* pListView = (CListView*)CWnd::FromHandle(hLV);CListCtrl& listCtrl = pListView-》GetListCtrl();int nCount = ListView_GetItemCount(hLV);for (int i = 0; i 《 nCount; ++i){LVITEM* plvitem =(LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE);TCHAR* pItemTitle = (TCHAR*)VirtualAllocEx(hProcess, NULL, TEXTSIZE, MEM_COMMIT, PAGE_READWRITE);LV_ITEM lvi;lvi.iSubItem = 1;lvi.pszText = pItemTitle;lvi.cchTextMax = TEXTSIZE;WriteProcessMemory(hProcess, plvitem, &lvi, sizeof(LVITEM), NULL);SendMessage(hLV, LVM_GETITEMTEXT, i, (LPARAM)plvitem);ReadProcessMemory(hProcess, pItemTitle, buf, TEXTSIZE, NULL);VirtualFreeEx(hProcess, plvitem, 0, MEM_RELEASE);VirtualFreeEx(hProcess, pItemTitle, 0, MEM_RELEASE);CString strText(&buf);if (0 == strText.CompareNoCase(_T("缺图"))){//XXXXXXXXXXXXXXXXXXX}}};②SysTreeView32HTREEITEM GetNextTreeItem(HWND hWnd, HTREEITEM hCurTreeItem){if (NULL == hWnd || NULL == hCurTreeItem)return NULL;HTREEITEM hResultItem = TreeView_GetNextItem(hWnd, hCurTreeItem, TVGN_CHILD);if (NULL == hResultItem){hResultItem = TreeView_GetNextItem(hWnd, hCurTreeItem, TVGN_NEXT);}if (NULL == hResultItem){HTREEITEM hParentItem = TreeView_GetNextItem(hWnd, hCurTreeItem, TVGN_PARENT);hResultItem = TreeView_GetNextItem(hWnd, hParentItem, TVGN_NEXT);}return hResultItem;}void Func(){//获取树控件的内容HWND hParent; //SysTreeView32父窗口句柄HWND hTree = FindWindowEx(hParent, NULL, _T("SysTreeView32"), _T(""));HWND hWnd; //主程序句柄DWORD PID;GetWindowThreadProcessId(hWnd, &PID);HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, PID);ASSERT( NULL != hProcess);UINT vItemCount = TreeView_GetCount(hTree);HTREEITEM hTreeItem = TreeView_GetRoot(hTree);TCHAR buf;std::vector《CString》 vecItemText;CTreeView* pTreeView = (CTreeView*)CWnd::FromHandle(hTree);CTreeCtrl& treeCtrl = pTreeView-》GetTreeCtrl();for (int i = 0; i 《 vItemCount; i++){LPTV_ITEM pTreeItem =(LPTV_ITEM)VirtualAllocEx(hProcess, NULL, sizeof(TV_ITEM), MEM_COMMIT, PAGE_READWRITE);TCHAR* pItemText = (TCHAR*)VirtualAllocEx(hProcess, NULL, MAXLENGTH, MEM_COMMIT, PAGE_READWRITE);TV_ITEM item;item.mask = TVIF_TEXT;item.hItem = hTreeItem;item.pszText = pItemText;item.cchTextMax = MAXLENGTH;WriteProcessMemory(hProcess, pTreeItem, &item, sizeof(TV_ITEM), NULL);treeCtrl.GetItem(pTreeItem);ReadProcessMemory(hProcess, pItemText, buf, MAXLENGTH, NULL);VirtualFreeEx(hProcess, pTreeItem, 0, MEM_RELEASE);VirtualFreeEx(hProcess, pItemText, 0, MEM_RELEASE);if (TreeView_GetRoot(hTree) != hTreeItem){CString sTreeItemText(buf);vecItemText.push_back(sTreeItemText);}hTreeItem = GetNextTreeItem(hTree, hTreeItem);}for (auto it = vecItemText.begin(); it != vecItemText.end(); ++it){//可根据Item内容判断转出的pdf是否可用}}
Python2.7:的pywinauto(Windows界面测试库)如何获取文本框的内容
你这是弄自动化?要输出到Python的哪个控制台? 是命令提示符?你是在命令提示符下执行脚本的吗?如:python xxx.py
pyautogui运行时可以关闭显示器
题主是否想询问“pyautogui运行时可以关闭显示器吗”?可以。pywinauto模块可以关闭显示屏应用,用于应用控制打开等。也可以等位到控件,并对控件进行操作,如点击、等。
更多文章:
在同一个局域网怎样管理其他电脑急急急?哪些命令是局域网管理常用安全命令
2024年6月29日 08:46
胡莱三国王权之争(胡莱三国里的王权之争啥意思呀咋退出去呀,还不让撤将咋撤将呀)
2024年3月14日 11:20
僵尸世界大战游戏下载安装(怎么下载丧尸世界大战劫后余生手机版)
2024年8月31日 17:21
英雄战姬 一周目 阿喀琉斯怎么打?英雄战姬gold在进程推到进攻江户和京都之后开战选人的时候,出直接弹窗然后闪退有什么解决办法吗
2024年7月23日 10:13
怎么点亮CF穿越火线的QQ图标?qq网吧cf任务 为什么我做啦任务没有送到呢 / 这什么网吧是骗人的吧! 3
2024年6月28日 16:43