5

私の質問は非常に単純です。独自のディレクトリで.exeを起動したいのですが、昇格権/特権を使用します。 この質問が以前に提起されたことは知っていますが、問題を解決する正しい方法が見つかりませんでした。


実際、私は最初にこれを試しました:

String workingDir = "C:\\TEST\\";
String cmd = workingDir + "game.exe";
Runtime.getRuntime().exec(cmd,null,new File(workingDir));

次のエラーが発生しました。

CreateProcess error=740, The requested operation requires elevation

それから私はこれを試しました:

ProcessBuilder builder = new ProcessBuilder(
    new String[] {"cmd.exe", "/C","C:\\TEST\\game.exe"});
Process newProcess = builder.start();

そして、それは実行されますが、独自のディレクトリでは実行されません。どうすればこれを修正できますか?

4

4 に答える 4

1

おそらく、cdと実行したいコマンドを使用してバッチファイルを作成してから、cmdを使用してバッチファイルを実行します。

于 2012-08-29T16:50:53.890 に答える
1

設定したいようです

builder.directory(new File("C:\\TEST"));

どれの

このプロセス ビルダーの作業ディレクトリを設定します


それ以外の場合、これが機能するには、管理者として実行する必要があるようです。

https://www.google.co.uk/search?q=CreateProcess+error%3D740%2C+The+requested+operation+requires+elevation

于 2012-08-29T16:45:46.690 に答える
1

フォークされたプロセスの特権を昇格させることはできないと思います。必要な権限を持つアカウントで新しいプロセスを開始する必要があります

于 2012-08-29T16:48:53.547 に答える
1

これが機能するかどうか疑問に思います:

String workingDir = "C:\\TEST\\";
ProcessBuilder builder = new ProcessBuilder(
    new String[] {"cmd.exe", "/C",workingDir+"game.exe"}
  );
builder.directory(new File(workingDir));
Process newProcess = builder.start();
于 2012-08-29T16:49:22.943 に答える