diff --git a/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj b/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj index 1517034..f0d573b 100644 --- a/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj +++ b/Kiseki.Launcher.Windows/Kiseki.Launcher.Windows.csproj @@ -45,8 +45,4 @@ - - - - \ No newline at end of file diff --git a/Kiseki.Launcher.Windows/Launcher.cs b/Kiseki.Launcher.Windows/Launcher.cs index fda193f..e2ce691 100644 --- a/Kiseki.Launcher.Windows/Launcher.cs +++ b/Kiseki.Launcher.Windows/Launcher.cs @@ -2,8 +2,6 @@ using System.Reflection; using Microsoft.Win32; -using Syroot.Windows.IO; - namespace Kiseki.Launcher.Windows { public class Launcher : ILauncher @@ -58,7 +56,7 @@ namespace Kiseki.Launcher.Windows { Title = "Select your license file", Filter = "License files (*.bin)|*.bin", - InitialDirectory = KnownFolders.Downloads.Path + InitialDirectory = Win32.GetDownloadsPath() }; if (dialog.ShowDialog() == DialogResult.OK) diff --git a/Kiseki.Launcher.Windows/Win32.cs b/Kiseki.Launcher.Windows/Win32.cs new file mode 100644 index 0000000..39934a5 --- /dev/null +++ b/Kiseki.Launcher.Windows/Win32.cs @@ -0,0 +1,16 @@ +using System.Runtime.InteropServices; + +namespace Kiseki.Launcher.Windows +{ + public static class Win32 + { + [DllImport("shell32", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] + private static extern string SHGetKnownFolderPath([MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, nint hToken = default); + + // https://www.codeproject.com/Articles/878605/Getting-All-Special-Folders-in-NET + public static string GetDownloadsPath() + { + return SHGetKnownFolderPath(new("374DE290-123F-4565-9164-39C4925E467B"), 0); + } + } +} \ No newline at end of file