【发布时间】:2012-07-10 16:56:44
【问题描述】:
我有一个 Windows 7(x86) 和我的控制台应用程序 (C#)。 在我的应用程序中,我需要运行一个新进程。 应用程序包括:
Process.Start(filename);
当应用程序运行时,它会创建一个新进程,但他会在几秒钟后销毁,甚至没有被初始化。 在调试中我看到了这个信息:
"proc.MainModule" threw exception "System.ComponentModel.Win32Exception"
NativeErrorCode = 299
ExitCode = -3
如果我通过 Windows 运行所需的应用程序 - 它会运行。 请问,谁能帮帮我?
当它以管理员身份运行时,它会出现相同的错误。
关于ReadProcessMemory or WriteProcessMemory didn't complete successfully。在Process.Start(); 之后我什么都不做
这个错误我可以在var proc = Process.Start(filename);之后的调试中看到。
AOgame.exe - 是我的可执行应用程序。这是一个游戏Allods的exe文件。 当我尝试执行其他应用程序时,它们开始良好。我认为这是 AOgame.exe 的问题。但我不知道如何消除错误。
在 AOgame.exe 的属性中没有参数。
我认为这是反作弊保护。但是,如果我尝试从 cmd-console 执行它,它将起作用。
是的!我找到了解决方案!首先 - 创建一个批处理文件,它将执行 AOgame.exe 然后 - 从我的应用程序执行批处理文件 这是一个奇怪的解决方案,但它有效:D
【问题讨论】:
-
你能给我们看一些代码吗?错误代码 299 表示对 ReadProcessMemory 或 WriteProcessMemory 的调用未成功完成,因此了解您尝试对新进程执行的操作似乎非常重要。
-
或许您可以告诉我们您要启动什么流程?
-
您是否知道您尝试启动的那些可执行文件是 64 位还是 32 位?另外,您能否告诉我们您是否可以自己执行那些“文件名” [in Process.Start(filename)] 并得到任何错误?
-
我有 32 位系统。如果我使用 explorer.exe 运行可执行文件,它将起作用。但是当我尝试通过我的程序执行时它失败了。所以我的系统是 32 位的,所有的可执行文件也是 32 位的。或不?代码只是: Process.Start(filename);该过程会创建几秒钟或几毫秒然后失败
-
您能否检查一下您的控制台应用程序(C#)是否以管理员身份运行并且仍然抛出相同的错误?
标签: c# process process.start