diff --git a/mi/Program.cs b/mi/Program.cs
index 3643d02..6669d82 100755
--- a/mi/Program.cs
+++ b/mi/Program.cs
@@ -238,9 +238,23 @@ static void Main(string[] args)
Console.WriteLine("Could not open gamepad in exclusive mode. Try re-enable device.");
var instanceId = devicePathToInstanceId(deviceInstance.DevicePath);
if (TryReEnableDevice(instanceId))
- Device.OpenDevice(DeviceMode.Overlapped, DeviceMode.Overlapped, ShareMode.Exclusive);
+ {
+ try
+ {
+ Device.OpenDevice(DeviceMode.Overlapped, DeviceMode.Overlapped, ShareMode.Exclusive);
+ Console.WriteLine("Opened in exclusive mode.");
+ }
+ catch
+ {
+ Device.OpenDevice(DeviceMode.Overlapped, DeviceMode.Overlapped, ShareMode.ShareRead | ShareMode.ShareWrite);
+ Console.WriteLine("Opened in shared mode.");
+ }
+ }
else
+ {
Device.OpenDevice(DeviceMode.Overlapped, DeviceMode.Overlapped, ShareMode.ShareRead | ShareMode.ShareWrite);
+ Console.WriteLine("Opened in shared mode.");
+ }
}
byte[] Vibration = { 0x20, 0x00, 0x00 };
diff --git a/mi/app.manifest b/mi/app.manifest
new file mode 100755
index 0000000..e86e6c8
--- /dev/null
+++ b/mi/app.manifest
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mi/mi.csproj b/mi/mi.csproj
index 1b7b627..07d30a0 100755
--- a/mi/mi.csproj
+++ b/mi/mi.csproj
@@ -32,6 +32,10 @@
TRACE
prompt
4
+ false
+
+
+ app.manifest
@@ -64,6 +68,7 @@
+