static void Main(string[] args) { #if NETCORE Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); #endif // 测试每一种控制台颜色 //foreach (var @enum in EnumExtension.GetValues<ConsoleColor>()) //{ // Console.ForegroundColor = @enum; // Console.WriteLine("颜色和编码测试"); //} // 获取二维码 var qq = new WebQQClient("", "", Listener, new SimpleActorDispatcher(), new QQConsoleLogger()); qq.LoginWithQRCode(); // 登录之后自动开始轮训 //var qq = new WebQQClient(); //var timeSpan = TestAction(() => //{ // var @event = qq.LoginWithQRCode().WaitFinalEvent(); // if (@event.Type != QQActionEventType.EvtOK) // { // Console.WriteLine("xxxxxxxxxxxxxx"); // } //}, 100); //Console.WriteLine(timeSpan.TotalMilliseconds); Console.Read(); }
private void Form1_Load(object sender, EventArgs e) { // 获取二维码 qq = new WebQQClient("", "", Listener, new SimpleActorDispatcher(), new QQConsoleLogger()); qq.LoginWithQRCode(); // 登录之后自动开始轮训 new Thread(() => { while (qrCodeImage == null) { } setQrCode(qrCodeImage); while (!LoginSuccess) { } OpenMainForm(); }) { IsBackground = true }.Start(); }
private async void Login() { _cts = new CancellationTokenSource(); btnLogin.InvokeIfRequired(() => btnLogin.Text = "取消登录"); while (!_cts.IsCancellationRequested) { var client = new WebQQClient(notifyListener: _notifyListener, logger: new RichTextBoxLogger(tbMessage)); var result = await client.LoginWithQRCode().WhenFinalEvent(_cts.Token).ConfigureAwait(false); if (result.Type == QQActionEventType.EvtOK) { var key = client.Account.QQ.ToString(); if (_qqClients.ContainsKey(key)) { client.Destroy(); } else { _qqClients.Add(key, client); lvQQList.InvokeIfRequired(() => { AddQQToLv(client); }); } } } _cts = null; }
private async void Login() { _cts = new CancellationTokenSource(); btnLogin.InvokeIfRequired(() => btnLogin.Text = "取消登录"); while (!_cts.IsCancellationRequested) { var client = new WebQQClient(notifyListener: _notifyListener, logger: new RichTextBoxLogger(tbMessage)); var result = await client.LoginWithQRCode().WhenFinalEvent(_cts.Token).ConfigureAwait(false); if (result.Type == QQActionEventType.EvtOK) { var key = client.Account.QQ.ToString(); if (_qqClients.ContainsKey(key)) client.Destroy(); else { _qqClients.Add(key, client); lvQQList.InvokeIfRequired(() => { AddQQToLv(client); }); } } } _cts = null; }