我正在尝试获取C#应用程序主窗体的窗口句柄(HWND)(该应用程序只有1个窗体)。
互联网上的一些解决方案显示我可以使用:
Process.GetCurrentProcess().MainWindowHandle
获取我的应用程序当前进程的窗口句柄。但这个值总是为零,有什么不对吗?
答案 0 :(得分:3)
MSDN说:
主窗口是由当前具有焦点的进程(TopLevel表单)打开的窗口。必须使用Refresh方法刷新Process对象,以获取当前主窗口句柄(如果已更改)。
和
只有当进程具有图形界面时,进程才有与其关联的主窗口。如果关联的进程没有主窗口,则MainWindowHandle值为零。对于已隐藏的进程(即,任务栏中不可见的进程),该值也为零。对于在任务栏最右侧的通知区域中显示为图标的进程,可能就是这种情况。
请参阅http://msdn.microsoft.com/en-us/library/system.diagnostics.process.mainwindowhandle(v=vs.110).aspx
答案 1 :(得分:-8)
尝试使用
System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle