我正在制作Delphi应用程序以控制其他应用程序。我需要在其他应用程序的ComboBox中一个接一个地选择项目并获取其文本。我已经使用FindWindowEx来找到该ComboBox。现在可以找到ComboBox,但是我不知道如何在ComboBox中选择项目。
var
ParentWindow: HWND;
ChildWindow: HWND;
begin
ParentWindow := FindWindow('TfrmMain', nil);
if ParentWindow <> 0 then
begin
ChildWindow := FindWindowEx(ParentWindow, 0, 'TPageControl', nil);
ChildWindow := FindWindowEx(ChildWindow, 0, 'TTabSheet', nil);
ChildWindow := FindWindowEx(ChildWindow, 0, 'TfrmInnerView', nil);
ChildWindow := FindWindowEx(ChildWindow, 0, 'TPanel', nil);
ChildWindow := FindWindowEx(ChildWindow, 0, 'TComboBox', nil);
end;
end;
我希望有人告诉我该怎么做。
答案 0 :(得分:0)
如果 TfrmInnerView 的子窗口只有一个名为 TPanel 的类,则下面的代码可以正常工作。但是,如果您的 TfrmInnerView 子窗口有多个具有相同名称 TPanel 的类,则下面的代码只能找到第一类 TPanel 。我现在正在寻找找到二等舱的方法。任何想法我都会感激。
SendMessage(ComboHandle, CB_SETCURSEL, NewSelectionIndex, 0);
使用:SendMessage(ChildWindow,CB_SETCURSEL,1,0);
我从[What windows messages are used by Delphi to notice changes in a combo box?