User32.dll SetForegroundWindow не работает - PullRequest
0 голосов
/ 26 июня 2019

Мне нужно со временем установить игровой экран на самое верхнее (переднее) окно.

Но моя функция ничего не делает (однако другие функции user32.dll работают)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;
using System;
using System.Diagnostics;

public class DatabaseManager : MonoBehaviour
{



    //DLL imports
    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool SetForegroundWindow(IntPtr hWnd);

    static Process proc = Process.GetProcessesByName("firefox")[0];
    IntPtr ptrFF = proc.Handle;
    //------------------------------------------------------------------------


    void Awake()
    {              
        SetForegroundWindow(ptrFF);
    }

   //Other code functions like Update etc.
}

Ничего не происходит, ошибок нет. Есть ли способ заставить окно спереди

...