如和返回一个系统窗口的参数(200分)

  • 主题发起人 主题发起人 红色闪电
  • 开始时间 开始时间

红色闪电

Unregistered / Unconfirmed
GUEST, unregistred user!
如和返回一个系统窗口的参数
我知道这个窗口的名字
这个窗口里有一个EDIT1编辑条有几个按钮
我想问的事情比如我想按第三个按钮
怎么让程序去按它的或者把焦点转移到那个第三个按钮呢? 最好我能知道这个可能未知的窗口
有多少个对象对象的类型是什么
这个系统窗口可能是别人的程序窗口
 
得到这个窗口中Edit的句柄再处理
 
问题是怎么得到呢?
 
我也想知道得到这个窗口中Edit的句柄
 
用下面的方面枚举窗体中的所有子窗体,然后用mouse_event模拟鼠标点击:
因为Edit没有caption,所以你可能要先试一下需要的是哪个Edit.给分?$_*
不清楚你要做什么,如果要找主窗体可以用EnumWindowsProc和EnumWindows。
function EnumChlidProc(AHWnd: HWnd;
LPARAM: lParam): boolean; stdcall;
var
WndCaption: array[0..254] of char;
WndClassName: array[0..254] of char;
begin
GetWindowText(AHWnd, @WndCaption, 254);
GetClassName(AHWnd, @WndClassName, 254);
with Form1.Memo1.Lines do
begin
Add(StrPas(WndCaption));
Add(StrPas(WndClassName));
add('HWND:'+inttostr(ahwnd)); //获得句柄
Add('-------');
end;
Result := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
H:THandle;
begin
H:=FindWindow('classname','caption');//替换此句为你要的.
EnumChildWindows(H,@EnumChlidProc, 0); //call back function 调用
end;
 
wheel! 我要操丛那个窗口的按牛怎么办?
比如说我要按那里的 退出按钮? 或者在
编辑里写几个字母 再或者把焦点转移到某个对象上
分是您的啦!再帮我一次好么
 
在EnumChlidProc中判断窗口:
if (WndCaption='xxxx') or (WndClassName='xxx') then
//点击:SendMessage(AHWnd,BM_CLICK,0,0);
//设置内容:SetWindowText(AHWnd,'xxxx');
//设置焦点并激活到前台 SetForegroundWindow(AHWnd);
 
wheel 嘻嘻 您千万别说我得寸进尺 因为知识就是前仆后继的
我能知道那里有WIN32MS WIN32程序员参考大全(五)----消息、结构和宏
类似的
网上的都不全 3.3M就不行 就到100多页就 没有了
我想知道那里有全的!
或者别的样的的也好呀1要全的 谢谢啦
 
不知道,没看过这本书。
 
多人接受答案了。
 
后退
顶部