当前位置:编程学习 > C#/ASP.NET >>

asp.net通过IP调用远程摄像头

通过在浏览器输入http://192.168.0.5:81,固定IP来的。会弹出一个窗口要求输入用户和密码,如果输入正确就可以看到远程摄像头的画面。我现想做的是在界面输入IP,端口号,用户名和密码就可以直接进入到远程摄头的画面,而不弹出一个要求输入用户和密码,请问该什么样做?谢谢。 --------------------编程问答-------------------- 不会!

控制远程摄像头...楼主想犯罪,偷看MM洗澡?
--------------------编程问答-------------------- asp.net能搞这个吗? --------------------编程问答-------------------- 能,gmail里的视频会话是不是这行的 --------------------编程问答-------------------- 这还用做,一些监控摄像头就有这功能 --------------------编程问答--------------------
using System;
using System.Runtime.InteropServices;
using System.Drawing.Imaging; 
using System.Windows.Forms;
using System.Drawing;
namespace YHhotel.YHhotelWindows
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class video
{
  //5个传入参数
  private IntPtr myHand;
  private int myWidth;
  private short myHeight;
  private int myLeft;
  private int myTop;
  //调用avicap32.dll 
  public   struct   videohdr_tag   
  {   
   public byte[] lpData;   
   public int dwBufferLength;   
   public int dwBytesUsed;   
   public int dwTimeCaptured;   
   public int dwUser;   
   public int dwFlags;   
   public int[] dwReserved;     
    
  }
  [DllImport("avicap32.dll",CharSet=CharSet.Ansi,   SetLastError=true,   ExactSpelling=true)]   
  public   static   extern   int   capCreateCaptureWindowA([MarshalAs(UnmanagedType.VBByRefStr)]   ref   string   lpszWindowName,   int   dwStyle,   int   x,   int   y,   int   nWidth,   short   nHeight,   int   hWndParent,   int   nID);   
  [DllImport("avicap32.dll",   CharSet=CharSet.Ansi,   SetLastError=true,   ExactSpelling=true)]   
  public   static   extern   bool   capGetDriverDescriptionA(short   wDriver,   [MarshalAs(UnmanagedType.VBByRefStr)]   ref   string   lpszName,   int   cbName,   [MarshalAs(UnmanagedType.VBByRefStr)]   ref   string   lpszVer,   int   cbVer);   
  [DllImport("user32",   CharSet=CharSet.Ansi,   SetLastError=true,   ExactSpelling=true)]   
  public   static   extern   bool   DestroyWindow(int   hndw);   
  [DllImport("user32",   EntryPoint="SendMessageA",   CharSet=CharSet.Ansi,   SetLastError=true,   ExactSpelling=true)]   
  public   static   extern   int   SendMessage(int   hwnd,   int   wMsg,   int   wParam,   [MarshalAs(UnmanagedType.AsAny)]   object   lParam);   
  [DllImport("user32",   CharSet=CharSet.Ansi,   SetLastError=true,   ExactSpelling=true)]   
  public   static   extern   int   SetWindowPos(int   hwnd,   int   hWndInsertAfter,   int   x,   int   y,   int   cx,   int   cy,   int   wFlags);   
  [DllImport("vfw32.dll")]   
  public   static   extern   string   capVideoStreamCallback(int   hwnd,videohdr_tag   videohdr_tag);   
  [DllImport("vicap32.dll",   CharSet=CharSet.Ansi,   SetLastError=true,   ExactSpelling=true)]   
  public   static   extern   bool   capSetCallbackOnFrame(int   hwnd,string   s); 
  //自定义参数:
  private int hHwnd;
  //构造函数
  public video(IntPtr myPtr,int left, int top, int width, short height)
  {
   myHand=myPtr;
   myLeft=left;
   myTop=top;
   myWidth=width;
   myHeight=height;
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
        
        //打开视频:
  public void opVideo()
  {
   int intDevice=0;
   string refDevice=intDevice.ToString();
   hHwnd=capCreateCaptureWindowA(ref   refDevice,1342177280,0,0,640,480,myHand.ToInt32(),0); 
   if(SendMessage(hHwnd,0x40a,intDevice,0)>0)   
   {   
    SendMessage(this.hHwnd,0x435,-1,0);   
    SendMessage(this.hHwnd,0x434,0x42,0);   
    SendMessage(this.hHwnd,0x432,-1,0);   
    SetWindowPos(this.hHwnd,1,0,0,myWidth,Convert.ToInt32(myHeight),6);     
   }
   else   
   {   
    DestroyWindow(this.hHwnd);   
   }   
  }
  //停止视频
  public void CloVideo()
  {
   SendMessage(this.hHwnd,0x40b,0,0);   
   DestroyWindow(this.hHwnd);   
  }
  //捕获视频
  public Image CatchVideo()
  {
   SendMessage(this.hHwnd,0x41e,0,0);   
   IDataObject obj1=Clipboard.GetDataObject();
   Image getIma=null;
   if(obj1.GetDataPresent(typeof(Bitmap)))   
   {   
    Image image1=(Image)obj1.GetData(typeof(Bitmap));    
                getIma=image1;
   }
   return getIma;
  }
}
}
--------------------编程问答-------------------- 这个是你在远程摄像头的认证,就像你的一个登陆页面, 你如果用户名和密码不对, 根据服务器的判断,自然把你redirect到login page了, 你要是在访问之前就获得了认证,或者说正确的user, password已经存储在了cookie或者session里, 就不会要求你登录了 --------------------编程问答-------------------- --------------------编程问答-------------------- 系统是你做,那就去掉登录验证步骤,不是你做的,你又想绕过验证,这叫hack。
所以,洗洗睡吧。 --------------------编程问答--------------------
引用 6 楼 shulin85 的回复:
这个是你在远程摄像头的认证,就像你的一个登陆页面, 你如果用户名和密码不对, 根据服务器的判断,自然把你redirect到login page了, 你要是在访问之前就获得了认证,或者说正确的user, password已经存储在了cookie或者session里, 就不会要求你登录了

现在我的问题就是在和服务器连接时,服务器返回的信息不正确,不能进行跳转到login page --------------------编程问答-------------------- 我的意思就是说做成B/S结构的网络摄像机集中监控端... --------------------编程问答-------------------- Web Services --------------------编程问答-------------------- 与摄像头厂家联系,看是否有开发控件或接口。 --------------------编程问答-------------------- 强大啊。。。。 --------------------编程问答--------------------
引用 5 楼 wxr0323 的回复:
C# code
using System;
using System.Runtime.InteropServices;
using System.Drawing.Imaging; 
using System.Windows.Forms;
using System.Drawing;
namespace YHhotel.YHhotelWindows
{
/// <summary>
/……
强大的人 来了
--------------------编程问答--------------------
引用 3 楼 hyh553879809 的回复:
能,gmail里的视频会话是不是这行的

估计成吧,插件,JS,什么的都能搞了.
--------------------编程问答-------------------- 在摄像头设置中找,应该可以关闭登录验证 --------------------编程问答-------------------- asp.net 操作摄像头源代码在这里可以下载的到,链接如下:

http://peihexian.iteye.com/blog/710177 --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,