最近由於客戶的需求,需要乙個登陸的解決方案,但是我們需要捕獲介面的控制項,並賦值,然後自動登入,在網上找了一下,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);}}
1view codeprivate
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 }
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...