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 @@ +