HWND hnd;
  hnd=FindWindowEx(0, 0, "ExploreWClass", NULL);  
  hnd=FindWindowEx(hnd, 0, "SHELLDLL_DefView", NULL);  
  hnd=FindWindowEx(hnd, 0, "Internet Explorer_Server", NULL);  
  hnd=FindWindowEx(hnd, 0, "ATL Shell Embedding", NULL);  
  hnd=FindWindowEx(hnd, 0, "SysListView32", NULL);    char *pBuf;
  int len=100;
  int n = 3;
  pBuf=new char[len];
  ListView_GetItemText(hnd,n,0,pBuf,len);
  delete[] pBuf;我的意识是取得windows资源管理器的第n个item的label,可是出错了.
肯定是 ListView_GetItemText用的不对.哪位朋友帮我试试,错在那里.

解决方案 »

  1.   

    先搞清楚是98还是NT!
    能通过消息传出的就不需要访问其他进程的地址空间。
    例如:ListView_GetSelectionMark();就发了LVM_GETSELECTIONMARK消息。
    年轻人,你是高手吗?
      

  2.   

    WPARAM、LPARAM是什么?
    一个32bit的值。
    如果LPARAM是是个指针,它指向其他进程的地址空间,
    你能能访问吗?年轻人。
      

  3.   

    to:SuperProgMan(编程者)
    ListView_GetItemText 相应的消息是LVM_GETITEMTEXT
    请试试:
      HWND hnd;
      hnd=FindWindowEx(0, 0, "ExploreWClass", NULL);  
      hnd=FindWindowEx(hnd, 0, "SHELLDLL_DefView", NULL);  
      hnd=FindWindowEx(hnd, 0, "Internet Explorer_Server", NULL);  
      hnd=FindWindowEx(hnd, 0, "ATL Shell Embedding", NULL);  
      hnd=FindWindowEx(hnd, 0, "SysListView32", NULL);    int a = ListView_GetItemCount(hnd);    OK
      

  4.   

    ListView_GetItem的确是无法跨进程使用的,除了为了同Windows3.1保持兼容,使得GetWidowText可以跨进程使用外,大部分在WIN32中新的这类API都是无法跨进程使用的。
      

  5.   

    各位在回答问题之前能否试一下,不能凭空想想.
    按照以上方法取得句柄后,以下功能都能实现:
      int a = ListView_GetItemCount(hnd);   
    //  LRESULT  a = SendMessage(hnd, LVM_GETITEMCOUNT, 0, 0);
      UINT b = ListView_GetSelectedCount(hnd); 
    //  LRESULT  b = SendMessage(hnd, LVM_GETSELECTEDCOUNT, 0, 0);
      UINT c = ListView_GetItemState(hnd,3,LVIS_CUT);    
    //  LRESULT  c = SendMessage(hnd, LVM_GETITEMSTATE, 3, LVIS_CUT);
      

  6.   

    To sw0324(sw0324):
       年轻人你真不开窍!!!!!!!!!
       LVM_GETITEMTEXT 
       lParam 是一个LVITEM指针,指向资源管理器进程的地址空间。
      

  7.   

    To sswz(@_@) :
       给分吧!
      

  8.   

    你的问题其实就是一个跨进程操作的实现
    在Jeffrey 所著的《Windows 高级编程指南》中第18章有一个打开进程边界的例子,是讲如何控制桌面图标位置的,建议你看看(不过是用C写的)。简单的讲,就是在你的程序(Client端)中对Explorer挂一个MSG钩,在钩的Proc中建立一个隐藏窗口(Server端),由于钩的DLL是注入到Explorer进程中的,所以实际上这个Server是由Explorer的活动的线程建立,位于Explorer的进程空间内,可以操纵Explorer的活动。这样通过Client与Server通信,再由Server实现对Explorer的操作。
    再不明白,发MAIL给我,我写个VC的源代码给U
      

  9.   

    to yeqiufeng(叶秋枫) :能不能给我发一个VB源代码啊?
    [email protected]