您现在的位置:首页 >> API >> API >> 内容

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

时间:2011/9/3 14:53:52 点击:

  核心提示:function GetTridentCmboBxText( // 获取其他进程中“Internet Explorer_TridentCmboBx”的内容 mHandle: THandle; // C...
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 }

作者:wjhu111 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • 盒子文章(www.2ccc.com) © 2024 版权所有 All Rights Reserved.
  • 沪ICP备05001939号