Доступ к автономному проигрывателю Windows .Form of Unity за windows - PullRequest
0 голосов
/ 07 мая 2020

Является ли Unity автономным проигрывателем для Windows a Windows.Form? Если да, то как мы можем получить доступ к его дескриптору?

if(Form.ActiveForm != null)
{
   m_form = Form.ActiveForm;
   Debug.Log("m_form.Name");
}

Я использую Mono версию System.Windows.Forms.dll. Я пытаюсь использовать приведенный выше код для доступа к дескриптору Form, но он всегда возвращает null, даже когда окно активно, что заставляет меня сомневаться, что автономная сборка windows не является Windows.Form.

Мне в основном нужен доступ к панели инструментов, чтобы я мог изменить ее цвет (не заголовок, для заголовка у нас уже есть обходной путь, который не требует доступа к экземпляру Form). Также мне нужно установить минимальный размер окна. Любое решение будет полезным.

1 Ответ

0 голосов
/ 07 мая 2020

Вы всегда можете p / вызвать winapi, поэтому для получения дескриптора текущего активного окна используйте это:

[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();

А чтобы переместить / отрегулировать положение окна, вы можете использовать один из них:

SetWindowPos , MoveWindow и AdjustWindowRectEx

и, кстати, для получения дескриптора окна ..

[DllImport("user32.dll", EntryPoint="FindWindow", SetLastError = true)]
static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);

или:

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...