C 捕獲Windows窗體控制項

2022-09-15 16:18:12 字數 1747 閱讀 1339

最近由於客戶的需求,需要乙個登陸的解決方案,但是我們需要捕獲介面的控制項,並賦值,然後自動登入,在網上找了一下,autoit這個工具不錯,可以捕獲的到窗體及控制項,但是沒有原始碼呀,自己動手寫乙個簡單版的吧。

好了,下面咱們來說道說道·······

思路分析: 我們首先要捕獲滑鼠的移動,當滑鼠按下時,觸發乙個事件,然後移動滑鼠到控制項,釋放滑鼠,捕獲控制項。如何捕獲滑鼠事件呢?我們用鉤子(hook)

private int mousehookproc(int ncode, intptr wparam, intptr lparam)

else

var e = new mouseeventargs(button, clickcount, point.x, point.y, 0);

mousedownevent(this,e); // mouseclickevent(this, e);

}if (mouseupevent != null)

var e = new mouseeventargs(button, clickcount, point.x, point.y, 0);

mouseupevent(this, e);

}if (mousemoveevent != null)

var e = new mouseeventargs(mousebuttons.none, 0, point.x, point.y, 0);

mousemoveevent(this, e);

}this.point = new point(mymousehookstruct.pt.x, mymousehookstruct.pt.y);

return mousecontrol.callnexthookex(hhook, ncode, wparam, lparam);}}

在前台我們會呼叫鉤子委託,來實現我們想要的結果

1

private

void mh_mouseupevent(object

sender, mouseeventargs e)

15this.waitcount = 0;16

this.text = "

視窗適配";

17}18this.ptmouse = this

.m_windowdetective.mouseposition;

19//

this.txtworkreport.text = this.m_windowdetective.result().tostring();

20 txttitle.text = dic["標題"

].tostring();

21 txtclassname.text = dic["類別"

].tostring();

22 txtinstance.text = dic["

instance

"].tostring();

23 picturebox1.imagelocation = environment.currentdirectory + "

\\icon\\snows.png";

2425}26

}27private

void mh_mousemoveevent(object

sender, mouseeventargs e)

2835 }

view code

windows窗體控制項的學習

checkbox 的學習 屬性 checked 該值指示核取方塊是否處於選中狀態,text 與此控制項關聯的文字 name 獲取或設定控制項的名稱 事件 click 當滑鼠單擊控制項時發生 checkedchanged checked值發生變化 private void checkbox1 chec...

Windows 窗體控制項的布局

出處 對許多應用程式而言,需要首先考慮如何在窗體中精確放置控制項。system.windows.forms 命名空間提供了許多布局工具來完成此項操作。autosize 屬性概述 描述 autosize 屬性及其在布局中的角色。windows 窗體控制項中的邊距和填充 描述 margin 和 padd...

C 窗體控制項 日期控制項DateTimePicker

日期控制項 datetimepicker 用來控制使用者的輸入日期,使用該控制項可以使使用者通過選擇的方式填寫日期,避免輸入日期格式判斷。datetimepicker常用的屬性 showupdown 指示是否為修改控制項值顯示數字顯示框,而不是顯示下拉日曆。format 日期的顯示樣式。maxdat...