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

看来您要设置

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 回答
1

也许用 cd 和要运行的命令制作一个批处理文件,然后用 cmd 执行批处理文件。

于 2012-08-29T16:50:53.890 回答