/// <summary> /// 窗口操作 /// </summary> /// <param name="info">窗口操作信息</param> /// <param name="cmd">控制命令</param> /// <returns>TRUE:成功 FALSE:失败</returns> public static bool WallWinControl(WinCtrlInfo info, WinControlCmd cmd) { uint m_dwPlatNum = info.WallNo; uint m_dwSubWinNo = info.SubWinNo; uint m_dwWinNo = info.WinNo; //子窗口号(组号):1字节电视墙号+1字节子窗口号+2字节窗口号 uint dwDispChanNum = ((m_dwPlatNum & 0xff) << 24) + ((m_dwSubWinNo & 0xff) << 16) + (m_dwWinNo & 0xff); bool b = NET_DVR_MatrixDiaplayControl(info.UserId, dwDispChanNum, (uint)cmd, m_dwSubWinNo); if (!b) { iLastErr = NET_DVR_GetLastError(); strErr = "NET_DVR_MatrixDiaplayControl failed, error code= " + iLastErr; } return(b); }
/// <summary> /// 窗口置顶置底 /// </summary> /// <param name="info">窗口操作信息</param> /// <param name="cmd">命令类型</param> /// <returns>TRUE:成功 FALSE:失败</returns> public static bool WallSetWinDisplay(WinCtrlInfo info, WinControlCmd cmd) { uint m_dwWallNo = info.WallNo; uint m_dwRes = 0; uint m_dwWinNo = info.WinNo; //窗口号(组合):1字节电视墙号+1字节保留+2字节窗口号 uint dwWinNum = ((m_dwWallNo & 0xff) << 24) + ((m_dwRes & 0xff) << 16) + (m_dwWinNo & 0xff); //窗口相关参数 IntPtr lpInBuffer = Marshal.AllocHGlobal(4); Marshal.StructureToPtr(dwWinNum, lpInBuffer, false); bool b = NET_DVR_RemoteControl(info.UserId, (uint)cmd, lpInBuffer, 4); if (!b) { iLastErr = NET_DVR_GetLastError(); strErr = "NET_DVR_SWITCH_WIN_BOTTOM failed, error code= " + iLastErr; //窗口置底失败,输出错误号 Failed to set the window down to bottom and output the error code } Marshal.FreeHGlobal(lpInBuffer); return(b); }