我正在尝试确定特定窗口是否已最大化。我是在hWID的帮助下完成的。编译调试后执行此操作时,如果窗口确实最大化,则会出现一个消息框,显示“ 3”。但是,无论编译状态如何,无论窗口处于什么状态,我都会收到一个消息框,显示“ -1”。
以下代码在WPF项目中,该项目打包在UWP软件包中并作为FullTrustProcess启动:
private unsafe void IsMaxed(IntPtr hWID)
{
WINDOWPLACEMENT plc = new WINDOWPLACEMENT();
plc.length = (UIntPtr)sizeof(WINDOWPLACEMENT);
WINDOWPLACEMENT* pplc = &plc;
GetWindowPlacement(hWID, pplc);
MessageBox.Show(((int) plc.showCmd).ToString());
}
[DllImport("user32.dll", CharSet = CharSet.Ansi)]
private static unsafe extern bool GetWindowPlacement(IntPtr hWnd, WINDOWPLACEMENT* lpwndpl);