J'ai le code ci-dessous dans mon application UWPMarshal.GetLastWin32Error() throws Accès refusé à UWP C#
public static class DeviceIoControlHelper
{
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)]
private static extern SafeFileHandle CreateFile(
string lpFileName,
[MarshalAs(UnmanagedType.U4)] FileAccess dwDesiredAccess,
[MarshalAs(UnmanagedType.U4)] FileShare dwShareMode,
IntPtr lpSecurityAttributes,
[MarshalAs(UnmanagedType.U4)] FileMode dwCreationDisposition,
[MarshalAs(UnmanagedType.U4)] FileAttributes dwFlagsAndAttributes,
IntPtr hTemplateFile);
public static SafeFileHandle ReturnFileHandler()
{
const string drive = @"\\.\LCD";
SafeFileHandle hddHandle = CreateFile(drive, FileAccess.Read, FileShare.None, IntPtr.Zero, FileMode.Open, FileAttributes.Normal, IntPtr.Zero);
if (hddHandle.IsInvalid)
{
int lastError = Marshal.GetLastWin32Error();
string errorMessage = string.Format(@"!! Invalid {0}; Error ({1}): {2}", drive, lastError, new Win32Exception(lastError).Message);
throw new Win32Exception(errorMessage);
}
return hddHandle;
}
}
Mais, lorsque je tente d'y accéder de mes MainPage.xaml.cs, je me suis un expcetion de "Accès refusé". Commutation Visual Studio 2015 Communauté en mode Administrateur n'a pas aidé non plus
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
try
{
DeviceIoControlHelper.ReturnFileHandler();
}
catch(Exception ex)
{
}
}
}
J'utilise UWP avec C# dans Visual Studio 2015 Communauté
Ce n'est pas une surprise que cela ne fonctionne pas. Les applications UWP sont en bac à sable. –