获取其他进程中ListBox和ComboBox的内容
敬业的IT人
互联网
佚名
2008-1-4 16:37:45
(*//标题:获取其他进程中ListBox和ComboBox的内容说明:Window2000 Delphi6调试通过设计:Zswang支持:wjhu111@21cn.com日期:2004-03-25//*)
function GetListBoxText(mHandle: THandle; mStrings: TStrings): Boolean;var vItemCount: Integer; I: Integer; S: string;begin Result := False; if not Assigned(mStrings) then Exit; mStrings.BeginUpdate; try mStrings.Clear; vItemCount := SendMessage(mHandle, LB_GETCOUNT, 0, 0); for I := 0 to vItemCount - 1 do begin SetLength(S, SendMessage(mHandle, LB_GETTEXTLEN, I, 0)); SendMessage(mHandle, LB_GETTEXT, I, Integer(@S[1])); mStrings.Add(S); end; SetLength(S, 0); finally mStrings.EndUpdate; end; Result := True;end; { GetListBoxText }function GetComboBoxText(mHandle: THandle; mStrings: TStrings): Boolean;var vItemCount: Integer; I: Integer; S: string;begin Result := False; if not Assigned(mStrings) then Exit; mStrings.BeginUpdate; try mStrings.Clear; vItemCount := SendMessage(mHandle, CB_GETCOUNT, 0, 0); for I := 0 to vItemCount - 1 do begin SetLength(S, SendMessage(mHandle, CB_GETLBTEXTLEN, I, 0)); SendMessage(mHandle, CB_GETLBTEXT, I, Integer(@S[1])); mStrings.Add(S); end; SetLength(S, 0); finally mStrings.EndUpdate; end; Result := True;end; { GetComboBoxText }//Exampleprocedure TForm1.FormCreate(Sender: TObject);begin RegisterHotKey(Handle, 1, MOD_WIN, VK_F2); RegisterHotKey(Handle, 2, MOD_WIN, VK_F3);end;
procedure TForm1.FormDestroy(Sender: TObject);begin UnRegisterHotKey(Handle, 1); UnRegisterHotKey(Handle, 2);end;
procedure TForm1.WMHOTKEY(var Msg: TWMHOTKEY);begin case Msg.HotKey of 1: GetListBoxText( WindowFromPoint(Point(Mouse.CursorPos.X, Mouse.CursorPos.Y)), MemoText.Lines); 2: GetComboBoxText( WindowFromPoint(Point(Mouse.CursorPos.X, Mouse.CursorPos.Y)), MemoText.Lines); end;end;
- 最新文章
- 我写的采用csv格式将数据转换为excel的函数,带有分栏功..[01-04]
- 事件的危机——调试手记之一[01-04]
- 窗体的建立时机及缓冲的思想在ini文件中的应用.txt[01-04]
- 通用查询组件设计(续四)[01-04]
- 如何得到硬盘物理序号[01-04]
- 在Delphi中捕获控制台程序的输出[01-04]
- 相关文章
