各位大神们:
现在我想在一个程序里面通过API获取另一程序的句柄,假如是登录界面,输入用户名和密码后实现登陆。
我该怎么做呢?
在线等,有经验的大神们不要藏了,直接告诉我、推荐网站或文章都行的。
可以查一下Windows API相关资料,你可能需要用到FindWindowEx、PostMessage这些API。
FindWindowEx可以查找到目标窗体,并按级查找到目标控件,再调用PostMessage给目标控件发消息就可以了。
我查了一些资料的,貌似有2中方法,一种是用SPY++一个类名一个类名的找,一种是遍历窗体上的控件的方式;但是资料上面都不是写的很全面。
你能给我推荐一些文章或者有相关信息的网站么。
@失落の熊熊: 用SPY++找到窗体的类名和目标控件的类名,你可以用FindWindowEx一级级的往下找。
写个简单的示例给你吧
IntPtr hWnd = IntPtr.Zero; string[] classlist = { "ClassA","ClassB","ClassC","ClassD"}; foreach (string s in classlist) { hWnd = WindowsAPI.FindWindowEx(hWnd, IntPtr.Zero, s, null); }
classlist中保存的是目标控件所在的层级。
winform里的窗体里的控件都是私有的 如果要访问另一个窗体的控件不能直接打点调用,可以使用属性,先把控件的值赋到属性上 然后new一个窗体对象 对象打点就可以调用这个属性了 间接获取和设置了控件的值,楼主是这个意思么?
属性是一种 还有一种就是设置要访问控件的modifiers属性为pubic 貌似也可以 楼主多试试
跨窗体调控件有很多方法 楼主可以百度下
我感觉你的意思 是不是2个程序都是相互独立的,然后想通过一个程序获得另一个程序的登陆信息,如果是这样的话,你应该用反射技术,并且,想要获得登陆信息的程序有公开的属性和方法供你使用,希望可以帮到你!