mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 11:48:06 +01:00
37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
|
|
// Copyright (c) Microsoft Corporation
|
|||
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|||
|
|
// See the LICENSE file in the project root for more information.
|
|||
|
|
|
|||
|
|
using System.Runtime.InteropServices;
|
|||
|
|
|
|||
|
|
namespace RegistryPreview
|
|||
|
|
{
|
|||
|
|
// Workaround for File Pickers that don't work while running as admin, per:
|
|||
|
|
// https://github.com/microsoft/WindowsAppSDK/issues/2504
|
|||
|
|
public static partial class OpenFilePicker
|
|||
|
|
{
|
|||
|
|
[DllImport("comdlg32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
|||
|
|
private static extern bool GetOpenFileName(ref FileName openFileName);
|
|||
|
|
|
|||
|
|
public static string ShowDialog(string filter, string dialogTitle)
|
|||
|
|
{
|
|||
|
|
FileName openFileName = default(FileName);
|
|||
|
|
openFileName.StructSize = Marshal.SizeOf(openFileName);
|
|||
|
|
|
|||
|
|
openFileName.Filter = filter;
|
|||
|
|
openFileName.File = new string(new char[256]);
|
|||
|
|
openFileName.MaxFile = openFileName.File.Length;
|
|||
|
|
openFileName.FileTitle = new string(new char[64]);
|
|||
|
|
openFileName.MaxFileTitle = openFileName.FileTitle.Length;
|
|||
|
|
openFileName.Title = dialogTitle;
|
|||
|
|
|
|||
|
|
if (GetOpenFileName(ref openFileName))
|
|||
|
|
{
|
|||
|
|
return openFileName.File;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return string.Empty;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|