private void bgwk_DoWork(object sender, DoWorkEventArgs e)
        {
            string[] arg = e.Argument as string[];
            if (arg == null)
            {
                return;
            }
            string acc, pwd;

            switch (arg[0])
            {
            case "start":
                startingGame = true;
                acc          = arg[1];
                last         = new BeanfunGameAccountData(acc, arg[2], arg[3]);
                pwd          = bf.QueryOTP(last);
                if (pwd == null)
                {
                    e.Result = new Result(arg[0], true);
                }
                else
                {
                    try
                    {
                        e.Result = new Result(arg[0], false);
                        lastGame = Process.Start(GamePath, "tw.login.maplestory.gamania.com 8484 BeanFun " + acc + " " + pwd);
                    }
                    catch (Win32Exception w)
                    {
                        startingGame = false;
                        MessageBox.Show("楓之谷在哪呢?" + w.Message);
                    }
                }
                break;

            case "getpwd":
                startingGame = true;
                acc          = arg[1];
                last         = new BeanfunGameAccountData(acc, arg[2], arg[3]);
                pwd          = bf.QueryOTP(last);
                if (pwd == null)
                {
                    e.Result = new Result(arg[0], true);
                }
                else
                {
                    e.Result = new Result(arg[0], false, new string[] { acc, pwd });
                }
                break;
            }
        }