我用C#调用CreateToolhelp32Snapshot方法,为什么返回值是-1,源代码如下:
Public Class Program
{
private const int TH32CS_SNAPPROCESS = 0x00000002;
[DllImport(coredll.dll)]
public static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processid);IntPtr iHandle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if ((int)iHandle>0)
{//if block;}
else{Throw new Exception("Can not creat snapshot");}
}

解决方案 »

  1.   

    难道没有人解决的了吗?为什么这个方法会调用失败,返回INVALID_HANDLE_VALUE?但也不是每次都调用失败。快照还有特殊要求?
      

  2.   

    coredll.dll?
    CreateToolhelp32Snapshot不是Kernel32.dll导出的么?另外调用失败是不是没有权限的问题?
    用GetLastError看下.
      

  3.   

    采用coredll.dll是因为我是在WinCE的系统写的程序。我试一下提高权限。本人迄今在CSDN求助,你是第一个回复的,不容易啊
      

  4.   

    突然发现在Wince下我找不到提升进程权限的方法
    OpenProcessToken不支持compact framework