如何获取别的进程的TreeView控件的内容extern "C" long EXPORT __stdcall GetRootItem (long Thwnd,char *filestr) {
 TVITEM  tvi,  *_tvi;
 char  *_item; 
 char item[256];
 unsigned  long  pid;  
 HANDLE  process;
 long ret=(long)((CTreeCtrl*)CWnd::FromHandle((HWND)Thwnd))->GetRootItem();
 if (ret) { 
  /*
  GetWindowThreadProcessId
  说明 
  获取与指定窗口关联在一起的一个进程和线程标识符 
  返回值 
  Long,拥有窗口的线程的标识符 
  参数表 
  参数 类型及说明 
  lpdwProcessId Long,指定一个变量,用于装载拥有那个窗口的一个进程的标识符 
  hwnd Long,指定窗口句柄 
  */
  GetWindowThreadProcessId((HWND)Thwnd,  &pid); 
  //用全部权限打开进程
  process=OpenProcess(PROCESS_VM_OPERATION  |PROCESS_VM_READ  | PROCESS_VM_WRITE  |PROCESS_QUERY_INFORMATION,  FALSE,  pid);  
  //给_lvi,_item分配进程级的虚拟内存空间
  _tvi=(TVITEM*)VirtualAllocEx(process,  NULL,  sizeof(TVITEM), MEM_COMMIT,  PAGE_READWRITE);  
  _item=(char*)VirtualAllocEx(process,  NULL,  256,  MEM_COMMIT,  PAGE_READWRITE);    
  tvi.cchTextMax=256;
  tvi.hItem=(HTREEITEM)ret;
  tvi.mask=TVIF_TEXT;
  tvi.pszText=_item;
  //把_lvi写入进程
  WriteProcessMemory(process,  _tvi,  &tvi,  sizeof(TVITEM),  NULL);  
  //发消息得到数据
  ::SendMessage((HWND)Thwnd,  TVM_GETITEM, 0 ,  (LPARAM)_tvi); 
  //从进程中读出数据
  ReadProcessMemory(process,  _item,  item,  256,  NULL);
  //copy data
  memcpy(filestr,item,256);
  //free memory
  VirtualFreeEx(process,  _tvi,  0,  MEM_RELEASE);  
  VirtualFreeEx(process,  _item,  0,  MEM_RELEASE);
 }
 return ret;
}extern "C" long EXPORT __stdcall GetNextItem (HWND Thwnd,long next,char *filestr) {
 TVITEM  tvi,  *_tvi;
 char item[256]; 
 char  *_item; 
 unsigned  long  pid;  
 HANDLE  process;
 long ret=(long)((CTreeCtrl*)CWnd::FromHandle(Thwnd))->GetNextSiblingItem((HTREEITEM)next);
 if (ret) {
  GetWindowThreadProcessId(Thwnd,  &pid);  
  process=OpenProcess(PROCESS_VM_OPERATION  |PROCESS_VM_READ  | PROCESS_VM_WRITE  |PROCESS_QUERY_INFORMATION,  FALSE,  pid);  
  _tvi=(TVITEM*)VirtualAllocEx(process,  NULL,  sizeof(TVITEM), MEM_COMMIT,& 
  
 
见http://www.zahui.com/html/1/42044.htm哪位大侠帮翻译成VB?谢谢先!!!!