访问Windows.Form of Unity单机版的Windows播放器

问题描述 投票:0回答:1

Windows下的unity单机版播放器是一个 Windows.Form? 如果是,我们如何访问它的句柄?

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

我使用的是 MonoSystem.Windows.Forms.dll. 我正在尝试用上面的代码来访问 Form 句柄,但它总是返回 null 甚至当窗口处于活动状态时,这让我怀疑单机版的windows建构是不是一种 Windows.Form.

我基本上需要访问工具栏,这样我就可以改变它的颜色(不是标题,对于标题,我们已经有了一个不需要访问的变通方法。Form 实例)。) 另外,我需要设置窗口的最小尺寸。任何解决方案都会对我有帮助。

c# winforms unity3d window
1个回答
0
投票

你总是可以pinvoke winapi,所以为了得到当前活动窗口的句柄就用这个。

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

而为了移动调整窗口的位置u可以使用其中的一个。

SetWindowPos, 移动窗口调整窗口形状

另外,为了得到一个窗口的手柄......。

[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);
© www.soinside.com 2019 - 2024. All rights reserved.