我在此功能中遇到此异常。奇怪的是今天一切正常。我没有改变代码中的任何内容
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!");
}
不知道导致这个问题的原因......
答案 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);
}