设计初衷:
公司为了安全性考虑,不让密码被太多人知道,所以想实现一个自动登录的模块。
设计思想:
主要是通过调用Windows API中的一些方法,主要使用的也就是FindWindow,ShowWindow,SetForegroundWindow和SendMessage这四个方法,用窗口名或类名,找到目标窗口和进程以后把保存在数据库中的用户名密码自动填入输入框中,并登录。
设计步骤:
一、调用Windows API。
C#下调用Windows API方法如下:
1、引入命名空间:using System.Runtime.InteropServices;
2、引用需要使用的方法,格式:[DllImport("DLL文件")]方法的声明;
二、找到目标窗口
1)根据窗口的标题得到句柄
2)、遍历所有窗口得到句柄
1 定义委托方法CallBack,枚举窗口API(EnumWindows),得到窗口名API(GetWindowTextW)和得到窗口类名API(GetClassNameW)
2 调用EnumWindows遍历窗口
3 回调方法Recall
3)、打开窗口得到句柄
1 定义设置活动窗口API(SetActiveWindow),设置前台窗口API(SetForegroundWindow)
2 打开窗口
三、向指定的窗口输入数据
1 利用发送消息API(SendMessage)向窗口发送数据
2 利用鼠标和键盘模拟向窗口发送数据