获取WPF窗体/控件的句柄/当前进程的句柄


1、在WPF中,获取当前窗体的句柄与WINFORM中不一样:

WINFORM直接获取:this.Handle----------this是窗体的类名,handle就是句柄。

 

2、WPF中先引用命名空间:System.Windows.Interop;

IntPtr hwnd = new WindowInteropHelper(this).Handle;----this就是要获取句柄的窗体的类名;

 

3、控件句柄,同样引用 :System.Windows.Interop:
IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(uielement)).Handle;----uielement就是要获取句柄的控件,该控件必须继承自UIElement。

 

4、进程模块句柄

引用 System.Runtime.InteropServices、System.Diagnostics 命名空间

[DllImport("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern IntPtr GetModuleHandle(string lpModuleName);

调用获得进程模块的句柄:

 IntPtr hwnd = GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName);

原文地址:https://www.cnblogs.com/xiesong/p/6676774.html

System.Runtime.InteropServices

System.Runtime.IteropServices


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM