基本信息
源码名称:远程桌面,PC屏幕共享软件原型
源码大小:3.58M
文件格式:.zip
开发语言:C#
更新时间:2018-08-14
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559

本次赞助数额为: 2 元 
   源码介绍
查看朋友的屏幕并控制他的键盘和鼠标。`RemoteDesktop'通过远程文件管理器,注册表编辑器和聊天等额外工具为您带来远程计算机。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Managers;
using Managers.Nova.Client;
using Model.Extensions;
using Network;
using Network.Messages.Nova;
using Providers.Nova.Modules;

namespace Client.Forms
{
    public partial class FormConnect : Form
    {
        public NovaManager NovaManager { get { return NovaClient.Instance.NovaManager; } }

        public FormConnect()
        {
            NovaManager.OnIntroductionCompleted  = new EventHandler<IntroducerIntroductionCompletedEventArgs>(ClientManager_OnIntroductionCompleted);
            NovaManager.OnNatTraversalSucceeded  = new EventHandler<NatTraversedEventArgs>(ClientManager_OnNatTraversalSucceeded);
            NovaManager.OnConnected  = new EventHandler<ConnectedEventArgs>(ClientManager_OnConnected);

            InitializeComponent();
        }

        private async void ButtonConnect_Click(object sender, EventArgs e)
        {
            await NovaManager.RequestIntroductionAsTask(TextBox_Id.Text, TextBox_Password.Text);
        }

        void ClientManager_OnConnected(object sender, ConnectedEventArgs e)
        {
            ButtonConnect.Set(() => ButtonConnect.Text, "Connected.");

            this.Dispose();
        }

        private void ClientManager_OnIntroductionCompleted(object sender, IntroducerIntroductionCompletedEventArgs e)
        {
            switch (e.Result)
            {
                case Network.Messages.Nova.ResponseIntroducerIntroductionCompletedMessage.Result.Allowed:
                    // Do nothing, expect OnNatTraversalSucceeded() to be raised shortly
                    break;

                case Network.Messages.Nova.ResponseIntroducerIntroductionCompletedMessage.Result.Denied:
                    switch (e.DenyReason)
                    {
                        case ResponseIntroducerIntroductionCompletedMessage.Reason.WrongPassword:
                            TextBox_Password.Set(() => TextBox_Password.Text, String.Empty); // clear the password box for re-entry
                            MessageBox.Show("Please enter the correct password.");
                            break;
                        case ResponseIntroducerIntroductionCompletedMessage.Reason.Banned:
                            MessageBox.Show("You have been banned for trying to connect too many times.");
                            break;
                    }
                    break;
            }
        }

        private void ClientManager_OnNatTraversalSucceeded(object sender, NatTraversedEventArgs e)
        {
            ButtonConnect.Set(() => ButtonConnect.Text, "Connecting to "   TextBox_Id.Text   " ...");
        }
    }
}