多層視窗如何抓取控制代碼以及後臺滑鼠位置解決方案
先附上程式碼
[code]
HF = Plugin.Window.Find("Container", 0) 'HF是我定義的總父視窗的變數,視窗控制代碼的變數名是可以自己隨意取的
HF1 = Plugin.Window.FindEx(HF, 0, "Shell Embedding", 0) '下一層視窗
HF2 = Plugin.Window.FindEx(HF1, 0, "Shell DocObject View", 0) '下下一層視窗
Hwnd = Plugin.Window.FindEx(HF2, 0, "Internet Explorer_Server", 0)'我們主要操作的視窗,我把變數名起為Hwnd,因為按鍵後臺命令的控制代碼預設是Hwnd,我懶得每次都改了。
MessageBox "HF:" & HF & ",HF1:" & HF1 & ",HF2:" & HF2 & ",Hwnd:" & Hwnd '把控制代碼讀取出來看看是否正確
Call Plugin.Bkgnd.RightClick(Hwnd, 133, 86) '這個是做了一個簡單的滑鼠右鍵點選的動作。
[/code]
第一步:抓你要操作的視窗的控制代碼,我們這裡以360的IE視窗操作舉例,抓控制代碼,用按鍵抓抓也行,用別的輔助
下載地址請訪問原帖
視窗雷達下載地址:
本帖隱藏的內容需要回復才可以瀏覽
第二步:寫程式:
[code]HF = Plugin.Window.Find("Container", 0) 'HF是我定義的總父視窗的變數,視窗控制代碼的變數名是可以自己隨意取的
[/code]
我們看到雷達視窗抓了我麼要獲取的控制代碼有3個父控制代碼,先找到最上一層的父控制代碼
第三步:分別找到大哥和二哥
[code]HF1 = Plugin.Window.FindEx(HF, 0, "Shell Embedding", 0) '下一層視窗
HF2 = Plugin.Window.FindEx(HF1, 0, "Shell DocObject View", 0) '下下一層視窗[/code]
第四步:
找到我們要操作的視窗控制代碼,他的父控制代碼其實就是HF2,但是HF2又不能直接用Find命令找到,所以要這樣逐層的查詢。很多新手常見錯誤就是直接通過HF這個總父控制代碼來找第三層第四層的控制代碼,當然找不到了。
正確的找法如下:
[code]Hwnd = Plugin.Window.FindEx(HF2, 0, "Internet Explorer_Server", 0)[/code]
不正確的找法如下:
[code]Hwnd = Plugin.Window.FindEx(HF, 0, "Internet Explorer_Server", 0)[/code]
找準確了控制代碼以後,後臺滑鼠位置問題就迎刃而解。
第五步:開啟按鍵抓抓,指定視窗控制代碼截圖。
下載地址請訪問原帖
第六步:不要再重新定義起始座標了,在你要操作的位置點右鍵抓點,抓好點的x,y座標就是正確的座標
Call Plugin.Bkgnd.RightClick(Hwnd, 133, 86),不需要再去更改了,你抓的點是133, 86,你就寫133, 86,就這麼簡單。
相關推薦
多層視窗如何抓取控制代碼以及後臺滑鼠位置解決方案
多層視窗如何抓取控制代碼以及後臺滑鼠位置困擾了很多新手,我認為很多人疑惑後臺滑鼠位置其實主要問題還是在控制代碼的抓取問題上。 先附上程式碼 [code] HF = Plugin.Window.Find("Container", 0) 'HF是我定義的總父視窗
1106Selenium web自動化測試經驗分享-開啟多個視窗,切換控制代碼
在web自動化測試中,好像很少會出現多視窗和切換控制代碼的情景。我之前曾想過一個情景:如果我開啟多個視窗,該怎樣更快更好的切換控制代碼呢?今天做個小分享。 一)切換控制代碼(handle)(1) 首先說明下情景:百度搜索Python,在搜尋的結果中點選一個‘官網’的超連結,打開了一個
MFC中獲取各個視窗之間的控制代碼或者指標物件的方法
轉載:https://www.cnblogs.com/gavanwanggw/p/6743774.html MFC中獲取各個視窗之間的控制代碼或者指標物件的方法 MFC在非常多的對話方塊操作中,我們常常要用到在一個對話方塊中呼叫還有一個對話方塊的函式或變數.能夠用例如以下方法來解決.
多程序情況下檔案控制代碼共享的問題
1 Linux中的父子程序 fork() 和 clone()系統呼叫可用來建立新的程序。這兩個系統呼叫結束時,核心在系統的實體記憶體中為新的程序分配新的 task_struct 結構,同時為新程序要使用的堆疊分配物理頁。Linux 還會為新的程序分配新的程序識
Python+selenium 獲取瀏覽器視窗座標、控制代碼
1.0 獲取瀏覽器視窗座標 python目錄可找到Webdriver.py 檔案定義了get_window_rect()函式,可獲取視窗的座標和大小(長寬),但出現”Command not found
windows 下在一個程序中使用createprocess建立一個視窗程序,並獲取這個視窗的HWND控制代碼
// Process.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <ios
陰陽師魂十掛機實現(後臺控制代碼截圖+滑鼠點選)
學習繁忙,但是作為癢癢鼠的忠實粉,抽空寫了個小指令碼,後臺掛機魂十,業原火,御靈,覺醒,還是美滋滋的。 指令碼實現的關鍵主要有兩部分:一是通過控制代碼後臺獲得截圖,二是通過控制代碼後臺對視窗傳送滑鼠點選
Linux的開啟檔案表:開啟檔案表、檔案描述符、開啟的檔案控制代碼以及i-node之間的關係
在Linux系統中一切皆可以看成是檔案,檔案又可分為:普通檔案、目錄檔案、連結檔案和裝置檔案。檔案描述符(file descriptor)是核心為了高效管理已被開啟的檔案所建立的索引,其是一個非負整數(通常是小整數),用於指代被開啟的檔案,所有執行I/O操作的系統呼叫都通過檔案描述符。程式剛剛啟動的
分享一個VS2013代碼窗口一閃而過的解決方案。
console system 感謝 鏈接 窗口 情況 ons 點擊 sub 下載完VS2013,寫一個簡單代碼以後,我遇到了運行窗口一閃而過的情況,我按Ctrl+F5也沒能杜絕這個情況發生。 解決方案:上面一欄“項目-屬性-配置屬性-鏈接器-系統-子系統”,點擊“子系統”左
python+selenium五:多視窗切換與獲取控制代碼 python+selenium五:多視窗切換與獲取控制代碼
python+selenium五:多視窗切換與獲取控制代碼 from selenium import webdriverfrom selenium.webdriver.common.by import Byimport timedriver = webdriver
【2018.05.11】python3.6+selenium 多視窗,控制代碼,切換
#coding = utf-8 ''' 多視窗控制代碼 獲取 切換 ''' from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://home.zhiyoo.com/") d
幾個ARX取CAD視窗控制代碼的函式
標頭檔案:rxmfcapi.h CWinApp* acedGetAcadWinApp() 返回指向AutoCAD應用程式類例項的指標 當用COM方式操作CAD的選單工具欄時會用到。 CDocument* acedGetAcadDoc() 返回指向AutoCAD檔案
Selenium:多視窗切換(獲取視窗控制代碼handle)
我們在操作網頁的時候,點選有些頁面的連結,會重新開啟一個視窗,我們要在新頁面上操作,就得切換視窗 比如在百度首頁的登入框點選註冊,會重新開啟一個註冊的新頁面,要在新頁面註冊,就得先切進新頁面 那我們怎麼在這兩個視窗之間進行切換呢?每個瀏覽器視窗都有一個唯一的屬性控制代碼(handle)來表示,我們就可
多執行緒委託之跨執行緒問題分析--在建立視窗控制代碼之前,不能在控制元件上呼叫 Invoke 或 BeginInvoke(解決方法已更新)
檢視巢狀檢視+groupby+sum+if超慢?檢視巢狀檢視+groupby+sum+if超慢? 炯蕉蔚郝iar貉k湯秤TP2Fx扯訃詬壤撞蝸 《 http://babyknow.baidu.com/article/1376a5480527629546e457877078
WPF 視窗控制代碼獲取和設定
WPF 視窗控制代碼設定和獲取 1、控制代碼類 WHwnd.cs public class WHwnd { /// <summary> /// 主窗體控制代碼 /// </summar
如何獲取視窗內文字框的控制代碼
一 背景 某種情況下,需要從某窗體獲取該窗體文字框內的內容,發現文字框並沒有標題名,無法獲取文字框控制元件的控制代碼。接下來,我將介紹我獲取所需文字框控制元件控制代碼方法。 二 使用Spy++獲取 如圖,開啟Spy++可以直接獲取到
MFC 獲取當前視窗控制代碼,或者父子視窗控制代碼
父子視窗 在子視窗中,需要用到父視窗的控制代碼: AfxGetMainWnd()->m_hWnd 注:在父視窗中,也可以這麼用來呼叫自己視窗的控制代碼 在子視窗中,需要用到自己視窗的控制代碼 ChildDlg *pChildDlg ; pChildDlg->m_h
視窗與控制代碼
視窗概念 視窗是windows應用程式中一個非常重要的元素,一個windows應用程式至少要有一個視窗,稱為主視窗。視窗就是螢幕上的矩形區域,是windows應用程式與使用者進行互動的介面。 一個應用程式視窗通常都包含標題欄、選單欄、系統選單欄、最小化框、最大化框、可調邊框,有的還有滾動條,
按鍵精靈 -獲取視窗控制代碼
MessageBox "視窗右下角座標:" get_window_pos //得到當前最前面的視窗控制代碼-就是把需要的視窗啟用在最前面 Hwnd = Plugin.Window.Foreground() //得到滑鼠指向的視窗控制代碼Hwnd = Plugin.Window.Mo
web自動化-視窗控制代碼及位置變化
在進行web自動化時,很容易會遇到多視窗進行切換測試,下面就對多視窗的一些控制代碼和切換及視窗控制代碼順序簡單總結一下 1 from selenium import webdriver 2 driver = webdriver.Firefox() 3 driver.get("https://www.b