Programma loopt vast.

Status
Niet open voor verdere reacties.

Beginnertjee

Gebruiker
Lid geworden
6 jun 2011
Berichten
20
Hey,

Ik ben een Auto clicker aan het maken.
Waarvan je de coordinaten kunt opslagen in een listbox en wanneer je op start drukt dat hij begint te kliken op die coordinaten dat in de listbox staan.

in mijn programma maak ik gebruik van Sleep().
om de 10min. moet het op alle posties klikken dat in de listbox staan.

Maar wanneer ik op start knop druk, dan loopt mijn programma vast vanwegen de Sleep().

Hoe kan ik dit verhelpen ?



Met vriendelijke groetjes.
 
ik heb het geprobeert maar nog steeds niets.


Ik heb nu niets anders geprobeert en lukt nog steeds niet.
heb in label5 een timer gezet, dat aftelt. wanneer Label5.text op 0 staat, moet hij beginnen klikken op de coordinaten.

Button van start.
Code:
            try
            {
                // Wanneer je op de knop start drukt, dan verrandert de kleur van rood naar groen. 
                button2.BackColor = Color.Green;
                // Het herdrukken op de start knop afzetten
                //     button2.Enabled = false;
                // textbox uitzetten.
                //     textBox1.Enabled = false;
                //     textBox2.Enabled = false;

                int beginT = 0;
                int Text = Convert.ToInt32(textBox2.Text);
                // Herhaalt deze instructie de aantal keren,
                // Hangt ervan af welke integer je in textbox2 typt.

                while (beginT < Text)
                {
                    if (Convert.ToInt32(label5.Text) == 0)
                    {
                        // Systeem loopt vast, met Sleep() . 
                        // System.Threading.Thread.Sleep(6000);  // Per min hervatten. 
                        for (int i = 0; i < listBox1.Items.Count; i++)
                        {
                            for (int ii = 0; ii < listBox2.Items.Count; ii++)
                            {
                                // Point po = new Point((p.X + beginT) - beginT, (p.Y + beginT) - beginT);
                                int XASS = Convert.ToInt32(listBox1.Items[i].ToString()); // Declaratie uitvoeren van listbox1 hier
                                int YASS = Convert.ToInt32(listBox2.Items[i].ToString()); // Declaratie uitvoeren van listbox2 hier
                                Point po = new Point(XASS, YASS);
                                // Random Willkeuriggetal = new Random();
                                // Kiest een willkeurig getal in milliseconde tussen 2sec. en 6sec.
                                // int GetalSec = Willkeuriggetal.Next(2000, 6000);
                                // System.Threading.Thread.Sleep(5000); 
                                SendClick(po);  // uitvoeren van de coordinaten.
                            }
                        }
                        beginT++;
                    }
                }
            }
            catch
            {
                MessageBox.Show("Geef een waarde hoeveel keer u dit wilt herlopen.");
            }

De timer
Code:
        // Field voor het aftellen van de Sec. 
        private int tik = 350;  // 300sec = 5min.

        private void timer2_Tick(object sender, EventArgs e)
        {
            label5.Text = timer2.ToString();
            if (tik >= 0)
            {
                label5.Text = (tik--).ToString();
            }
            else
            {
                tik = 350;   // 5min en 30sec.
            }
        }
 
Laatst bewerkt:
Wat nog een makelijkere manier is is inderdaad een timer te gebruiken:


Dit is uit de losse pols geschreven.
Code:
//Bij start button:
void StartAutoClicker()
{
timer1.Interval = 200; // Tijd in milliseconde voor klik snelheid, NIET IN SECONDE zoals je hierboven doet ^^
currentItem = 0;
timer1.Start();
}


int currentItem;
void timer1_Tick(object Sender, EventArgs e) // Deze code wordt dus 5 keer per seconde of elke 200 milliseconde aangeroepen
{
int x = Convert.ToInt32(listBox1.Items[currentItem].ToString());
int y= Convert.ToInt32(listBox2.Items[currentItem].ToString());
Point p= new Point(x, y);
SendClick(p);
currentItem++;
}

//Bij stop button:
void StopAutoClicker()
{
timer1.Stop();
}
 
Laatst bewerkt:
dankuwel wicherh ;).

Nu nog even zien hoe ik het kan oplossen, want als ik niet op start knop druk,, start hij gewoon uit zichzelf.


Met vriendlijke groetjes
 
Klik op de Timer in de designer (dus waar je je form etc. ziet). Bij properties zet je dan enabled van true naar false. Succes
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan