当前位置: 首页 > 编程语言 > C#

从UWP中的CoreWindow对象获取HWND分享

时间:2023-04-10 16:18:31 C#

GetHWNDfromCoreWindowObjectinUWP这个简短的MSDN文档说CoreWindow有ICoreWindowInterop,它获取CoreWindow的句柄HWND。但是我找不到关于如何获取它的参考(C#)。请帮忙。https://msdn.microsoft.com/en-us/library/dn302119(v=vs.85).aspx这个COM接口只能直接访问C++代码。在C#中,您必须自己声明它并使其与C:\ProgramFiles(x86)WindowsKits10Include10.0.10586.0winrt\CoreWindow.idl中的接口声明匹配。像这样:使用System.Runtime.InteropServices;...[ComImport,Guid("45D64A29-A63E-4CB6-B498-5781D298CB4F")][InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]interfaceICoreWindowInterop{IntPtrWindowHandle{get;}boolMessageHandle{设置;}}获取接口引用需要强制转换,编译器不会让您直接从CoreWindow对象进行强制转换。让DLR完成工作最容易实现,如下所示:dynamiccorewin=Windows.UI.Core.CoreWindow.GetForCurrentThread();varinterop=(ICoreWindowInterop)corewin;varhandle=interop.WindowHandle;请注意,UWP不支持接受HWNDAPI。您调用的任何API都将无法通过WindowsAppStore身份验证,即使您避免使用WindowsAppStore(例如旁加载或通过企业部署),也无法保证该应用程序将来会正常运行。以上就是C#学习教程:从UWP中的CoreWindow对象获取HWND共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: