System.ComponentModel.Win32Exception:“Acces被拒绝”

时间:2018-02-08 22:50:07

标签: c# exception

我在此功能中遇到此异常。奇怪的是今天一切正常。我没有改变代码中的任何内容

static IntPtr GetModuleAddress(string name)
{
    Process[] p = Process.GetProcessesByName("csgo");

    foreach (ProcessModule mod in p[0].Modules)
    {
        if (mod.ModuleName == name)
        {
            return mod.BaseAddress;
        }
    }

    throw new Exception("Module not found!");              
}

不知道导致这个问题的原因......

1 个答案:

答案 0 :(得分:0)

有几个原因可能会发生,可能最有可能是

  • 以错误的权限级别运行,尝试以更高的级别运行

  • (这是推测性的)但它可能是一个比特问题,32位/ 64位

此外,如果它抛出一个Win32Exception,它有一个名为NativeErrorCode的属性,它将为您提供实际的Win32Api ErrorCode和其他有用的信息

try
{
   // your code
}
catch(Win32Exception w) 
{
   Console.WriteLine(w.Message);
   Console.WriteLine(w.ErrorCode.ToString());
   Console.WriteLine(w.NativeErrorCode.ToString());
   Console.WriteLine(w.StackTrace);
   Console.WriteLine(w.Source);
   Exception e= w.GetBaseException();
   Console.WriteLine(e.Message);
}