private void panel_LoginDevice(object sender, EventArgs e) { LPNET_DVR_DEVICEINFO lpDeviceInfo = new LPNET_DVR_DEVICEINFO(); IntPtr ptr = MP4Net_ClientLogin(deviceInf.IP, deviceInf.Port, deviceInf.UserName, deviceInf.Password, null, ref lpDeviceInfo); deviceInf.UserID = ptr.ToInt32(); }
/// <summary> /// 注册用户到硬盘录像机上 /// </summary> /// <param name="DVRIp">硬盘录像机的IP 地址.</param> /// <param name="DVRPort">硬盘录像机的端口号.</param> /// <param name="username">登录的用户名.</param> /// <param name="password">用户密码.</param> /// <param name="lpinfo">指向DEVICEINFO 结构的指针.</param> /// <returns>-1 表示失败,其他值表示返回用户的ID 值,该ID 值是由SDK 分配,每个ID 值在客户端是唯一的。</returns> public int DeviceLogin(string DVRIp, ushort DVRPort, string username, string password, ref SDKPlugInData.DEVICEINFO lpinfo, string servername) { LPNET_DVR_DEVICEINFO lpDeviceInfo = new LPNET_DVR_DEVICEINFO(); IntPtr obj = MP4Net_ClientLogin(DVRIp, DVRPort, username, password, null, ref lpDeviceInfo); if (Convert.ToInt32(obj.ToInt32()) != -1) { //hashtable_obj.Add(Convert.ToInt32(obj.ToInt32()), obj); hashtable_ip.Add(Convert.ToInt32(obj.ToInt32()), DVRIp); hashtable_username.Add(Convert.ToInt32(obj.ToInt32()), username); hashtable_password.Add(Convert.ToInt32(obj.ToInt32()), password); IntPtr intPtr = IntPtr.Zero; try { uint lpBytesReturned = 0; intPtr = Marshal.AllocHGlobal(Marshal.SizeOf(new HY_DVS_DEVICE_INFO())); if (MP4Net_ClientGetDeviceConfig(obj, HY_DVR_GET_DEVICE_INFO, 0, intPtr, (ushort)Marshal.SizeOf(new HY_DVS_DEVICE_INFO()), ref lpBytesReturned)) { HY_DVS_DEVICE_INFO info = (HY_DVS_DEVICE_INFO)Marshal.PtrToStructure(intPtr, typeof(HY_DVS_DEVICE_INFO)); lpinfo.sSerialNumber = info.sSerialNumber; lpinfo.byAlarmInPortNum = info.byAlarmInPortNum; lpinfo.byAlarmOutPortNum = info.byAlarmOutPortNum; lpinfo.byDVRType = info.byDVRType; isDVR = false; lpinfo.byDiskNum = info.byDiskNum; lpinfo.byChanNum = info.byChanNum; } else { intPtr = Marshal.AllocHGlobal(Marshal.SizeOf(new HY_DVR_DEVICE_INFO())); if (MP4Net_ClientGetDeviceConfig(obj, HY_DVR_GET_DEVICE_INFO, 0, intPtr, (ushort)Marshal.SizeOf(new HY_DVR_DEVICE_INFO()), ref lpBytesReturned)) { HY_DVR_DEVICE_INFO info = (HY_DVR_DEVICE_INFO)Marshal.PtrToStructure(intPtr, typeof(HY_DVR_DEVICE_INFO)); lpinfo.sSerialNumber = info.sSerialNumber; lpinfo.byAlarmInPortNum = info.byAlarmInPortNum; lpinfo.byAlarmOutPortNum = info.byAlarmOutPortNum; lpinfo.byDVRType = info.byDVRType; isDVR = true; lpinfo.byDiskNum = info.byDiskNum; lpinfo.byChanNum = info.byChanNum; } } } finally { Marshal.FreeHGlobal(intPtr); } } return Convert.ToInt32(obj.ToInt32()); }
private static extern IntPtr MP4Net_ClientLogin(string sDVRIP, ushort wDVRPort, string sUserName, string sPassword, string mac, ref LPNET_DVR_DEVICEINFO lpDeviceInfo);