Question

My question is pretty simple, I would like to launch a .exe in its own directory but with elevation rights/privileges. I know that this question as been raised before but I didn't found the right way for fixing my problem.


Indeed, I first tried this :

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

I got the following error:

CreateProcess error=740, The requested operation requires elevation

Then I tried this:

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

And it runs but not in its own directory. How can I fix this please?

Was it helpful?

Solution

I wonder if this will work:

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();

OTHER TIPS

I don't think it is possible to elevate privileges of a forked process. You should start the new process with the account that has the rights you need

Perhaps make a batch file with a cd and the command you want to run, then execute the batch file with cmd.

It appears you want to set

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

which

Sets this process builder's working directory


Otherwise, it appears that for this to work you need to be Running as an Administrator.

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top