• 获取其他进程中StatusBar的文本


    (*//
    标题:获取其他进程中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;

    http://blog.csdn.net/zswang/article/details/297038

  • 相关阅读:
    Oracle数据导出到MySql
    ORA04031 shared_pool 不能分配足够内存或磁盘碎片
    IDEA那些好用的插件
    MySQL基础篇增删改查
    SpringBoot项目部署在阿里云
    三、Mybatis相应API
    chrome的书签备份
    redis踩坑
    四、Mybatis的Dao层实现
    MySQL基础篇函数
  • 原文地址:https://www.cnblogs.com/findumars/p/6348016.html
Copyright © 2020-2023  润新知