主题:这个代码有什么问题呀,
scottmee
[专家分:0] 发布于 2007-10-11 09:48:00
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWND hwnd;
hwnd=FindWindowEx(0,0,0,"QQ用户登录");
if (hwnd)
{
TForm *from=(TForm *)FindControl(hwnd);
from->Close();
}
}怎么老是运行错误呢
回复列表 (共4个回复)
沙发
wjt132 [专家分:50] 发布于 2007-10-31 18:24:00
是什么错误,你要说清楚!
是不是没有任何结果,我试过了,没有任何反应,是吗?
板凳
gebowangzm [专家分:480] 发布于 2007-11-09 18:01:00
代码出在: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 楼
gebowangzm [专家分:480] 发布于 2007-11-09 18:06:00
匆忙回贴时出了个错。我在自己的机子上用“计算器”做的调试。正确的代码是:
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 楼
moke5 [专家分:30] 发布于 2010-09-01 14:44:00
你好.我是全职网赚工作者.
如果你有时间有电脑.会打字.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ909065437
我来回复