回 帖 发 新 帖 刷新版面

主题:这个代码有什么问题呀,

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   HWND hwnd;
   hwnd=FindWindowEx(0,0,0,"QQ用户登录");
   if (hwnd)
   {
  TForm *from=(TForm *)FindControl(hwnd);
  from->Close();
   }

}怎么老是运行错误呢

回复列表 (共4个回复)

沙发

是什么错误,你要说清楚!
是不是没有任何结果,我试过了,没有任何反应,是吗?

板凳

代码出在:TForm *from=(TForm *)FindControl(hwnd)上。
FindControl()所找到的控件不包括TForm,所以from永远为Null。因而,from->Close()肯定出错。

楼主是想程序关闭名为“QQ用户登录”的窗口,可用以下代码实现:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWND hw;
char ss[300];
AnsiString ass,ass1;
ass="计算器";

hw=GetWindow(Handle,GW_HWNDFIRST);
while(hw!=0)
{
 if(GetWindowText(hw,ss,255)>0)
 {
  ass1=ss;
  if(ass==ass1)
   SendMessage(hw,WM_CLOSE,0,0);
  }
 hw=GetWindow(hw,GW_HWNDNEXT);
 }
}

3 楼

匆忙回贴时出了个错。我在自己的机子上用“计算器”做的调试。正确的代码是:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWND hw;
char ss[300];
AnsiString ass,ass1;
ass="QQ用户登录";

hw=GetWindow(Handle,GW_HWNDFIRST);
while(hw!=0)
{
 if(GetWindowText(hw,ss,255)>0)
 {
  ass1=ss;
  if(ass==ass1)
   SendMessage(hw,WM_CLOSE,0,0);
  }
 hw=GetWindow(hw,GW_HWNDNEXT);
 }
}

4 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.会打字.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ909065437

我来回复

您尚未登录,请登录后再回复。点此登录或注册