谢谢 希望提供BAIDU关键字或者文章链接
如有函数不胜感激

解决方案 »

  1.   

    又 忘了说 vsReport 的
      

  2.   

    而且是 ownerdata 的、、、、、
      

  3.   

    用FindWindow、FindWindowEx等得到控件句柄,通过SendMessage发消息来获取。
    因为各个进程的虚拟地址空间是相互独立的,所以SendMessage传递数据的内存必须在目标窗口所属进程中分配。可以用GetWindowThreadProcessId获得进程ID,OpenProcess、VirtualAllocEx在目标进程中分配内存,用ReadProcessMemory、WriteProcessMemory在进程间复制数据,最后再VirtualFreeEx释放内存。
      

  4.   


    uses
      CommCtrl;
      
    function ListView_GetItemText_Ex(hwndLV: HWND; i, iSubItem: Integer;
      pszText: PChar; cchTextMax: Integer): Integer;
    var
      LVItem: TLVItem;
      ProcessID, ProcessHD, Temp: DWORD;
      MemPoint: Pointer;
    begin
      GetWindowThreadProcessId(hwndLV, ProcessID);  ProcessHD := OpenProcess(
        PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE,
        FALSE, ProcessID);  MemPoint := VirtualAllocEx(ProcessHD, nil, SizeOf(TLVItem) + cchTextMax,
        MEM_COMMIT, PAGE_READWRITE);  LVItem.iSubItem := iSubItem;
      LVItem.cchTextMax := cchTextMax;
      LVItem.pszText := PChar(Integer(MemPoint) + SizeOf(TLVItem));  WriteProcessMemory(ProcessHD, MemPoint, @LVItem, SizeOf(TLVItem), Temp);
      Result := SendMessage(hwndLV, LVM_GETITEMTEXT, i, Integer(MemPoint));  ReadProcessMemory(ProcessHD, Pointer(Integer(MemPoint) + SizeOf(TLVItem)),
        pszText, cchTextMax, Temp);  VirtualFreeEx(ProcessHD, MemPoint, SizeOf(TLVItem) + cchTextMax,
        MEM_DECOMMIT);
      VirtualFreeEx(ProcessHD, MemPoint, 0, MEM_RELEASE);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      TextBuffer: array[0..100] of Char;
      Count: Integer;
      I: Integer;
      H: HWND;
    begin
      H := FindWindow('Progman', 'Program Manager');
      H := GetWindow(H, GW_CHILD);
      H := GetWindow(H, GW_CHILD);  Count := SendMessage(H, LVM_GETITEMCOUNT, 0, 0);
      for I := 0 to Count - 1 do
      begin
        ListView_GetItemText_Ex(H, i, 0, TextBuffer, 100);  //TextBuffer 为桌面内容
        Memo1.Lines.Add(TextBuffer);
      end;end;
      

  5.   

    是 ownerdata 的 6楼的美实验过
    7楼的好像只能读普通的吗?
      

  6.   

    设置了   ownerdata  的 SysListView32类  的 list
      

  7.   

    呵呵 谢谢理解 单位最近上ERP 忙的和狗一样
    私活都没时间做了
    到不是心疼分
    主要是怕有了问题   在开贴找不到高手问
      

  8.   

    才发现 目标控件的 LVS_OWNERDATA 也设定了
    其他的没有设定这个属性的 可以读出