Add convenience methods for managing HidGuardian whitelist key

Currently commented out to the public. Using for my local copy
This commit is contained in:
Travis Nickles 2017-11-06 20:01:26 -06:00
parent 30131ded30
commit 9d6aa5413e
2 changed files with 24 additions and 2 deletions

View File

@ -2,11 +2,13 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using Process = System.Diagnostics.Process;
using System.Media; using System.Media;
using System.Threading.Tasks; using System.Threading.Tasks;
using static DS4Windows.Global; using static DS4Windows.Global;
using System.Threading; using System.Threading;
using Registry = Microsoft.Win32.Registry;
namespace DS4Windows namespace DS4Windows
{ {
@ -76,6 +78,24 @@ namespace DS4Windows
} }
} }
public void createHidGuardKey()
{
try
{
Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist\" + Process.GetCurrentProcess().Id);
}
catch { }
}
public void removeHidGuardKey()
{
try
{
Registry.LocalMachine.DeleteSubKey(@"SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist\" + Process.GetCurrentProcess().Id);
}
catch { }
}
public bool Start(object tempui, bool showlog = true) public bool Start(object tempui, bool showlog = true)
{ {
if (x360Bus.Open() && x360Bus.Start()) if (x360Bus.Open() && x360Bus.Start())
@ -376,7 +396,7 @@ namespace DS4Windows
string programPath = LaunchProgram[ind]; string programPath = LaunchProgram[ind];
if (programPath != string.Empty) if (programPath != string.Empty)
{ {
System.Diagnostics.Process[] localAll = System.Diagnostics.Process.GetProcesses(); Process[] localAll = Process.GetProcesses();
bool procFound = false; bool procFound = false;
for (int procInd = 0, procsLen = localAll.Length; !procFound && procInd < procsLen; procInd++) for (int procInd = 0, procsLen = localAll.Length; !procFound && procInd < procsLen; procInd++)
{ {
@ -397,7 +417,7 @@ namespace DS4Windows
{ {
Task processTask = new Task(() => Task processTask = new Task(() =>
{ {
System.Diagnostics.Process tempProcess = new System.Diagnostics.Process(); Process tempProcess = new Process();
tempProcess.StartInfo.FileName = programPath; tempProcess.StartInfo.FileName = programPath;
tempProcess.StartInfo.WorkingDirectory = new FileInfo(programPath).Directory.ToString(); tempProcess.StartInfo.WorkingDirectory = new FileInfo(programPath).Directory.ToString();
//tempProcess.StartInfo.UseShellExecute = false; //tempProcess.StartInfo.UseShellExecute = false;

View File

@ -104,10 +104,12 @@ namespace DS4Windows
//if (mutex.WaitOne(TimeSpan.Zero, true)) //if (mutex.WaitOne(TimeSpan.Zero, true))
//{ //{
createControlService(); createControlService();
//rootHub.createHidGuardKey();
//rootHub = new ControlService(); //rootHub = new ControlService();
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DS4Form(args)); Application.Run(new DS4Form(args));
//rootHub.removeHidGuardKey();
//mutex.ReleaseMutex(); //mutex.ReleaseMutex();
//} //}