mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-09 15:33:31 +08:00
avoid use console window if debug console is enabled in BepInEx
This commit is contained in:
@@ -137,6 +137,9 @@ public static class WinApi
|
|||||||
[DllImport("kernel32", ExactSpelling = true)]
|
[DllImport("kernel32", ExactSpelling = true)]
|
||||||
public static extern int GetCurrentProcessId();
|
public static extern int GetCurrentProcessId();
|
||||||
|
|
||||||
|
[DllImport("kernel32", ExactSpelling = true)]
|
||||||
|
public static extern IntPtr GetConsoleWindow();
|
||||||
|
|
||||||
[DllImport("kernel32", ExactSpelling = true, SetLastError = true)]
|
[DllImport("kernel32", ExactSpelling = true, SetLastError = true)]
|
||||||
public static extern bool SetProcessAffinityMask(IntPtr hProcess, ulong dwProcessAffinityMask);
|
public static extern bool SetProcessAffinityMask(IntPtr hProcess, ulong dwProcessAffinityMask);
|
||||||
|
|
||||||
|
|||||||
@@ -240,13 +240,17 @@ public static class WindowFunctions
|
|||||||
if (_gameWindowHandle != IntPtr.Zero)
|
if (_gameWindowHandle != IntPtr.Zero)
|
||||||
return _gameWindowHandle;
|
return _gameWindowHandle;
|
||||||
var wnd = IntPtr.Zero;
|
var wnd = IntPtr.Zero;
|
||||||
|
var consoleWnd = WinApi.GetConsoleWindow();
|
||||||
|
var currentProcessId = WinApi.GetCurrentProcessId();
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
wnd = WinApi.FindWindowEx(IntPtr.Zero, wnd, GameWindowClass, _gameWindowTitle);
|
wnd = WinApi.FindWindowEx(IntPtr.Zero, wnd, GameWindowClass, _gameWindowTitle);
|
||||||
if (wnd == IntPtr.Zero)
|
if (wnd == IntPtr.Zero)
|
||||||
return IntPtr.Zero;
|
return IntPtr.Zero;
|
||||||
|
if (wnd == consoleWnd)
|
||||||
|
continue;
|
||||||
WinApi.GetWindowThreadProcessId(wnd, out var pid);
|
WinApi.GetWindowThreadProcessId(wnd, out var pid);
|
||||||
if (pid == WinApi.GetCurrentProcessId())
|
if (pid == currentProcessId)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
_gameWindowHandle = wnd;
|
_gameWindowHandle = wnd;
|
||||||
|
|||||||
Reference in New Issue
Block a user