Unity приложение поверх всех окон

119
04 марта 2021, 14:10

Вопрос, есть ли возможность через код (c# script) задать установку, что бы полноэкранное окно приложения Unity всегда было над другими окнами при запуске. ОС Windows

Answer 1

Попробуйте этот вариант с использованием WinAPI:

private const UInt32 SWP_NOSIZE = 0x0001;
private const UInt32 SWP_NOMOVE = 0x0002;
private const UInt32 SWP_SHOWWINDOW = 0x0040;
[DllImport("user32.dll")]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
[DllImport("user32.dll")]
private static extern IntPtr GetActiveWindow();
private static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
SetWindowPos(GetActiveWindow(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);

SetWindowPos более подробно: https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setwindowpos

Обратите внимание что получение дескриптора окна идет через получение активного окна, по этому убедитесь что оно активно или сделайте его таковым.

Второй вариант получения дескриптора окна через FindWindow метод:

private const UInt32 SWP_NOSIZE = 0x0001;
private const UInt32 SWP_NOMOVE = 0x0002;
private const UInt32 SWP_SHOWWINDOW = 0x0040;
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
IntPtr windowHwnd = FindWindow("class", "caption");
private static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
SetWindowPos(windowHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);

За частую в FindWindow class и caption можно просто написать заголовок окна, но если это не так -- воспользуйтесь утилитой Spy++ которая комплектуется с Visual Studio 2015 и младше.

READ ALSO
Entity Framework Core создать базу данных из xsd

Entity Framework Core создать базу данных из xsd

Есть приложение на ASPNET Core 2, необходимо сгенерировать базу данных на основании xsd файла

101
Помогите правильно построить mysql запрос

Помогите правильно построить mysql запрос

Помогите правильно создать запрос mysql

121
Получить в запросе кастомной колонки

Получить в запросе кастомной колонки

Есть некая таблица в БД, предположим такая:

121
php как обрезать строку

php как обрезать строку

Всем привет! сейчас такое

116