私のC#プロジェクトでは、Timer.One(keyboard_timer)を使用して、ユーザーがF8を押すかどうかを監視し、別のTimer(clipboard_time)は、クリップボードにテキストが含まれるかどうかを監視します。私のプロジェクトでは、キーボードは常に有効になっています。ユーザーがF8キーを押すと、clipboard_timerが有効になります。ユーザーがもう一度F8キーを押すと、clipboard_timerが無効になります。私のプロジェクトの機能ユーザーがF8キーを押して単語をコピーすると、プロジェクトはコピーされた単語の意味をウィンドウに表示します。私のプログラムはバックグラウンドで実行され、ユーザーがF8を押すかどうかを常に確認します。その後、プログラムがクリップボードをチェックします。クリップボードにテキスト(単語)が含まれているかどうか、毎回単語の意味が表示されるかどうかを確認します。私のコードはここにあります:
初期化時
keyboard_timer.Enabled = true;
keyboard_timer.Tick += new EventHandler(keyboard_timer_Tick);
それから
public void keyboard_timer_Tick(object sender, EventArgs e)
{
// clipboard enable
if ((a % 2) != 0)
{
// F9 is for Easy mood to eanble
if ((GetAsyncKeyState(Keys.F9) == -32767) && hot_key == "F9")
{
label2.Text = "Easy";
online_clipboard_active = "";
Clipboard.Clear();
clipboard_timer.Enabled = true;
clipboard_timer.Tick += new EventHandler(clipboard_timer_Tick);
++a;
}
///// // F8 is for online Mood
else if ((GetAsyncKeyState(Keys.F8) == -32767) && online_hot_key == "F8")
{
label2.Text = "Online";
online_clipboard_active = "on";
clipboard_timer.Enabled = true;
clipboard_timer.Tick += new EventHandler(clipboard_timer_Tick);
++a;
}
}// end of enable
//clipboard disable
if ((a % 2) == 0) //
{
// F9 is for Easy mood to disable here
if ((GetAsyncKeyState(Keys.F9) == -32767) && hot_key == "F9")
{
label2.Text = "Off";
clipboard_timer.Enabled = false;
++a;
}
// F8 is for online Mood to disable here
else if ((GetAsyncKeyState(Keys.F8) == -32767) && online_hot_key == "F8")
{
label2.Text = "Off";
online_clipboard_active = "";
clipboard_timer.Enabled = false;
++a;
}
}//end of clipboard disable
}// end of keyboard timer
クリップボードタイマーは
public void clipboard_timer_Tick(object sender, EventArgs e)
{
if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))
{
string x = Clipboard.GetText();
Clipboard.Clear();
if ((a%2)==0 && online_clipboard_active == "on")
{
//cal online_mood form to translate the string from googletranslator
online_mood o = new online_mood(x);
o.Show();
}
else if((a%2)==0 && online_clipboard_active == "")
{
//cal show_meaning form to show the meaning into a window
show_meaning s = new show_meaning(x);
s.Show();
}
}
}// end of clipboard timer Tick
その時間にクリップボードタイマーを有効にすると、両方とも変数を使用するため、キーボードタイマーがロックされるようにしたいと思います。クリップボードタイマーが実行されると、キーボードタイマーがロックされ、クリップボードタイマーが終了すると、キーボードタイマーが再びアクティブになります。これを解決するにはどうすればよいですか。誰かが私に助けをくれますか?????