コード例 #1
0
        static void Main(string[] args)
        {
            Console.Title = TITLE + "轻量便携的QQ客户端";
            try
            {
                Console.Clear();
                Console.CursorTop    = 0;
                Console.BufferWidth  = Console.WindowWidth;
                Console.BufferHeight = Console.WindowHeight;
                Program.WriteIL("请提供您的MiraiHttpApi认证信息以便登录。\n");
                string addr    = Ask("服务器地址", DEFAULT_ADDR);
                int    port    = int.Parse(Ask("端口号", DEFAULT_PORT.ToString()));
                long   account = long.Parse(Ask("账号", DEFAULT_ACCOUNT.ToString()));
                string passwd  = Ask("Mirai认证密钥", DEFAULT_PASSWORD);
                client = new QClient(addr, port, passwd, account);
                //client.
                cmd = new CommandHandler(client);
                Console.Clear();
                Console.CursorTop    = 0;
                Console.BufferWidth  = Console.WindowWidth;
                Console.BufferHeight = Console.WindowHeight;
                Program.WriteLine("\n\n===============\n已连接\n/con 列出会话列表\n" +
                                  "/fri 列出好友列表 \n/gro 列出群列表 \n" +
                                  "/sel [ID] 切换到指定会话\n/cof [QQ] 与指定好友聊天\n" +
                                  "/cog [GROUP] 与指定群聊天\n/cot [GROUP] [QQ] 与指定群中的群员临时聊天");

                cur_l = Console.CursorLeft;
                cur_t = Console.CursorTop;
                while (true)
                {
                    string cmds = "";
                    cur_l = Console.CursorLeft;
                    cur_t = Console.CursorTop;
                    lock ("ConsoleOp")
                    {
                        Console.SetCursorPosition(0, Console.BufferHeight - 1);
                        Console.Write(">>");
                        if (Console.CursorTop + 1 >= Console.BufferHeight)
                        {
                            Console.BufferHeight++;
                        }
                    }
                    cmds = Console.ReadLine();
                    lock ("ConsoleOp")
                    {
                        //Console.BufferHeight++;
                        Console.SetCursorPosition(0, Console.CursorTop - 1);
                        Console.Write("                                                              ");
                        Console.SetCursorPosition(cur_l, cur_t);
                    }
                    cmd.command(cmds);
                    Thread.Sleep(500);
                }
            }
            catch (Exception e)
            {
                WriteLine("!故障:" + e.Message);
            }
        }
コード例 #2
0
 public CommandHandler(QClient client)
 {
     this.client = client;
 }
コード例 #3
0
 public EventHandler(QClient client)
 {
     qc = client;
 }