mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2025-01-24 05:51: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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
bool result = false;
|
||||
@ -342,8 +363,7 @@ namespace DS4Windows
|
||||
|
||||
public static bool IsViGEmBusInstalled()
|
||||
{
|
||||
return CheckForSysDevice(@"Root\ViGEmBus") ||
|
||||
CheckForSysDevice(@"Nefarius\ViGEmBus\Gen1");
|
||||
return CheckForDevice("{96E42B22-F5E9-42F8-B043-ED0F932F014F}");
|
||||
}
|
||||
|
||||
public static void FindConfigLocation()
|
||||
|
@ -15,6 +15,10 @@ namespace DS4Windows
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (loadConfig)
|
||||
@ -40,9 +44,14 @@ namespace DS4Windows
|
||||
|
||||
private void bnStep1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (File.Exists(exepath + $"\\{InstFileName}"))
|
||||
{
|
||||
File.Delete(exepath + $"\\{InstFileName}");
|
||||
}
|
||||
|
||||
WebClient wb = new WebClient();
|
||||
wb.DownloadFileAsync(new Uri("https://github.com/Ryochan7/DS4Windows/raw/jay/extras/ViGEmBusInstaller_DS4Win.zip"),
|
||||
exepath + "\\ViGEmBusInstaller_DS4Win.zip");
|
||||
wb.DownloadFileAsync(new Uri(InstallerDL), exepath + $"\\{InstFileName}");
|
||||
|
||||
wb.DownloadProgressChanged += wb_DownloadProgressChanged;
|
||||
wb.DownloadFileCompleted += wb_DownloadFileCompleted;
|
||||
}
|
||||
@ -59,18 +68,10 @@ namespace DS4Windows
|
||||
Directory.Delete(exepath + "\\ViGEmBusInstaller", true);
|
||||
}
|
||||
|
||||
if (File.Exists(exepath + "\\ViGEmBusInstaller_DS4Win.zip"))
|
||||
{
|
||||
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"))
|
||||
if (File.Exists(exepath + $"\\{InstFileName}"))
|
||||
{
|
||||
bnStep1.Text = Properties.Resources.OpeningInstaller;
|
||||
Process.Start(exepath + "\\ViGEmBusInstaller\\ViGEmBusInstaller.exe", "--silent");
|
||||
Process.Start(exepath + $"\\{InstFileName}", "/quiet");
|
||||
bnStep1.Text = Properties.Resources.Installing;
|
||||
}
|
||||
|
||||
@ -81,7 +82,7 @@ namespace DS4Windows
|
||||
|
||||
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 (Global.IsViGEmBusInstalled())
|
||||
@ -93,8 +94,7 @@ namespace DS4Windows
|
||||
this.BeginInvoke((Action)(() => { bnStep1.Text = Properties.Resources.InstallFailed; }), null);
|
||||
}
|
||||
|
||||
|
||||
File.Delete(exepath + "\\ViGEmBusInstaller_DS4Win.zip");
|
||||
File.Delete(exepath + $"\\{InstFileName}");
|
||||
((NonFormTimer)sender).Stop();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user