バックグラウンドで実行され、次のマウス ダブル クリック イベントが発生したときの正確な時刻 (ミリ秒までの精度) を出力する Windows プログラムを作成したいと考えています。具体的には、デスクトップ上の特定の .exe ファイルをダブルクリックした正確な時刻が必要です。これを行う方法はありますか? もしそうなら、簡単なサンプル コードを提供していただけますか?
質問する
2345 次
2 に答える
0
おそらく、Windowsフックを作成することが最善の解決策です。フックに関するドキュメントを確認してください。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632589%28v=vs.85%29.aspx
そして、このデモをチェックしてください:
http://code.msdn.microsoft.com/windowsdesktop/CppWindowsHook-06957865
于 2012-10-12T02:10:18.213 に答える
0
Silverlight のような場合には、マウスのダブルクリック イベントがないため、マウス ダウンの時間と位置を確認し、次のマウス ダウン時間と位置と比較してダブル クリック アクションをシミュレートすることができます。こんなふうになります:
double mouseVerticalPosition;
double mouseHorizontalPosition;
DateTime clickedTime;
bool IsSecondClick = false;
void button_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if(IsSecondClick)
{
IsSecondClick = false;
if ((y - mouseVerticalPosition == 0) & y - mouseHorizontalPosition == 0) &
clickedTime - DateTime.Now < SOMETIME )
{
// mouse double click happenes
}
}
else
{
IsSecondClick = true;
clickedTime = DateTime.Now;
mouseVerticalPosition = e.GetPosition(null).Y;
mouseHorizontalPosition = e.GetPosition(null).X;
}
}
于 2012-10-12T02:17:40.710 に答える