我又回到了......已经。如何暂停执行随机时间间隔
作为我的程序的第二部分,我需要能够随机暂停我的程序 - 例如,程序进入10分钟后暂停20秒,其中47分钟暂停3分钟49毫秒......类似的东西。我不打算尝试一下,因为我发现的所有东西似乎都太复杂了,以至于我的小脑袋不能理解,所以如果有人能为我分解它,那将会很棒。
下面是我的代码,我需要暂停for循环中的位。谢谢! 还有,我知道,我已经得到了它一下,睡觉,点击,睡觉,然后重复循环 - 我喜欢这样吃:)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Runtime.InteropServices;
namespace MagicMouse
{
public partial class Form1 : Form
{
//all this stuff has to do with being able to actually click a mouse
//[DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
//public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
[DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;
//this function will click the mouse using the parameters assigned to it
public void DoMouseClickLeft()
{
//Call the imported function with the cursor's current position
int X = Cursor.Position.X;
int Y = Cursor.Position.Y;
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}
public void NumberCheck(string ValidateNum)
{
long CanConvertOut = 0;
bool CanConvertBool = long.TryParse(ValidateNum, out CanConvertOut);
if (CanConvertBool == false)
{
MessageBox.Show("Please enter a valid number.");
return;
}
}
//this generates the random number used for sleep timer
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//button 1 is start clicking
private void button1_Click(object sender, EventArgs e)
{
//this section sends data to the number validation function
string ValidateNum = NumberOfItems.Text;
NumberCheck(ValidateNum);
int Clicks = Convert.ToInt16(NumberOfItems.Text);
for (int i = 1; i < Clicks; i++)
{
int SleepTime1 = RandomNumber(819, 1092);
DoMouseClickLeft();
Thread.Sleep(SleepTime1);
DoMouseClickLeft();
Thread.Sleep(SleepTime1);
}
}
//button 2 is exit
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
当我删除某些消息框时,我可能会弄乱一些代码,但是它只应该是一个分号丢失:):P – Vasu
您是否真的想要在应用程序暂停?用户将无法做任何事情*点击关闭不会工作,移动它不会工作等。通常禁用任何活动控件(等),但保持UI线程本身工作。 –