50分请教高手

wenyuzhang168 2003-10-18 11:07:12

我用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
谢谢.


...全文
42 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenyuzhang168 2003-10-20
  • 打赏
  • 举报
回复
请问WaitForSingleObject具体怎么用啊。
我是需要程序A中的一个线程threadA,扫描数据库,把数据写入程序B中。
当程序B被关闭时,程序A也同时被关闭。
我用了,没有成功。
谢谢。
ChinaSea3003 2003-10-19
  • 打赏
  • 举报
回复
你非要从点来取得子窗口么?可以用窗口的标题来取得窗口,这样你也不用spy++了,
你可以设置个定时器,比如说每隔5秒钟查看一下另一个窗口是否已经关闭
maoxianwang 2003-10-19
  • 打赏
  • 举报
回复
我记着有个消息是WM_COPYDATA,, 应该好用
flyelf 2003-10-19
  • 打赏
  • 举报
回复
发送WM_SETTEXT应该没有汉字的限制,也可以给DATE TIME PICKER发送字符
由于你已经得到了B的HANDLE,因此可以调用WaitForSingleObject(hB, INFINTE)来探测b关闭的事件
proe 2003-10-19
  • 打赏
  • 举报
回复
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);

WaitlForSingleObject(pProcessInformation->hProcess,INFINITE);
wenyuzhang168 2003-10-19
  • 打赏
  • 举报
回复
只是标题是不行的。不必须有类名。
这两个参数我都是用spy++得到的。
用标题得到窗口是不是就用FindWindow(wndclassname,wndname)来得到句柄。

每隔5秒钟查很窗口太慢了。
时间太小的话,程序的效率又太低了。

Skt32 2003-10-18
  • 打赏
  • 举报
回复
WM_IME_CHAR

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧