50分请教高手
我用VC6.0写了一个这样的程序A(模拟键盘消息):
1.创建新进程CreateProcess(0,exePath,....)启动一个已有的应用程序B(任一个应用程序)。
2.查找窗口hFWnd=FindWindow(wndclassname,wndname)得到这个应用程序的父窗口句柄。
3.获得指定点的子窗口hChild=ChildWindowFromPoint(hFWnd,point)得到子窗口句柄。
4.激活这个子窗口::SetForegroundWindow(hFWnd);
5. 把m_1中的字符发送到这个程序的子窗口上.
CStirng m_1;
char str[20];
strcpy(str,m_1);
int len=strlen(str);
for(int i=0;i<len;i++)
{
::PostMessage(hChild,WM_CHAR,(WPARAM)(str[i]&0xff),0);
}
现在有这样几个问题:
1.CEDIT 可以发送字符(包括汉字),CComboBox(组合框)可以发送英文和数字,但不能发送汉字.
2.怎样发送字符给Date time Picker 控件.
3.怎样探测应用程序B这个进程的关闭,来实现关闭应用程序B就可以关闭我的程序A
4.ChildWindowFromPoint(hFWnd,point)中的point是一个相对坐标,有没有好的方法可以得到它.我用的是
VC6.0中的spy++通过计算得到的.但有时会有误差(可以是因为要除去窗体的标题栏高度,不大清楚)
5.有没有更好的方法可以控制更多类型的控件.
6.有没有好的资料,或e_mail给我. hdwyz123@163.net
谢谢.