mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-04-25 08:02:54 +00:00
fix hide console breaking on windows 11 (!33)
force the emulator to launch in an old-school cmd on windows Reviewed-on: https://git.ryujinx.app/projects/Ryubing/pulls/33
This commit is contained in:
@@ -16,15 +16,6 @@ namespace Ryujinx.Common.Helper
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private static partial bool ShowWindow(nint hWnd, int nCmdShow);
|
||||
|
||||
[SupportedOSPlatform("windows")]
|
||||
[LibraryImport("user32")]
|
||||
private static partial nint GetForegroundWindow();
|
||||
|
||||
[SupportedOSPlatform("windows")]
|
||||
[LibraryImport("user32")]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private static partial bool SetForegroundWindow(nint hWnd);
|
||||
|
||||
public static bool SetConsoleWindowStateSupported => OperatingSystem.IsWindows();
|
||||
|
||||
public static void SetConsoleWindowState(bool show)
|
||||
@@ -53,10 +44,6 @@ namespace Ryujinx.Common.Helper
|
||||
return;
|
||||
}
|
||||
|
||||
SetForegroundWindow(hWnd);
|
||||
|
||||
hWnd = GetForegroundWindow();
|
||||
|
||||
ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,9 +24,11 @@ using Ryujinx.Headless;
|
||||
using Ryujinx.SDL3.Common;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Principal;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ryujinx.Ava
|
||||
@@ -52,6 +54,17 @@ namespace Ryujinx.Ava
|
||||
|
||||
if (OperatingSystem.IsWindows())
|
||||
{
|
||||
#if !DEBUG
|
||||
// this fixes the "hide console" option by forcing the emulator to launch in an old-school cmd
|
||||
if (!Console.Title.Contains("conhost.exe"))
|
||||
{
|
||||
string sargs = string.Join(" ", args);
|
||||
|
||||
Process.Start("conhost.exe", $"{Environment.ProcessPath} {sargs}");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!OperatingSystem.IsWindowsVersionAtLeast(10, 0, 19041))
|
||||
{
|
||||
_ = Win32NativeInterop.MessageBoxA(nint.Zero, "You are running an outdated version of Windows.\n\nRyujinx supports Windows 10 version 20H1 and newer.\n", $"Ryujinx {Version}", MbIconwarning);
|
||||
|
||||
Reference in New Issue
Block a user