mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-11-26 19:14:20 +01:00
d11b15d073
Auto profile has more ways to add programs, add origin games if installed, and start menu programs You can also add by shortcuts (.lnk) Auto Profiles now work by the foreground program DS4Windows no longer checks for driver at start, will help speed up DS4's connection when starting up with windows. Welcome to DS4Windows Window is now an option in the Settings Tab, will automatically show up if mine or DSDCS was never started before. Touchpad scrolling reworked via electrobrains newest build Idle Timeout has a checkbox, also small UI fixes
136 lines
5.2 KiB
C#
136 lines
5.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.Net;
|
|
using DS4Control;
|
|
using System.IO;
|
|
using System.IO.Compression;
|
|
using System.Diagnostics;
|
|
using System.Runtime.InteropServices;
|
|
using System.Security.Principal;
|
|
using System.Security.Permissions;
|
|
using System.Reflection;
|
|
|
|
namespace ScpServer
|
|
{
|
|
public partial class WelcomeDialog : Form
|
|
{
|
|
public WelcomeDialog()
|
|
{
|
|
InitializeComponent();
|
|
this.Icon = Properties.Resources.DS4;
|
|
}
|
|
|
|
private void bnFinish_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void linkBluetoothSettings_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
|
{
|
|
Process.Start("control", "bthprops.cpl");
|
|
}
|
|
|
|
private void bnStep1_Click(object sender, EventArgs e)
|
|
{
|
|
WebClient wb = new WebClient();
|
|
if (bnStep1.Text == "Step 1: Install the DS4 Driver")
|
|
{
|
|
wb.DownloadFileAsync(new Uri("https://docs.google.com/uc?authuser=0&id=0BwPaAe9M8N9mYVdPakJ6OXpMUlU&export=download"), Global.appdatapath + "\\VBus.zip");
|
|
wb.DownloadProgressChanged += wb_DownloadProgressChanged;
|
|
wb.DownloadFileCompleted += wb_DownloadFileCompleted;
|
|
}
|
|
}
|
|
|
|
private void wb_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
|
{
|
|
bnStep1.Text = "Downloading " + e.ProgressPercentage + "%";
|
|
}
|
|
|
|
string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
|
|
private void wb_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
|
|
{
|
|
if (!exepath.StartsWith("C:\\Program Files") && !exepath.StartsWith("C:\\Windows"))
|
|
{
|
|
bnStep1.Text = "Opening Installer";
|
|
try
|
|
{
|
|
File.Delete(exepath + "\\ScpDriver.exe");
|
|
File.Delete(exepath + "\\ScpDriver.log");
|
|
Directory.Delete(exepath + "\\System", true);
|
|
Directory.Delete(exepath + "\\DIFxAPI", true);
|
|
}
|
|
catch { }
|
|
Directory.CreateDirectory(Global.appdatapath + "\\Virtual Bus Driver");
|
|
try { ZipFile.ExtractToDirectory(Global.appdatapath + "\\VBus.zip", Global.appdatapath + "\\Virtual Bus Driver"); } //Saved so the user can uninstall later
|
|
catch { }
|
|
try { ZipFile.ExtractToDirectory(Global.appdatapath + "\\VBus.zip", exepath); }
|
|
//Made here as starting the scpdriver.exe via process.start, the program looks for file from where it was called, not where the exe is
|
|
catch { }
|
|
if (File.Exists(exepath + "\\ScpDriver.exe"))
|
|
try { Process.Start(exepath + "\\ScpDriver.exe"); }
|
|
catch { Process.Start(Global.appdatapath + "\\Virtual Bus Driver"); }
|
|
Timer timer = new Timer();
|
|
timer.Start();
|
|
timer.Tick += timer_Tick;
|
|
}
|
|
else
|
|
{
|
|
bnStep1.Text = "Please Open ScpDriver.exe";
|
|
Directory.CreateDirectory(Global.appdatapath + "\\Virtual Bus Driver");
|
|
try { ZipFile.ExtractToDirectory(Global.appdatapath + "\\VBus.zip", Global.appdatapath + "\\Virtual Bus Driver"); }
|
|
catch { }
|
|
Process.Start(Global.appdatapath + "\\Virtual Bus Driver");
|
|
Timer timer = new Timer();
|
|
timer.Start();
|
|
timer.Tick += timer_Tick;
|
|
}
|
|
}
|
|
|
|
bool running = false;
|
|
private void timer_Tick(object sender, EventArgs e)
|
|
{
|
|
Process[] processes = Process.GetProcessesByName("ScpDriver");
|
|
if (!exepath.StartsWith("C:\\Program Files") && !exepath.StartsWith("C:\\Windows"))
|
|
{
|
|
if (processes.Length < 1)
|
|
{
|
|
bnStep1.Text = "Install Complete";
|
|
|
|
try
|
|
{
|
|
File.Delete(exepath + "\\ScpDriver.exe");
|
|
File.Delete(exepath + "\\ScpDriver.log");
|
|
Directory.Delete(exepath + "\\System", true);
|
|
Directory.Delete(exepath + "\\DIFxAPI", true);
|
|
}
|
|
catch { }
|
|
File.Delete(Global.appdatapath + "\\VBus.zip");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (processes.Length > 0)
|
|
running = true;
|
|
if (running)
|
|
if (processes.Length < 1)
|
|
{
|
|
bnStep1.Text = "Install Complete";
|
|
File.Delete(Global.appdatapath + "\\VBus.zip");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
Process.Start("http://www.microsoft.com/hardware/en-us/d/xbox-360-controller-for-windows");
|
|
}
|
|
}
|
|
}
|