具体看:
http://community.csdn.net/Expert/topic/4950/4950288.xml?temp=.5702936回答后烦请到:
http://community.csdn.net/Expert/topic/4854/4854970.xml?temp=.4366571
给分

解决方案 »

  1.   

    vc.net中的定义如下:
    typedef struct _LVITEM { 
        UINT mask; 
        int iItem; 
        int iSubItem; 
        UINT state; 
        UINT stateMask; 
        LPTSTR pszText; 
        int cchTextMax; 
        int iImage; 
        LPARAM lParam;
        int iIndent;
        int iGroupId;
        UINT cColumns; // tile view columns
        PUINT puColumns;
    } LVITEM, *LPLVITEM; 在c#中定义的时候,加上
    [StructLayout( LayoutKind.Sequential )]标示至于类型转换
    LPTSTR:StringBuilder,使用的时候最好初始化空间
    LPARAM: IntPtr
    PUINT:  IntPtr你可以试试。
      

  2.   

    Ctrl+Alt+Delete弹出"Windows 任务管理器"选择一个应用程序
    我现在能够从我的程序得到选择的是第几个了,可得不到具体的文件名
    原因我也找到了http://www.codeproject.com/threads/int64_memsteal.asp
      

  3.   

    问题的关键在于:Windows uses virtual memory pointers are not valid across programs.解决方法是利用WriteProcessMemory()函数将LVITEM结构插入到目标进程中……To:Knight94(愚翁) 我能不能直接把listview插入到目标进程中……??/
      

  4.   

    你要做什么,类似于任务管理器的软件,如果是的话,.net可不用这么复杂。
      

  5.   

    我是想得到其它程序的listview中的信息
    char ItemBuf[512],*pItem;   在vc中是把*pItem声明成什么?pItem=(char*)VirtualAllocEx(hProcess, NULL, 512, MEM_COMMIT, PAGE_READWRITE);
    这个(char*)又是什么意思??
      

  6.   

    to 这个(char*)又是什么意思??字符串指针,你可以用IntPtr替换。
      

  7.   

    LVITEM lvitem, *plvitem;
    char ItemBuf[512],*pItem;plvitem=(LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE);
    pItem=(char*)VirtualAllocEx(hProcess, NULL, 512, MEM_COMMIT, PAGE_READWRITE); lvitem.cchTextMax=512;
    lvitem.iSubItem=0;  //ProcessName
    lvitem.pszText=pItem;帮我解释一下;谢谢!(我特菜)
    ItemBuf[512]是char数组,*pItem是这个数组的指针?pItem=(char*)VirtualAllocEx(hProcess, NULL, 512, MEM_COMMIT, PAGE_READWRITE);
    为pItem分配内存?那能这样 lvitem.pszText=pItem;附值?
    pszText 是LPTSTR类型:在C#中转换成StringBuilder