添加AutoItX3.Assembly.dll,AutoItX3.dll,dm.dll,dmnet.dll
using AutoIt;
using dmnet;
1、//AutoIt找到窗体中的控件,点击:
IntPtr winHandle = AutoItX.WinGetHandle("[class:TFJStandardEditForm]");
IntPtr controlHandle = AutoItX.ControlGetHandle(winHandle, "[class:TPanel;instance:2]");
var baseLoc = AutoItX.WinGetPos(controlHandle);
AutoItX.MouseClick(x: baseLoc.X + 110, y: baseLoc.Y + 12, numClicks: 1); //保存
AutoItX.WinWaitActive("窗体title");
2、查看是否存在指定窗体
/// <summary>
/// Closes the team viewer.
/// </summary>
internal void CloseTeamViewer()
{
IntPtr winptr = AutoItX.WinGetHandle("发起会话");
if (AutoItX.WinExists("发起会话") == 1) //存在发起会话窗体
{
AutoItX.WinActivate(winptr); //激活窗体(鼠标定位该窗体)
AutoItX.WinClose("发起会话"); //关闭窗体
IntPtr conptr = AutoItX.ControlGetHandle(winptr, "[Class:Button;Instance:4]"); //查找控件
AutoItX.ControlClick("发起会话", "", "[Class:Button;Instance:4]"); //点击控件(点击确定按钮)
}
}
3、给指定控件赋值
IntPtr inptrSearchPop = AutoItX.WinGetHandle("[Class:Tfrm_IntelligentSearchPop]"); //查找窗体句柄
IntPtr inptrEdit = AutoItX.ControlGetHandle(inptrSearchPop, "[Class:TEdit;Instance:1]"); //查找控件句柄
AutoItX.ControlSetText(inptrSearchPop, inptrEdit, mCompany); //给控件赋值
AutoItX.Send(mCompany); //给控件赋值
string company = AutoItX.ControlGetText(inptrSearchPop, inptrEdit); //获取控件的text值
/// 移动位置大于0为向下向右移动
/// </summary>
/// <param name="x">x轴左右移动</param>
/// <param name="y">y轴移动次数</param>
public static void RemoveStep(int x, int y)
{
if (y > 0)
{
AutoItX.Send("{DOWN " + y + "}");
}
else if (y < 0)
{
AutoItX.Send("{UP " + Math.Abs(y) + "}");
}
if (x > 0)
{
AutoItX.Send("{RIGHT " + x + "}");
}
else if (x < 0)
{
AutoItX.Send("{LEFT " + Math.Abs(-x) + "}");
}
}
5、模拟填写信息。
JArray data = AutoHelperCommon.GetRowData(row.ToString(), report);
AutoItX.Send(data[col - 1].ToString());
AutoHelperCommon.Enter();
/// Enter 几次
/// </summary>
/// <param name="num">The number.</param>
public static void Enter(int num = 1)
{
if (num > 1)
{
AutoItX.Send("{ENTER " + num + "}");
}
else
{
AutoItX.Send("{ENTER}");
}
}
6、// dmnet找图片模拟点击,先将图片格式转化,找图片位置,模拟点击位置
Dmsoft.ImageToBmp(picLocation + "smallzzsup.png", picLocation + "smallzzsup.bmp");
int loca = Dmsoft.FindPic(startX, startY, endX, endY, picLocation + "smallzzsup.bmp", "000000", 0.8, 0, out var _x, out var _y);
AutoItX.MouseClick(x: Convert.ToInt32(_x) + 10, y: Convert.ToInt32(_y) + 3, numClicks: 2); //打开小规模增值税
参考网址:https://www.autoitscript.com/autoit3/docs/