コード例 #1
0
ファイル: Form1.cs プロジェクト: xzzpig/CloudText
 protected override void WndProc(ref Message m)
 {
     base.WndProc(ref m);
     Console.WriteLine(m);
     if (m.Msg == 0x31d && wsclient != null && Properties.Settings.Default.autoset == CheckState.Checked)
     {
         var req = new CloudTextPackage(0, null, null, "Set", Clipboard.GetText());
         wsclient.Send(JsonConvert.SerializeObject(req));
     }
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: xzzpig/CloudText
        private async void connectWs()
        {
            Console.WriteLine(Properties.Settings.Default.wsuri);
            var ws = new WebsocketClient(new Uri(Properties.Settings.Default.wsuri));

            _ = Task.Run(async() =>
            {
                await Task.Delay(1000);
                if (!ws.IsRunning)
                {
                    new ConfigForm("无法连接到websocket").ShowDialog();
                }
            });

            ws.MessageReceived.Subscribe(action => {
                var message = action.Text;
                Console.WriteLine(message);
                var response = JsonConvert.DeserializeObject <CloudTextPackage>(message);
                switch (response.action)
                {
                case "Auth":
                    if (response.data != "success")
                    {
                        new ConfigForm("账号登录失败").ShowDialog();
                    }
                    else
                    {
                        this.wsclient = ws;
                    }
                    break;

                case "Set":
                    var t = new Thread(() => {
                        try
                        {
                            if (Clipboard.GetText() != response.data && Properties.Settings.Default.autoget == CheckState.Checked)
                            {
                                Clipboard.SetText(response.data);
                            }
                        }
                        catch (Exception e) { }
                    });
                    t.SetApartmentState(ApartmentState.STA);
                    t.Start();
                    break;
                }
            });
            var req = new CloudTextPackage(0, Properties.Settings.Default.username, Properties.Settings.Default.password, "Auth", null);
            await ws.Start();

            await ws.Send(JsonConvert.SerializeObject(req));
        }