Select 另一个应用程序的组合框中的项目

Select an item in combobox of another application

我正在制作 Delphi 应用程序来控制其他应用程序。我需要 select 其他应用程序的 ComboBox 中的一项一项,并获取其文本。我已经使用 FindWindowEx 找到那个 ComboBox。现在我可以找到 ComboBox 但我不知道如何在 ComboBox 中 select 项目。

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;

我希望有人告诉我该怎么做。

如果 child window of TfrmInnerView 只有一个 class 名为 TPanel,下面的代码工作正常。但是,如果 TfrmInnerView 的 child window 有多个同名 class TPanel,下面的代码只能找到第一个 class TPanel。我现在正在寻找找到第二个 class 的方法。如果有任何想法,我将不胜感激。

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?

得到了这段代码