实现pdf 的密码自动输入,主要是为了防止文档泄露,但有不得不发给其他的人。
如何实现这个控制呢
1 登陆控制,只允许用户登陆软件1次。
这个需要通过服务器技术控制。这里不在多说。
2 加载pdf 的控件。
下载pdf 之后,直接放进去就可以了
3 模拟输入密码
1 监听是否已经包含了“ 口令输入框” , 如果已经有的话,提示用户先关闭
2 判断没有密码框的情况下 , 在软件内部打开pdf
3 再次监听 包含了“ 口令输入框” , 监听到之后,
3.1 切换输入法到英文输入状态 , 关闭键盘鼠标操作
3.2 移动窗体到做上角落,模拟鼠标点击,输入密码,敲回车
3.3 检测密码是否输入成功,如果没有成功,模拟输入 回车,关闭提示窗体
循环3.2 , 3。3-4次,结束。
int inputcode = 0;
passcnt = 0;
try
{
foreach (InputLanguage inputLanguage in InputLanguage.InstalledInputLanguages)
{
if (inputLanguage.Culture.Name.IndexOf("en") >= 0 || inputLanguage.LayoutName.IndexOf("美式键盘") >= 0)
{
InputLanguage.CurrentInputLanguage = inputLanguage;
inputcode = 1;
break;
}
}
}
catch (Exception ex) {
}
try
{
IntPtr mainIntPtr;
mainIntPtr = FindWindow(null, "口令");
if (mainIntPtr.ToInt32() == 0 && inputcode==1 )
{
string filename = lion.ReadString("APP", "fielname");
lion.IniWriteValue("APP", "fielname", filename);
axAcroPDF1.LoadFile(filename);
// BlockInput(true);
timer1.Enabled = true;
}
else {
MessageBox.Show("请先关闭其他的密码输入窗或者未切换到英文输入界面");
}
}
catch (Exception ex) { }
然后设置一个timer 监控窗口
监控窗口,然后模拟输入即可