MS UI Automation原來如此

2022-05-03 04:18:08 字數 529 閱讀 7676

最近參加了公司的乙個program competition,做個小工具。其中涉及到乙個盲點。 需求是:在**中訪問另乙個program的程序,獲取它的視窗控制代碼,並在它的視窗上對某乙個控制項進行滑鼠點選操作以執行相應的命令。google來baidu去,終於有思路了:原來需要用到ms的ui automation library。ms提供了面向c/c++的api,也提供了面向managed code的api。

extract some overview words from below ms msdn article:

詳細背景資訊參見:

就我目前體會到的,主要有這麼幾點:

1. 通過這個庫,我們可以做兩件事情:

2. about spy++ and ui spy

通過這兩個工具,我們可以獲取到任何乙個視窗的詳細ui資訊,具體到乙個控制項的tab順序都可以拿到。

3. 讀了幾個例子:

自動化測試工具的原理:

major tom 的 gui 控制項:

microsoft ui 自動化庫

原環套原環

今天在除錯兄弟的程式的時候發現了乙個問題,就是在組合資料的時候,有些時候可以成功,有些時候失敗,感覺十分奇怪。功能大概是這樣的,就是在一棵樹上掛資料,所有的節點都可以有資料,不只是葉子的,在組合資料的時候,可以從任意節點取資料,但是不能是重複的資料。資料可能出現的情況如圖a b c所示,圖a是沒有干...

MongoDB writeConcern原理解析

mongodb支援客戶端靈活配置寫入策略 writeconcern 以滿足不同場景的需求。db.collection.insert mongodb支援的writeconncern選項如下 w 資料寫入到number個節點才向用客戶端確認 j 寫入操作的journal持久化後才向客戶端確認 wtime...

LinkedBlockingQueue原理分析

linkedblockingqueue也是乙個阻塞佇列,相比於arrayblockingqueue,他的底層是使用鍊錶實現的,而且是乙個可有界可無界的佇列,在生產和消費的時候使用了兩把鎖,提高併發,是乙個高效的阻塞佇列,下面就分析一下這個佇列的原始碼。鍊錶節點定義 static class node...