上面 jiangsheng(蒋晟.MSMVP2004Jan)兄提到的那篇文章以前就看过了,它里面提到的Caption and Class Name、Windows Hierarchy Order就是我上面所说的“似乎不太保险”的“其他方法”。至于下面的:GetWindowsFormsID(wnd As Long)我在vb中没有试成功过。。 或者举一个简单例子吧。。程序a.exe: Private Sub Command1_Click() MsgBox "1" End Sub Private Sub Command2_Click() MsgBox "2" End SubPrivate Sub Form_Load() Command1.Caption = "" Command2.Caption = "" End Sub怎么写一个b.exe,能简单、准确地区分出a.exe中的command1和command2(忽略判断按钮坐标的方法)。 上面的Caption and Class Name、Windows Hierarchy Order可以应付一般的情况,但如果a.exe的控件不是一成不变的甚至是动态的,就不行了至于WM_GETCONTROLNAME,没试成功。。
to楼上 好象取其他程序里面的child control name不到哦?spy++看不到,只有 id,caption,classname 不过,可以先找到父窗口句柄,再用FindWindowEx 试试
======================================
“区分其他程序窗体里同级、同标题、同类的控件”。。
或者举一个简单例子吧。。程序a.exe:
Private Sub Command1_Click()
MsgBox "1"
End Sub
Private Sub Command2_Click()
MsgBox "2"
End SubPrivate Sub Form_Load()
Command1.Caption = ""
Command2.Caption = ""
End Sub怎么写一个b.exe,能简单、准确地区分出a.exe中的command1和command2(忽略判断按钮坐标的方法)。
上面的Caption and Class Name、Windows Hierarchy Order可以应付一般的情况,但如果a.exe的控件不是一成不变的甚至是动态的,就不行了至于WM_GETCONTROLNAME,没试成功。。
好象取其他程序里面的child control name不到哦?spy++看不到,只有 id,caption,classname
不过,可以先找到父窗口句柄,再用FindWindowEx 试试
btn2&=FindWindowEx(btn1,0,"button2",vbnullstring)'第二个
表达不好不要见笑
btn2&=FindWindowEx(btn1,0,"button2",vbnullstring)'第二个
================================
这就是上面提到的Windows Hierarchy Order方法,可以应付一般大多数情况,但不保险。。
不过在内存中是有的,但具体的位置不好判断。应该是在.DATA的节表里。
idd的函数。
要获取控件的名字,只能分析内存,有了上面2个函数其他的就没必要了,呵呵,除非取LABEL一类的没句柄的:)