我有一个关于PostMessage的问题。我试图让这对彼此C#PostMessage在一个计时器内
private void roll_spin_timer_Tick(object sender, EventArgs e)
{
foreach (Process P in processList)
{
if (P.ProcessName.Equals(processName))
{
IntPtr edit = P.MainWindowHandle;
PostMessage(edit, WM_KEYDOWN, (IntPtr)Keys.R, (IntPtr)0);
}
}
}
private void kill_me_Tick(object sender, EventArgs e)
{
foreach (Process P in processList)
{
if (P.ProcessName.Equals(processName))
{
IntPtr edit = P.MainWindowHandle;
PostMessage(edit, WM_KEYDOWN, (IntPtr)Keys.Enter, IntPtr.Zero);
}
}
}
#region Checkboxes
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
checkBox2.Enabled = false;
textBox2.Enabled = false;
roll_spin_timer.Interval = Convert.ToInt32(textBox2.Text);
roll_spin_timer.Start();
}
if (!checkBox1.Checked)
{
checkBox2.Enabled = true;
textBox2.Enabled = true;
roll_spin_timer.Stop();
}
}
#region Checkboxes
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
checkBox2.Enabled = false;
textBox2.Enabled = false;
roll_spin_timer.Interval = Convert.ToInt32(textBox2.Text);
roll_spin_timer.Start();
}
if (!checkBox1.Checked)
{
checkBox2.Enabled = true;
textBox2.Enabled = true;
roll_spin_timer.Stop();
}
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked)
{
roll_spin_timer.Interval = Convert.ToInt32(textBox2.Text);
roll_spin_timer.Start();
checkBox1.Enabled = false;
textBox2.Enabled = false;
kill_me.Start();
}
if (!checkBox2.Checked)
{
roll_spin_timer.Stop();
checkBox1.Enabled = true;
textBox2.Enabled = true;
kill_me.Stop();
}
}
#endregion
应该按Enter每15秒工作,当“kill_me”计时器滴答作响。当'roll_spin_timer'正在滴答时,它应该每隔30秒按R键。 另外它的工作原理,但当我试图同时启用两个事情搞砸了。它每时每刻都在运行,就是这样。我猜测有一个简单的方法可以使它工作,但我只是不知道它是一样的!
我该如何解决这个问题?说实话,我希望我能修复它我的自我。我只需要某种例子。我希望你们能帮助我。编码对于长时间使用C#的人来说可能很糟糕,我可以使用一些技巧&技巧!
在此先感谢!
此致
MB
我已经添加了激活它们的代码;)我希望你能帮助我 –
这是绝对正确的代码吗? - 您似乎有两个相同方法的副本,并且kill_me_timer上的时间间隔从不设置。什么是checkbox1和checkbox2意味着要控制? –
Checkbox1应该控制Spin_roll_timer并且checkbox2应该启用 –