获取其他进程中“Internet Explorer_TridentCmboBx”的内容

本文介绍了一个用于获取Internet Explorer中Trident ComboBox控件内容的函数实现。该函数通过读取远程进程内存的方式,实现了跨进程获取ComboBox的所有项文本,并将这些文本添加到输出列表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function GetTridentCmboBxText( // 获取其他进程中“Internet Explorer_TridentCmboBx”的内容
  mHandle: THandle; // ComboBox句柄
  mStrings: TStrings // 输出列表
): Boolean; // 返回获取数据是否成功
var
  I: Integer;
  vItemCount: Integer;
  vAddress: array[0..4] of Char;
  vProcessID: THandle;
  vProcess: THandle;
  vNumberOfBytesRead: DWORD;
  W: WideString;
begin
//设计 Zswang 2006-09-12 wjhu111#21cn.com 尊重作者,转贴请注明出处
  Result := False;
  if not Assigned(mStrings) then Exit;
  GetWindowThreadProcessId(mHandle, vProcessID);
  SetLength(W, 256);
  mStrings.BeginUpdate;
  vProcess := OpenProcess(PROCESS_VM_READ, False, vProcessID);
  try
    mStrings.Clear;
    vItemCount := SendMessage(mHandle, CB_GETCOUNT, 0, 0);
    for I := 0 to vItemCount - 1 do
    begin
      FillChar(vAddress, SizeOf(vAddress), 0);
      SendMessage(mHandle, CB_GETLBTEXT, I, Integer(@vAddress));
      ReadProcessMemory(vProcess, Pointer(PInteger(@vAddress)^), @W[1],
        512, vNumberOfBytesRead);
      mStrings.Add(W);
    end;
    SetLength(W, 0);
  finally
    mStrings.EndUpdate;
  end;
  Result := True;
end; { GetTridentCmboBxText }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值