Move UriScheme to extras module
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package com.replaymod.extras.urischeme;
|
||||
|
||||
import com.replaymod.core.ReplayMod;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.io.output.StringBuilderWriter;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class WindowsUriScheme extends UriScheme {
|
||||
@Override
|
||||
public void install() throws IOException, InterruptedException {
|
||||
String path = ReplayMod.getContainer().getSource().getAbsolutePath().replace("\\", "\\\\").replace("\"", "\\\"");
|
||||
regAdd("\\replaymod /f /ve /d \"URL:replaymod Protocol\"");
|
||||
regAdd("\\replaymod /f /v \"URL Protocol\" /d \"\"");
|
||||
regAdd("\\replaymod\\shell\\open\\command /f /ve /d \"java -cp \\\"" + path + "\\\" " + UriScheme.class.getName() + " \\\"%1\\\"\"");
|
||||
}
|
||||
|
||||
private void regAdd(String args) throws IOException, InterruptedException {
|
||||
Process process = Runtime.getRuntime().exec("REG ADD HKCU\\Software\\Classes" + args);
|
||||
if (process.waitFor() != 0) {
|
||||
StringBuilderWriter writer = new StringBuilderWriter();
|
||||
IOUtils.copy(process.getInputStream(), writer);
|
||||
IOUtils.copy(process.getErrorStream(), writer);
|
||||
throw new IOException(writer.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user