关于FindWindowEx

zoubinbin 2006-01-18 04:18:59
我做了个小程序,一个窗体,窗体的Caption是"Form1"窗体上只有一个按钮(TButton),按钮的Caption是"确定",按钮的单击事件时ShowMessage(“OK”);
我的程序如下
HWND hwnd,hOk; // Handle

hwnd=FindWindow("TForm1","Form1");

if(hwnd)
{
hOk = FindWindowEx(hwnd,0,"Button","确定");
if(hOk)
SendMessage(hOk,BM_CLICK,0,0);
}
现在的问题是程序不执行程序不执行SendMessage,即就是找不到确定这个按钮,大家指点指点
...全文
248 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlu3389 2006-01-19
  • 打赏
  • 举报
回复
void __fastcall TForm1::FormClick(TObject *Sender)
{
HWND hwnd,hOk; // Handle

hwnd=FindWindow("TForm1","Form1");

if(hwnd)
{
hOk = FindWindowEx(hwnd,0,"TButton",0);
if(hOk)
{
SendMessage(hOk,BM_CLICK,0,0);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage("OK");
}
//--------------------------------------------------------------------------
yefu2000 2006-01-19
  • 打赏
  • 举报
回复
信 誉 值: 55 ~~~
海嵌 2006-01-19
  • 打赏
  • 举报
回复
程序运行到ShowMessage时就中断不会向下执行!

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Interval=200;
Timer1->Enabled = true;
ShowMessage("OK");
}

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Enabled = false;
HWND hwnd,hOk;
hwnd = ::FindWindow(NULL,"Project1");
if(hwnd)
{
hOk = ::FindWindowEx(hwnd,NULL,"TButton","OK");
if(hOk !=NULL)
SendMessage(hOk,BM_CLICK,0,0);
}
alloutoflove 2006-01-19
  • 打赏
  • 举报
回复
zoubinbin(刚刚) ( ) 信誉:55 2006-1-18 19:00:31 得分: 0



那样我试过也不行的,我还做过循环100次不停的执行该语句还是不行



至少我测试能执行到SendMessage.
cczlp 2006-01-19
  • 打赏
  • 举报
回复
晕, 原来又是这个ID~
zoubinbin 2006-01-18
  • 打赏
  • 举报
回复
那样我试过也不行的,我还做过循环100次不停的执行该语句还是不行
cczlp 2006-01-18
  • 打赏
  • 举报
回复
hOk = FindWindowEx(hwnd,0,"TButton","确定");
alloutoflove 2006-01-18
  • 打赏
  • 举报
回复
hOk = FindWindowEx(hwnd,0,"Button","确定");
改为
hOk = FindWindowEx( hwnd, 0, "TButton", "确定" );

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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