1

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

4

4 に答える 4

0

おそらく、プロセスは作業ディレクトリにいくつかのファイルを必要としますか?...

作業ディレクトリを設定してみてください。

ProcessStartInfo processInfo = new ProcessStartInfo("foo.exe");
processInfo.WorkingDirectory = @"C:\bar";

Process.Start(processInfo);
于 2012-07-10T17:56:13.763 に答える
0

次のように、UseShellExecute を false に設定して ProcessStartInfo インスタンスを使用することをお勧めします。

ProcessStartInfo processInfo = new ProcessStartInfo("AOGame.exe");
processInfo.UseShellExecute = false;

Process.Start(processInfo);

これにより、シェル/ヘルパー ルーチンに依存するのではなく、実行可能ファイルで指定されたプロセス名によって起動が直接処理されるようになります。AOGame.exe が内部で何を行っているかについて、さらに詳細を提供できる場合は、それが役立つ可能性があります。

于 2012-07-10T18:11:20.403 に答える
0

Windows のスタートメニューに有効なリンクがある場合は、これを試すことができます。

Process.Start("explorer.exe", @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\foo\bar.lnk");

...私はあきらめません:-D

于 2012-07-10T18:11:36.820 に答える