QC浏览器增加自动登录功能
前言
我之前开源了一个QC浏览器,用.Net做的,C#语言编写的,前段时间实在受不了每天登录(因为QC浏览器不支持自动登录,每次要输入密码也是够了),然后就想搞一个自动登录的功能。
分析
分析了下,因为ALM-Client是另外启动一个线程。我外壳虽然套了C#的Form但是里面的内容不太好获取,苦思冥想之下,决定用SendMessage
来做。具体方式很简单。
程序初始化的时候,从配置文件中读入用户,密码。
步骤
传递给一个helpApi
类,这个类专门用来执行登录操作。
help
类里面有一个执行调用的方法SetUsernameAndPwd()
这个方法启动了一个线程(对应的方法CallToChilThread1
)
这个方法通过FindWindow
找到名称为"Sharep ALM Browser"的窗口
然后循环100次。(为什么100次,如果没找到对应的窗口,则休眠1秒,总花费时间100秒)
循环里面通过EnumChildWindows找到对应的登录窗口,
找登录窗口的方式是这样的:遍历EnumChildWindows找到的所有子窗口,如果某个窗口里面的标签包含:Login Name:"
的话,则代表是登录窗口,否则休眠1秒。
依次类推密码
这些都找到后,需要找到校验的按钮,以及登录的按钮
找到校验按钮前就会把用户名跟密码设置进去,这里要注意一点,就是设置用户密码使用了SendMessage
的方法,所以需要一个SetFocus
的消息。
之后延迟1秒,找到认证框,并且点击。
点击使用keybd_event
的事件,具体看代码就行了。
找到登录按钮也是一样的方式。
最后
目前QC浏览器的功能我本人已经使用了很久。基本没有什么太大的问题。
后续的开发打算搁置,等闲下来的时候再进行调整(比如添加一个导出的窗口,方便导出QC单)
如果有什么问题,请与我沟通,或者直接在github上提交issue。我有空的 时候会去看看。
本文来自:QC浏览器增加自动登录功能-小码农,转载请保留本条链接,感谢!
- 本文标签: c# QC浏览器
- 本文链接: https://djc8.cn/archives/qc-browser-adds-automatic-login-function.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权