gpt4 book ai didi

c# - 从 UWP 中的 CoreWindow 对象获取 HWND

转载 作者:太空狗 更新时间:2023-10-29 21:01:15 24 4
gpt4 key购买 nike

这个简短的 MSDN 文档说 CoreWindow 有 ICoreWindowInterop 获取 CoreWindow 的句柄 HWND。但我找不到有关如何获取它的引用资料 (C#)。请帮忙。

https://msdn.microsoft.com/en-us/library/dn302119(v=vs.85).aspx

最佳答案

此 COM 接口(interface)只能由 C++ 代码直接访问。在 C# 中,您必须自己声明它并使其与 C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\winrt\CoreWindow.idl 中的接口(interface)声明匹配。像这样:

using System.Runtime.InteropServices;
...
[ComImport, Guid("45D64A29-A63E-4CB6-B498-5781D298CB4F")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface ICoreWindowInterop {
IntPtr WindowHandle { get; }
bool MessageHandled { set; }
}

获取接口(interface)引用需要强制转换,编译器不会让您直接从 CoreWindow 对象进行强制转换。让 DLR 完成工作最容易完成,如下所示:

    dynamic corewin = Windows.UI.Core.CoreWindow.GetForCurrentThread();
var interop = (ICoreWindowInterop)corewin;
var handle = interop.WindowHandle;

关于c# - 从 UWP 中的 CoreWindow 对象获取 HWND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34935077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com