我有一個關於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應該啓用 –