C#FlaUI.UIA實現發送微信消息原理

一 準備

.NetFramework 4.8
FlaUI.UIA3 4.0.0?

FlaUInspect V1.3.0

1下載FlaUInspect?

https://github.com/FlaUI/FlaUInspect

FlaUInspect V1.3.0

百度網盤下載

2 NuGet 引用 flaUI.UIA3 4.0.0

二代碼部分

1 引用FlaUI

using FlaUI.Core;
using FlaUI.Core.AutomationElements;
using FlaUI.Core.Input;
using FlaUI.Core.WindowsAPI;
using FlaUI.UIA3;

2? ?代碼全部

 class Program
{//1.GetWindowText 獲取給定窗口句柄的窗口標題[DllImport("user32.dll", CharSet = CharSet.Auto)]public static extern bool SwitchToThisWindow(IntPtr hWnd, bool fAltTab);[STAThread]//啟動單一現場static void Main(string[] args){Process[] processes = Process.GetProcessesByName("WeChat");if (processes.Count() != 1){Console.WriteLine("微信未啟動或啟動多個微信");}else{//1.附加到微信進程using (var app = Application.Attach(processes.First().Id)){using (var automation = new UIA3Automation()){//2.獲取主界面var mainWindow = app.GetMainWindow(automation);//窗口置頂顯示  避免其它窗口遮擋影響后續操作IntPtr handle = processes.First().MainWindowHandle;SwitchToThisWindow(handle, true);    // 激活,顯示在最var childWind = mainWindow.FindChildAt(1).FindChildAt(0).FindChildAt(1).FindChildAt(0).FindChildAt(0).FindChildAt(0);childWind.DrawHighlight(System.Drawing.Color.Red);childWind.Click();//搜索"文件傳輸助手"Keyboard.Type("文件傳輸助手");Thread.Sleep(800);//回車Keyboard.Type(VirtualKeyShort.RETURN);Thread.Sleep(800);//輸入內容Keyboard.Type("文件傳輸助手");Thread.Sleep(800);//回車Keyboard.Type(VirtualKeyShort.RETURN);}}}}
}

?三 原理如下

FlaUInspect V1.3.0

查找pane 節點 1,0,1,0,0,0

找到搜索

mainWindow.FindChildAt(1).FindChildAt(0).FindChildAt(1).FindChildAt(0).FindChildAt(0).FindChildAt(0);

根據FlaUInspect提示信息 可以做自動化輔助工具

演示代碼下載

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167108.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安防系統智能視頻監控中出現畫面異常該如何自檢?

大家都知道,在當今社會,攝像頭無處不在,除了常見的生活與工作場景中,在一些無法人員無法長期駐點場景,如野生動物監測、高空作業監控、高壓電纜監控等場景,在這些地方安裝攝像頭就是為方便日常監控。但是由…

Odoo:行業領先的免費開源生產制造管理系統

產品生命周期管理 用 Odoo 產品數據管理解決方案加速產品開發 研究、開發和設計新產品或者重新設計現有產品是所有制造企業的活力之源,但很多企業的設計部門和工程部門卻完全脫離 ERP 系統。這導致工程師需要耗費大量時間來回答企業中其他部門就產品狀態、修改級別…

遞歸和動態規劃的區別

時間復雜度方面: 遞歸會導致指數級別的時間復雜度,因為它會計算許多重復的子問題。 動態規劃會存儲子問題的結果,來降低復雜度,使其變成多項式級別。 自頂向下VS自底向上 遞歸采用自頂向下的方式,從原問題出發&#xf…

Course1-Week2-多輸入變量的回歸問題

Course1-Week2-多輸入變量的回歸問題 文章目錄 Course1-Week2-多輸入變量的回歸問題1. 向量化和多元線性回歸1.1 多維特征1.2 向量化1.3 用于多元線性回歸的梯度下降法 2. 使梯度下降法更快收斂的技巧2.1 特征縮放2.2 判斷梯度下降是否收斂2.3 如何設置學習率 3. 特征工程3.1 選…

看圖說話:對臟讀、不可重復度、幻讀進行總結

1、臟讀 「事務B」將 id 為 1 的用戶 name 修改為“小卡”,事務未提交。「事務A」查詢 id 為 1 的用戶數據,此時 name 已為“小卡”。 2、不可重復度 「事務A」第一次讀取 id 為 1 的用戶,name 是 “卡卡”。「事務B」將 id 為 1 的用戶 nam…

Sectigo

隨著互聯網的普及和技術的飛速發展,網絡安全問題引起重視。這時,有一家名為Sectigo(原Comodo CA)的公司應運而生,致力于為企業和個人提供最先進、最可靠的網絡安全解決方案。 Sectigo(原Comodo CA) 成立于2008年,總部位于美國加利…

數據分析策略

文章目錄 我想對比不同完整度40%,50%,60%抽樣計算來10min的TI序列,它們的差異與完整率的關系,告訴我怎么對比即可 了解您的分析目標后,我可以提供一個比較不同完整度(40%,50%,60%&am…

啟發式算法

什么是啟發式算法?他們都有什么特點? 啟發式算法是一類用于在大規模問題上尋找近似解的搜索算法。這些算法不保證找到全局最優解,但通常能夠在合理的時間內找到一個較好的解決方案。啟發式算法常用于解決組合優化問題,其中目標是…

《使用Python將Excel數據批量寫入MongoDB數據庫》

在數據分析及處理過程中,我們經常需要將數據寫入數據庫。而MongoDB作為一種NoSQL數據庫,其具有強大的可擴展性、高性能以及支持復雜查詢等特性,廣泛用于大規模數據存儲和分析。在這篇文章中,我們將使用Python編寫一個將Excel數據批…

dos 命令移到文件夾

SET GenFolder C:\Users\administered\Desktop\t2\old_file set path1C:\Users\administered\Desktop\t1\crontab_master set path2C:\Users\administered\Desktop\t2\old_file if not exist %GenFolder% ( echo %GenFolder%目錄不存在,已創建該目錄&#x…

Linux python安裝 虛擬環境 virtualenv,以及 git clone的 文件數據, 以及 下資源配置

根目錄創建 venvs 文件夾 sudo mkdir /venvs 進入 /venvs 目錄 cd /venvsp 創建虛擬環境,前提要按照 python3 安裝 的 命令 sudo apt install python3 sudo python3 -m venv 虛擬環境名 激活虛擬環境 source /venvs/zen-venv/bin/activate 安裝flask pip install fl…

探究Kafka原理-2.Kafka基本命令實操

👏作者簡介:大家好,我是愛吃芝士的土豆倪,24屆校招生Java選手,很高興認識大家📕系列專欄:Spring源碼、JUC源碼、Kafka原理🔥如果感覺博主的文章還不錯的話,請&#x1f44…

搭建Angular并引入NG-ZORRO組件庫

作者:baekpcyyy🐟 1.安裝node.js 注:安裝 16.0 或更高版本的 Node.js node官網:https://nodejs.org/en 2.進入angular官網 https://angular.cn/guide/setup-local 新建一個文件夾 vsc打開 打開終端 1.首先安裝angular手腳架…

怎么去掉視頻水印?分享三種視頻去水印技巧,輕松搞定!

怎么去掉視頻水印?在分享視頻時,我們常常會遇到因為水印而影響觀感的問題,因此,掌握有效的去水印方法顯得尤為重要,隨著技術的進步,現在有多種方法可以幫助我們去除視頻中的水印。 接下來分享三種簡單且有效…

ARKit增加一個盒子

ARKit增加一個盒子 體驗一下ARKit的能力,在室內隨便加點小球,然后在AR中顯示出來。 效果如下圖: 以下為操作流程。 新建項目 新建一個空項目,項目一定要選擇 Augmented Reality App,能夠省很多的事。 之后的 conte…

音視頻5、libavformat-3

8、設置I/O中斷機制 在 demux 時,我們首先需要調用 avformat_open_input() 打開一個輸入,然后循環調用 av_read_frame() 函數來讀取輸入。 我們要注意的是: avformat_open_input() 和 av_read_frame() 都是阻塞函數,如果不能讀取到足夠的數據,那么它們將會一直阻塞…

sql18(Leetcode1633各賽事的用戶注冊率)

代碼: # Write your MySQL query statement belowselect r.contest_id,round(count(u.user_id)/(select count(user_id) from Users)*100,2) as percentage fromRegister as r left joinUsers as u on u.user_idr.user_id group by contest_id order by percen…

JAVA線程池原理詳解

線程池的優點 1、線程是稀缺資源,使用線程池可以減少創建和銷毀線程的次數,每個工作線程都可以重復使用。 2、可以根據系統的承受能力,調整線程池中工作線程的數量,防止因為消耗過多內存導致服務器崩潰。 線程池的創建 public…

這個視頻監控技術,讓你的工作效率提升10倍!

在當今數字時代,視頻監控技術正迅速成為社會安全、商業管理和生產運營的重要支柱。隨著科技的飛速發展,視頻監控不再僅僅是觀察和記錄,而是演變成了一種智能、高效的解決方案。 在這個數字化的時代,視頻監控不僅是一種技術&#x…

Flink-簡介與基礎

Flink-簡介與基礎 一、Flink起源二、Flink數據處理模式1.批處理2.流處理3.Flink流批一體處理 三、Flink架構1.Flink集群2.Flink Program3.JobManager4.TaskManager 四、Flink應用程序五、Flink高級特性1.時間流(Time)和窗口(Window&#xff0…