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?
得到了这段代码
我正在制作 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?