From 4b7102eeb9bfffb228ba9d4949eb31dbacf06db2 Mon Sep 17 00:00:00 2001 From: Travis Smith Date: Mon, 15 May 2023 23:21:03 -0400 Subject: [PATCH] Minor cleanup and bug fixes (#23) Fixed the countdown not working and the hold of the button not working when you tab back into the game --- AutoClicker.exe | Bin 26112 -> 0 bytes AutoClicker/ButtonInputs.cs | 14 +++++------ AutoClicker/Clicker.cs | 28 +++++++++++++++++----- AutoClicker/Main.cs | 39 +++++++++++++++++-------------- AutoClicker/MultipleInstances.cs | 24 +++++++++---------- 5 files changed, 62 insertions(+), 43 deletions(-) delete mode 100644 AutoClicker.exe diff --git a/AutoClicker.exe b/AutoClicker.exe deleted file mode 100644 index 0c58726b65773bedd8425743a5453ab9bc0a4f3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26112 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 Urpt)>yCNwZVE+E||DOf^570A)oB#j- diff --git a/AutoClicker/ButtonInputs.cs b/AutoClicker/ButtonInputs.cs index 91acd37..6bee2b9 100644 --- a/AutoClicker/ButtonInputs.cs +++ b/AutoClicker/ButtonInputs.cs @@ -5,8 +5,8 @@ namespace AutoClicker { public partial class ButtonInputs : UserControl { - private readonly uint _buttonDownCode; - private readonly uint _buttonUpCode; + private readonly uint buttonDownCode; + private readonly uint buttonUpCode; public bool Needed => cbButtonEnable.Checked; @@ -14,8 +14,8 @@ public ButtonInputs(string buttonName, uint buttonDownCode, uint buttonUpCode) { InitializeComponent(); - this._buttonDownCode = buttonDownCode; - this._buttonUpCode = buttonUpCode; + this.buttonDownCode = buttonDownCode; + this.buttonUpCode = buttonUpCode; cbButtonEnable.Text = buttonName; numDelay.Maximum = int.MaxValue; numDelay.Value = 200; @@ -23,10 +23,10 @@ public ButtonInputs(string buttonName, uint buttonDownCode, uint buttonUpCode) internal Clicker StartClicking(IntPtr minecraftHandle) { - var delay = cbHold.Checked ? 0 : (int)numDelay.Value; - var clicker = new Clicker(this._buttonDownCode, this._buttonUpCode, minecraftHandle); + var delay = (int)numDelay.Value; + var clicker = new Clicker(buttonDownCode, buttonUpCode, minecraftHandle); - clicker.Start(delay); + clicker.Start(delay, cbHold.Checked); return clicker; } diff --git a/AutoClicker/Clicker.cs b/AutoClicker/Clicker.cs index 7ce0ba4..4f39a21 100644 --- a/AutoClicker/Clicker.cs +++ b/AutoClicker/Clicker.cs @@ -25,17 +25,28 @@ public Clicker(uint buttonDownCode, uint buttonUpCode, IntPtr minecraftHandle) private void Timer_Tick(object sender, EventArgs e) { - Click(); + // keep sending hold every tick as well in case they do something to interrupt the input + if(hold) + { + Hold(); + } else + { + Click(); + } } - public void Start(int delay) + public void Start(int delay, bool hold) { + this.hold = hold; Stop(); - hold = (delay == 0); - if (hold) - //Select the minecraft handle with Alt+Tab to not stop holding (when using the program) - Win32Api.PostMessage(minecraftHandle, buttonDownCode, (IntPtr)0x0001, IntPtr.Zero); + if (hold) + { + Hold(); + timer.Interval = delay; + timer.Start(); + + } else { Click(); @@ -52,6 +63,11 @@ public void Stop() Click(); } + private void Hold() + { + Win32Api.PostMessage(minecraftHandle, buttonDownCode, IntPtr.Zero, IntPtr.Zero); + } + private void Click() { Win32Api.PostMessage(minecraftHandle, buttonDownCode, IntPtr.Zero, IntPtr.Zero); diff --git a/AutoClicker/Main.cs b/AutoClicker/Main.cs index ab47af2..d9d02be 100644 --- a/AutoClicker/Main.cs +++ b/AutoClicker/Main.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Reflection; using System.Threading; +using System.Threading.Tasks; using System.Windows.Forms; namespace AutoClicker @@ -22,7 +23,7 @@ public Main() InitializeComponent(); } - private void Btn_action_Click(object sender, EventArgs e) + private async void Btn_action_Click(object sender, EventArgs e) { try { @@ -68,29 +69,15 @@ private void Btn_action_Click(object sender, EventArgs e) lblStartTime.Text = DateTime.Now.ToString("MMMM dd HH:mm tt"); lblStarted.Visible = true; lblStartTime.Visible = true; - + foreach (var mcProcess in mcProcesses) { - SetControlPropertyThreadSafe(btn_start, "Enabled", false); - SetControlPropertyThreadSafe(btn_stop, "Enabled", true); - var minecraftHandle = mcProcess.MainWindowHandle; FocusToggle(minecraftHandle); - SetControlPropertyThreadSafe(btn_start, "Text", @"Starting in: "); - Thread.Sleep(500); - - for (var i = 5; i > 0; i--) - { - SetControlPropertyThreadSafe(btn_start, "Text", i.ToString()); - Thread.Sleep(500); - } + await Task.Run(() => CountDown(mainHandle)); - FocusToggle(mainHandle); - SetControlPropertyThreadSafe(btn_start, "Text", @"Running..."); - Thread.Sleep(500); - - //Right click needs to be ahead of left click for concrete mining + // Right click needs to be ahead of left click for concrete mining if (biRightMouse.Needed) { var clicker = biRightMouse.StartClicking(minecraftHandle); @@ -117,6 +104,22 @@ private void Btn_action_Click(object sender, EventArgs e) } } + private void CountDown(IntPtr mainHandle) + { + SetControlPropertyThreadSafe(btn_start, "Text", @"Starting in: "); + Thread.Sleep(750); + + for (var i = 5; i > 0; i--) + { + SetControlPropertyThreadSafe(btn_start, "Text", i.ToString()); + Thread.Sleep(750); + } + + FocusToggle(mainHandle); + SetControlPropertyThreadSafe(btn_start, "Text", @"Running..."); + Thread.Sleep(750); + } + private void AddToInstanceClickers(Process mcProcess, Clicker clicker) { if (instanceClickers.ContainsKey(mcProcess)) diff --git a/AutoClicker/MultipleInstances.cs b/AutoClicker/MultipleInstances.cs index 99266d9..874c32a 100644 --- a/AutoClicker/MultipleInstances.cs +++ b/AutoClicker/MultipleInstances.cs @@ -16,10 +16,10 @@ public MultipleInstances(IEnumerable foundProcesses) { InitializeComponent(); - this.SelectedInstances = new List(); + SelectedInstances = new List(); const int x = 25; var y = 20; - var buttonX = this.grpInstances.Location.X + this.grpInstances.Width - 100; + var buttonX = grpInstances.Location.X + grpInstances.Width - 100; var processCount = 0; foreach (var process in foundProcesses) @@ -40,8 +40,8 @@ public MultipleInstances(IEnumerable foundProcesses) button.Click += (sender, e) => { Win32Api.SetForegroundWindow(process.MainWindowHandle); }; - this.grpInstances.Controls.Add(checkbox); - this.grpInstances.Controls.Add(button); + grpInstances.Controls.Add(checkbox); + grpInstances.Controls.Add(button); y += 25; processCount++; @@ -51,7 +51,7 @@ public MultipleInstances(IEnumerable foundProcesses) private void Btn_ok_Click(object sender, EventArgs e) { - var selectedInstances = this.grpInstances.AllControls().Where(b => b.Checked).ToList(); + var selectedInstances = grpInstances.AllControls().Where(b => b.Checked).ToList(); if (!selectedInstances.Any()) { @@ -60,20 +60,20 @@ private void Btn_ok_Click(object sender, EventArgs e) } foreach (var instance in selectedInstances) - this.SelectedInstances.Add(int.Parse(instance.Value)); + SelectedInstances.Add(int.Parse(instance.Value)); - this.DialogResult = DialogResult.OK; - this.Close(); + DialogResult = DialogResult.OK; + Close(); } private void AdjustForm(int processCount) { if (processCount > 4) { - this.grpInstances.Height += 25; - this.Height += 25; - this.btn_cancel.Location = new Point(this.btn_cancel.Location.X, this.btn_cancel.Location.Y + 25); - this.btn_ok.Location = new Point(this.btn_ok.Location.X, this.btn_ok.Location.Y + 25); + grpInstances.Height += 25; + Height += 25; + btn_cancel.Location = new Point(btn_cancel.Location.X, btn_cancel.Location.Y + 25); + btn_ok.Location = new Point(btn_ok.Location.X, btn_ok.Location.Y + 25); } } }