65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 摄像头服务,带 FTP 和安装程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.68/5 (25投票s)

2003年3月27日

2分钟阅读

viewsIcon

393316

downloadIcon

3212

使用 FTP 上传的 C# 网络摄像头 Windows 服务,包含 Windows 服务安装程序和文件轮换。

引言

我厌倦了寻找一个可以将摄像头快照写入磁盘的应用程序,该应用程序是免费的,没有广告软件,并且图像上没有广告。我找到了一位将 DirectX 库封装在 C# 中的人 - 真是太棒了!这里是他的文章链接。无论如何,他有一个完整的库叫做 DShowNET,我调用了它,创建了一个 Windows 服务,当我的 PC 启动时始终运行。我添加了一个完整的 FTP 库,该库扩展了 Jaimon Mathew 的工作。

概述

此软件包包含一个项目和一个 DLL (DShowNET)。它包含以下文件:

  • WebCamService.cs
  • FtpClient.cs
  • Capture.cs
  • WebCamInstaller.cs

现在,使用 DShowNET 库有点棘手,仅仅从网络摄像头工具中获取一张照片就需要大约 400 行代码。我扩展了 DShowNET 提供的 Sample Grabber,并添加了重置事件,以便可以同步获取照片。

最糟糕的问题是使其稳定,但这个程序已经在我的工作站上运行了 20 多天,没有重启。稳定性最重要的代码在 CloseInterfaces 方法中 - 请注意大量的 try/catch - 必须清理所有内容,否则会观察到奇怪的错误(包括蓝屏)。

我扩展了 FTP 库,以便将其用作功能齐全的 FTP 客户端。我已将其添加到此项目中,以便将文件上传到服务器。

要求

  • DirectX 8.1
  • .NET Framework
  • Visual Studio .NET(如果您计划编辑它的话)
  • 支持 Windows 服务的 Windows 操作系统 (2K, XP)
  • 任何 DirectX 支持的视频设备(调谐器、采集器、摄像头等...)
  • 您花费的 5 分钟时间

安装

安装程序组件用于使用以下命令安装服务:

C:\>installutil.exe D:\projects\webcam\webcamservice\bin\debug\webcamservice.exe

您还需要编辑配置文件以反映您的需求

<add key="path" value="D:\Projects\WebCamService\out\WebCam.jpg"/>
<add key="CaptureCycleSeconds" value="10"/>
<add key="KeepOldImageCount" value="20"/>
<add key="FtpServer" value="???"/>
<add key="FtpUserName" value="???"/>
<add key="FtpPassword" value="???"/>
  • path 是您希望上传图片到的位置。
  • CaptureCycleSeconds 是在拍摄另一张照片之前等待的时间(加上捕获时间,为 11+ 秒)
  • KeepOldImageCount 是保留最后 n 张拍摄的照片

其余的都相当容易理解。

现在您可以使用以下命令启动和停止服务:

net start WebCamService
net stop WebCamService

该服务将在后台运行,并在您的机器启动时启动,而不是在您登录时启动。

C# 网络摄像头服务,带 FTP 和安装程序 - CodeProject - 代码之家
© . All rights reserved.