mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2025-01-24 14:01:16 +01:00
Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay
This commit is contained in:
commit
4f87d24ee3
@ -301,6 +301,27 @@ namespace DS4Windows
|
|||||||
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool CheckForDevice(string guid)
|
||||||
|
{
|
||||||
|
bool result = false;
|
||||||
|
Guid deviceGuid = Guid.Parse(guid);
|
||||||
|
NativeMethods.SP_DEVINFO_DATA deviceInfoData =
|
||||||
|
new NativeMethods.SP_DEVINFO_DATA();
|
||||||
|
deviceInfoData.cbSize =
|
||||||
|
System.Runtime.InteropServices.Marshal.SizeOf(deviceInfoData);
|
||||||
|
|
||||||
|
IntPtr deviceInfoSet = NativeMethods.SetupDiGetClassDevs(ref deviceGuid, null, 0,
|
||||||
|
NativeMethods.DIGCF_DEVICEINTERFACE);
|
||||||
|
result = NativeMethods.SetupDiEnumDeviceInfo(deviceInfoSet, 0, ref deviceInfoData);
|
||||||
|
|
||||||
|
if (deviceInfoSet.ToInt64() != NativeMethods.INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
NativeMethods.SetupDiDestroyDeviceInfoList(deviceInfoSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private static bool CheckForSysDevice(string searchHardwareId)
|
private static bool CheckForSysDevice(string searchHardwareId)
|
||||||
{
|
{
|
||||||
bool result = false;
|
bool result = false;
|
||||||
@ -342,8 +363,7 @@ namespace DS4Windows
|
|||||||
|
|
||||||
public static bool IsViGEmBusInstalled()
|
public static bool IsViGEmBusInstalled()
|
||||||
{
|
{
|
||||||
return CheckForSysDevice(@"Root\ViGEmBus") ||
|
return CheckForDevice("{96E42B22-F5E9-42F8-B043-ED0F932F014F}");
|
||||||
CheckForSysDevice(@"Nefarius\ViGEmBus\Gen1");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FindConfigLocation()
|
public static void FindConfigLocation()
|
||||||
|
@ -15,6 +15,10 @@ namespace DS4Windows
|
|||||||
{
|
{
|
||||||
public partial class WelcomeDialog : Form
|
public partial class WelcomeDialog : Form
|
||||||
{
|
{
|
||||||
|
private const string InstallerDL =
|
||||||
|
"https://github.com/ViGEm/ViGEmBus/releases/download/v1.16.112/ViGEmBus_Setup_1.16.112.exe";
|
||||||
|
private const string InstFileName = "ViGEmBus_Setup_1.16.112.exe";
|
||||||
|
|
||||||
public WelcomeDialog(bool loadConfig=false)
|
public WelcomeDialog(bool loadConfig=false)
|
||||||
{
|
{
|
||||||
if (loadConfig)
|
if (loadConfig)
|
||||||
@ -40,9 +44,14 @@ namespace DS4Windows
|
|||||||
|
|
||||||
private void bnStep1_Click(object sender, EventArgs e)
|
private void bnStep1_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
if (File.Exists(exepath + $"\\{InstFileName}"))
|
||||||
|
{
|
||||||
|
File.Delete(exepath + $"\\{InstFileName}");
|
||||||
|
}
|
||||||
|
|
||||||
WebClient wb = new WebClient();
|
WebClient wb = new WebClient();
|
||||||
wb.DownloadFileAsync(new Uri("https://github.com/Ryochan7/DS4Windows/raw/jay/extras/ViGEmBusInstaller_DS4Win.zip"),
|
wb.DownloadFileAsync(new Uri(InstallerDL), exepath + $"\\{InstFileName}");
|
||||||
exepath + "\\ViGEmBusInstaller_DS4Win.zip");
|
|
||||||
wb.DownloadProgressChanged += wb_DownloadProgressChanged;
|
wb.DownloadProgressChanged += wb_DownloadProgressChanged;
|
||||||
wb.DownloadFileCompleted += wb_DownloadFileCompleted;
|
wb.DownloadFileCompleted += wb_DownloadFileCompleted;
|
||||||
}
|
}
|
||||||
@ -59,18 +68,10 @@ namespace DS4Windows
|
|||||||
Directory.Delete(exepath + "\\ViGEmBusInstaller", true);
|
Directory.Delete(exepath + "\\ViGEmBusInstaller", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (File.Exists(exepath + "\\ViGEmBusInstaller_DS4Win.zip"))
|
if (File.Exists(exepath + $"\\{InstFileName}"))
|
||||||
{
|
|
||||||
Directory.CreateDirectory(exepath + "\\ViGEmBusInstaller");
|
|
||||||
try { ZipFile.ExtractToDirectory(exepath + "\\ViGEmBusInstaller_DS4Win.zip",
|
|
||||||
exepath + "\\ViGEmBusInstaller"); } //Saved so the user can uninstall later
|
|
||||||
catch { }
|
|
||||||
}
|
|
||||||
|
|
||||||
if (File.Exists(exepath + "\\ViGEmBusInstaller\\ViGEmBusInstaller.exe"))
|
|
||||||
{
|
{
|
||||||
bnStep1.Text = Properties.Resources.OpeningInstaller;
|
bnStep1.Text = Properties.Resources.OpeningInstaller;
|
||||||
Process.Start(exepath + "\\ViGEmBusInstaller\\ViGEmBusInstaller.exe", "--silent");
|
Process.Start(exepath + $"\\{InstFileName}", "/quiet");
|
||||||
bnStep1.Text = Properties.Resources.Installing;
|
bnStep1.Text = Properties.Resources.Installing;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,7 +82,7 @@ namespace DS4Windows
|
|||||||
|
|
||||||
private void timer_Tick(object sender, EventArgs e)
|
private void timer_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Process[] processes = Process.GetProcessesByName("ViGEmBusInstaller");
|
Process[] processes = Process.GetProcessesByName("ViGEmBus_Setup_1.16.112");
|
||||||
if (processes.Length < 1)
|
if (processes.Length < 1)
|
||||||
{
|
{
|
||||||
if (Global.IsViGEmBusInstalled())
|
if (Global.IsViGEmBusInstalled())
|
||||||
@ -93,8 +94,7 @@ namespace DS4Windows
|
|||||||
this.BeginInvoke((Action)(() => { bnStep1.Text = Properties.Resources.InstallFailed; }), null);
|
this.BeginInvoke((Action)(() => { bnStep1.Text = Properties.Resources.InstallFailed; }), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File.Delete(exepath + $"\\{InstFileName}");
|
||||||
File.Delete(exepath + "\\ViGEmBusInstaller_DS4Win.zip");
|
|
||||||
((NonFormTimer)sender).Stop();
|
((NonFormTimer)sender).Stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user