Process.GetCurrentProcess()。MainWindowHandle返回零

我试图获得我的C#应用​​程序的主窗体(应用程序只有一个窗体)的窗口句柄(HWND)。

互联网上的一些解决scheme显示我可以使用:

Process.GetCurrentProcess().MainWindowHandle 

获取我的应用程序当前进程的窗口句柄。 但是这个值总是零,有什么不对?

Solutions Collecting From Web of "Process.GetCurrentProcess()。MainWindowHandle返回零"

MSDN说:

主窗口是当前具有焦点的进程打开的窗口(TopLevel窗体)。 您必须使用Refresh方法刷新Process对象,以获取当前主窗口句柄(如果已更改)。

只有当进程具有图形界面时,进程才具有与其关联的主窗口。 如果关联的进程没有主窗口,则MainWindowHandle值为零。 对于已经隐藏的进程,也就是在任务栏中不可见的进程,该值也为零。 对于在任务栏最右侧的通知区域中显示为图标的进程,可能会出现这种情况。

请参阅http://msdn.microsoft.com/zh-CN/library/system.diagnostics.process.mainwindowhandle(v=vs.110).aspx

尝试使用

 System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle