mirror of
https://github.com/ReneLergner/WPinternals.git
synced 2026-06-14 03:16:40 +10:00
5dae1da560
- WPinternals is now a .NET Core 3.0 application - Implemented new unlock process for Spec A devices - Updated logic for unlocking Spec B devices - Implemented MMOS support for Spec B devices - Implemented battery status in Flash Mode - Implemented Fuse configuration information in Flash Mode - Implemented Reboot from mass storage for Spec A and some Spec B devices - Implemented shutdown from flash mode (preliminary) - Fixed label mode support for Spec B
119 lines
3.3 KiB
C#
119 lines
3.3 KiB
C#
// This class was found online.
|
|
// Original author is probably: Swizzy
|
|
// https://github.com/ttgxdinger/Random/blob/master/CPUKey%20Checker/CPUKey%20Checker/FolderSelectDialog.cs
|
|
|
|
using System;
|
|
using System.Windows.Forms;
|
|
|
|
namespace WPinternals
|
|
{
|
|
/// <summary>
|
|
/// Wraps System.Windows.Forms.OpenFileDialog to make it present
|
|
/// a vista-style dialog.
|
|
/// </summary>
|
|
public class FolderSelectDialog
|
|
{
|
|
// Wrapped dialog
|
|
System.Windows.Forms.OpenFileDialog ofd = null;
|
|
|
|
/// <summary>
|
|
/// Default constructor
|
|
/// </summary>
|
|
public FolderSelectDialog()
|
|
{
|
|
ofd = new System.Windows.Forms.OpenFileDialog();
|
|
|
|
ofd.Filter = "Folders|\n";
|
|
ofd.AddExtension = false;
|
|
ofd.CheckFileExists = false;
|
|
ofd.DereferenceLinks = true;
|
|
ofd.Multiselect = false;
|
|
}
|
|
|
|
#region Properties
|
|
|
|
/// <summary>
|
|
/// Gets/Sets the initial folder to be selected. A null value selects the current directory.
|
|
/// </summary>
|
|
public string InitialDirectory
|
|
{
|
|
get { return ofd.InitialDirectory; }
|
|
set { ofd.InitialDirectory = value == null || value.Length == 0 ? Environment.CurrentDirectory : value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets/Sets the title to show in the dialog
|
|
/// </summary>
|
|
public string Title
|
|
{
|
|
get { return ofd.Title; }
|
|
set { ofd.Title = value == null ? "Select a folder" : value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the selected folder
|
|
/// </summary>
|
|
public string FileName
|
|
{
|
|
get { return ofd.FileName; }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
/// <summary>
|
|
/// Shows the dialog
|
|
/// </summary>
|
|
/// <returns>True if the user presses OK else false</returns>
|
|
public bool ShowDialog()
|
|
{
|
|
return ShowDialog(IntPtr.Zero);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Shows the dialog
|
|
/// </summary>
|
|
/// <param name="hWndOwner">Handle of the control to be parent</param>
|
|
/// <returns>True if the user presses OK else false</returns>
|
|
public bool ShowDialog(IntPtr hWndOwner)
|
|
{
|
|
var fbd = new FolderBrowserDialog();
|
|
fbd.Description = this.Title;
|
|
fbd.SelectedPath = this.InitialDirectory;
|
|
fbd.ShowNewFolderButton = false;
|
|
if (fbd.ShowDialog(new WindowWrapper(hWndOwner)) != DialogResult.OK) return false;
|
|
ofd.FileName = fbd.SelectedPath;
|
|
|
|
return true;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates IWin32Window around an IntPtr
|
|
/// </summary>
|
|
public class WindowWrapper : System.Windows.Forms.IWin32Window
|
|
{
|
|
/// <summary>
|
|
/// Constructor
|
|
/// </summary>
|
|
/// <param name="handle">Handle to wrap</param>
|
|
public WindowWrapper(IntPtr handle)
|
|
{
|
|
_hwnd = handle;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Original ptr
|
|
/// </summary>
|
|
public IntPtr Handle
|
|
{
|
|
get { return _hwnd; }
|
|
}
|
|
|
|
private IntPtr _hwnd;
|
|
}
|
|
}
|