在另一个应用程序的组合框中选择一个项目

问题描述 投票:0回答:1

我正在制作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;

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

delphi-xe2
1个回答
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?

获得了此代码
© www.soinside.com 2019 - 2024. All rights reserved.