コード例 #1
0
        public void OnPressed()
        {
            Logger.Instance.WriteGlobal("Hotkey pressed: {0}+{1} : {2}", _hotkey.Modifier.ToString().Replace(", ", "+"),
                                        _hotkey.Key, Name);

            // Get active window
            IntPtr hwnd = WinAPI.GetForegroundWindow();

            BotClass test = BotSettings.Instance.Bots.FirstOrDefault(x => x.Diablo.MainWindowHandle == hwnd);

            if (test != null)
            {
                DiabloClass diablo = test.Diablo;
                if (diablo == null)
                {
                    return;
                }
                AutoPosition.ManualPositionWindow(hwnd, diablo.X, diablo.Y, diablo.W, diablo.H);
                return;
            }
            test = BotSettings.Instance.Bots.FirstOrDefault(x => x.Demonbuddy.MainWindowHandle == hwnd);
            if (test != null)
            {
                DemonbuddyClass demonbuddy = test.Demonbuddy;
                if (demonbuddy == null)
                {
                    return;
                }
                AutoPosition.ManualPositionWindow(hwnd, demonbuddy.X, demonbuddy.Y, demonbuddy.W, demonbuddy.H);
                return;
            }
            Logger.Instance.WriteGlobal("Reposition Current Failed");
        }
コード例 #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            // NEXT / finish
            if (_stepCount == FinishCount)
            {
                int result;
                var b  = new BotClass();
                var db = new DemonbuddyClass();
                var d  = new DiabloClass();
                var ps = new ProfileScheduleClass();
                var w  = new Helpers.Bot.WeekSchedule();


                b.Name        = _ucDemonbuddy.textBox1.Text;
                b.Description = _ucDemonbuddy.textBox2.Text;

                // Advanced
                b.CreateWindowsUser   = _ucAdvanced.checkBox2.Checked;
                b.UseWindowsUser      = _ucAdvanced.checkBox1.Checked;
                b.WindowsUserName     = _ucAdvanced.textBox1.Text;
                b.WindowsUserPassword = _ucAdvanced.maskedTextBox1.Text;
                b.D3PrefsLocation     = _ucAdvanced.textBox3.Text;
                b.UseDiabloClone      = _ucAdvanced.checkBox3.Checked;
                b.DiabloCloneLocation = _ucAdvanced.textBox2.Text;

                // Demonbuddy
                db.Location      = _ucDemonbuddy.textBox4.Text;
                db.Key           = _ucDemonbuddy.textBox3.Text;
                db.CombatRoutine = _ucDemonbuddy.comboBox1.SelectedItem != null
                    ? _ucDemonbuddy.comboBox1.SelectedItem.ToString()
                    : _ucDemonbuddy.comboBox1.Text;

                db.NoFlash               = _ucDemonbuddy.checkBox1.Checked;
                db.AutoUpdate            = _ucDemonbuddy.checkBox2.Checked;
                db.NoUpdate              = _ucDemonbuddy.checkBox3.Checked;
                db.BuddyAuthUsername     = _ucDemonbuddy.textBox9.Text;
                db.BuddyAuthPassword     = _ucDemonbuddy.maskedTextBox2.Text;
                db.Priority              = _ucDemonbuddy.comboBox2.SelectedIndex;
                db.ForceEnableAllPlugins = _ucDemonbuddy.checkBox5.Checked;


                db.ManualPosSize = _ucDemonbuddy.checkBox4.Checked;
                int.TryParse(_ucDemonbuddy.textBox6.Text, out result);
                db.X = result;
                int.TryParse(_ucDemonbuddy.textBox5.Text, out result);
                db.Y = result;
                int.TryParse(_ucDemonbuddy.textBox10.Text, out result);
                db.W = result;
                int.TryParse(_ucDemonbuddy.textBox11.Text, out result);
                db.H = result;

                // Diablo
                d.Username         = _ucDiablo.textBox3.Text;
                d.Password         = _ucDiablo.maskedTextBox1.Text;
                d.Location         = _ucDiablo.textBox1.Text;
                d.Language         = _ucDiablo.comboBox1.SelectedItem.ToString();
                d.Region           = _ucDiablo.comboBox2.SelectedItem.ToString();
                d.UseAuthenticator = _ucDiablo.checkBox1.Checked;
                d.Serial           = string.Format("{0}-{1}-{2}-{3}", _ucDiablo.textBox4.Text, _ucDiablo.textBox5.Text,
                                                   _ucDiablo.textBox7.Text, _ucDiablo.textBox6.Text);
                d.RestoreCode  = _ucDiablo.textBox8.Text;
                d.Priority     = _ucDiablo.comboBox3.SelectedIndex;
                d.UseIsBoxer   = _ucDiablo.checkBox2.Checked;
                d.CharacterSet = _ucDiablo.textBox13.Text;
                d.DisplaySlot  = _ucDiablo.textBox12.Text;
                d.NoFrame      = _ucDiablo.checkBox4.Checked;

                // Affinity Diablo
                if (d.CpuCount != Environment.ProcessorCount)
                {
                    d.ProcessorAffinity = d.AllProcessors;
                    d.CpuCount          = Environment.ProcessorCount;
                }

                if (AffinityDiablo.cpus.Count != d.CpuCount)
                {
                    Logger.Instance.Write(
                        "For whatever reason Diablo and UI see different number of CPUs, affinity disabled");
                }
                else
                {
                    int intProcessorAffinity = 0;
                    for (int i = 0; i < d.CpuCount; i++)
                    {
                        if (AffinityDiablo.cpus[i].Checked)
                        {
                            intProcessorAffinity |= (1 << i);
                        }
                    }
                    if (intProcessorAffinity == 0)
                    {
                        intProcessorAffinity = -1;
                    }
                    d.ProcessorAffinity = intProcessorAffinity;
                }
                if (AffinityDiablo != null)
                {
                    AffinityDiablo.Dispose();
                }

                // Affinity Demonbuddy
                if (db.CpuCount != Environment.ProcessorCount)
                {
                    db.ProcessorAffinity = db.AllProcessors;
                    db.CpuCount          = Environment.ProcessorCount;
                }

                if (AffinityDemonbuddy.cpus.Count != db.CpuCount)
                {
                    Logger.Instance.Write(
                        "For whatever reason Demonbuddy and UI see different number of CPUs, affinity disabled");
                }
                else
                {
                    int intProcessorAffinity = 0;
                    for (int i = 0; i < db.CpuCount; i++)
                    {
                        if (AffinityDemonbuddy.cpus[i].Checked)
                        {
                            intProcessorAffinity |= (1 << i);
                        }
                    }
                    if (intProcessorAffinity == 0)
                    {
                        intProcessorAffinity = -1;
                    }
                    db.ProcessorAffinity = intProcessorAffinity;
                }
                if (AffinityDemonbuddy != null)
                {
                    AffinityDemonbuddy.Dispose();
                }

                d.ManualPosSize = _ucDiablo.checkBox3.Checked;
                int.TryParse(_ucDiablo.textBox2.Text, out result);
                d.X = result;
                int.TryParse(_ucDiablo.textBox9.Text, out result);
                d.Y = result;
                int.TryParse(_ucDiablo.textBox10.Text, out result);
                d.W = result;
                int.TryParse(_ucDiablo.textBox11.Text, out result);
                d.H = result;

                w.GenerateNewSchedule();
                w.Shuffle   = _ucWeekSchedule.checkBox1.Checked;
                w.MinRandom = Convert.ToInt32(_ucWeekSchedule.textBox1.Text);
                w.MaxRandom = Convert.ToInt32(_ucWeekSchedule.textBox2.Text);

                ps.Profiles      = _ucProfileSchedule.Profiles;
                ps.MaxRandomTime = Convert.ToInt32(_ucProfileSchedule.textBox1.Text);
                ps.MaxRandomRuns = Convert.ToInt32(_ucProfileSchedule.textBox2.Text);
                ps.Random        = _ucProfileSchedule.checkBox1.Checked;

                b.Week            = w;
                b.Demonbuddy      = db;
                b.Diablo          = d;
                b.ProfileSchedule = ps;


                if (bot != null && index >= 0)
                {
                    Logger.Instance.WriteGlobal("Editing bot: {0}", b.Name);

                    // Copy some important stuff from old bot

                    b.IsStarted                   = BotSettings.Instance.Bots[index].IsStarted;
                    b.IsEnabled                   = BotSettings.Instance.Bots[index].IsEnabled;
                    b.IsRunning                   = BotSettings.Instance.Bots[index].IsRunning;
                    b.Diablo.Proc                 = BotSettings.Instance.Bots[index].Diablo.Proc;
                    b.Demonbuddy.Proc             = BotSettings.Instance.Bots[index].Demonbuddy.Proc;
                    b.Demonbuddy.MainWindowHandle = BotSettings.Instance.Bots[index].Demonbuddy.MainWindowHandle;
                    b.Diablo.MainWindowHandle     = BotSettings.Instance.Bots[index].Diablo.MainWindowHandle;
                    b.AntiIdle        = BotSettings.Instance.Bots[index].AntiIdle;
                    b.Week.ForceStart = BotSettings.Instance.Bots[index].Week.ForceStart;
                    b.RunningTime     = BotSettings.Instance.Bots[index].RunningTime;

                    BotSettings.Instance.Bots[index] = b;
                }
                else
                {
                    Logger.Instance.WriteGlobal("Adding new bot: {0}", b.Name);
                    BotSettings.Instance.Bots.Add(b);
                }

                BotSettings.Instance.Save();
                shouldClose = true;
                ActiveForm.Close();

                BotSettings.Instance.Save();
                Program.Mainform.UpdateGridView();
                return;
            }

            if (ValidateControl(Controls[_stepCount]))
            {
                Controls[_stepCount].Visible = false; // Hide old
                _stepCount++;
                Controls[_stepCount].Visible = true;  // Show new
            }

            if (_stepCount > _mainCount)
            {
                button2.Enabled = true;
            }
            if (_stepCount == FinishCount)
            {
                button1.Text = "Save!";
            }
        }