2

バックグラウンドで実行され、次のマウス ダブル クリック イベントが発生したときの正確な時刻 (ミリ秒までの精度) を出力する Windows プログラムを作成したいと考えています。具体的には、デスクトップ上の特定の .exe ファイルをダブルクリックした正確な時刻が必要です。これを行う方法はありますか? もしそうなら、簡単なサンプル コードを提供していただけますか?

4

2 に答える 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 に答える