获取其他进程中StatusBar的文本
2005-02-22 10:49
239 查看
[code](*// 标题:获取其他进程中StatusBar的文本 说明:Window2000+Delphi6调试通过 设计:Zswang 支持:wjhu111@21cn.com 日期:2005-02-22 //*) uses CommCtrl; function GetStatusBarText(mHandle: THandle): string; var vBuffer: array[0..$1000] of Char; vSize: Integer; I: Integer; vCount: Integer; vProcessId: DWORD; vProcess: THandle; vPointer: Pointer; vNumberOfBytesRead: Cardinal; begin Result := ''; vCount := SendMessage(mHandle, SB_GETPARTS, 0, 0); if vCount <= 0 then Exit; GetWindowThreadProcessId(mHandle, @vProcessId); vProcess := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE, False, vProcessId); vPointer := VirtualAllocEx(vProcess, nil, $1000, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE); try for I := 0 to vCount - 1 do begin vSize := SendMessage(mHandle, SB_GETTEXT, I, 0) + 1; SendMessage(mHandle, SB_GETTEXT, I, Integer(vPointer)); ReadProcessMemory(vProcess, vPointer, @vBuffer[0], vSize, vNumberOfBytesRead); Result := Result + #9 + vBuffer; end; Delete(Result, 1, 1); finally VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE); CloseHandle(vProcess); end; end; { GetStatusBarText } //Example procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotKey(Handle, 1, MOD_WIN, VK_F2); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey(Handle, 1); end; procedure TForm1.WMHOTKEY(var Msg: TWMHOTKEY); begin case Msg.HotKey of 1: Edit1.Text := GetStatusBarText( WindowFromPoint(Point(Mouse.CursorPos.X, Mouse.CursorPos.Y))); end; end;
[/code]
相关文章推荐
- 获取其他进程中StatusBar的文本
- 获取其他进程中ListView的文本
- 获取其他进程中ListView的文本
- 怎么来获取其他进程中DBGrid的文本内容啊
- FileStream写文本文档时候显示其他进程正在访问的问题
- 【VC版】如何获取其他进程中ListView控件中的内容
- SAP ABAP编程 获取物料长文本-其他长文本同理
- 【Demo 0030】获取其他进程窗体信息(防SPY++)
- 在shell中获取其他进程的pid
- 获取其他进程的状态
- 获取其他进程加载模块的详细信息
- DELPHI 跨进程获取其他程序的DBGrid内容
- 如何在DLL中获得其他进程窗口中的编辑框文本内容
- 需求:获取其他程序中的ListView控件的文本内容
- VC获取其他进程ListCtrl内容
- 获取其他进程中ListBox和ComboBox的内容
- 获取其他进程中ListBox和ComboBox的内容
- Android获取其他进程加载的模块基地址
- 获取其他进程中ListBox和ComboBox的内容
- 获取任意进程的文本内容值