Exemplo n.º 1
0
        /// <summary>
        /// 检测记录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonRecord_Click(object sender, RoutedEventArgs e)
        {
            RecordWindow window = new RecordWindow();

            window.ComboBoxUser.Text = LoginWindow._userAccount.UserName;
            window.ShowInTaskbar     = false; window.Owner = this; window.Show();
        }
Exemplo n.º 2
0
 public void OpenRecordWindow()
 {
     if (RecordWindow != null)
     {
         RecordWindow.Close();
     }
     RecordWindow = new RecordWindow();
     RecordWindow.Show();
 }
Exemplo n.º 3
0
 public void ShowRecordWindowTest()
 {
     recordWindow = new RecordWindow();
     recordWindow.Show();
     if (recordWindow.IsVisible == false)
     {
         Assert.Fail();
     }
     else
     {
         recordWindow.Hide();
         Assert.Pass();
     }
 }
        private void OnKeyPressed(object sender, GlobalKeyboardHookEventArgs e)
        {
            //Debug.WriteLine(e.KeyboardData.VirtualCode);


            if (
                //e.KeyboardData.VirtualCode != GlobalKeyboardHook.VkSnapshot
                //&& e.KeyboardData.VirtualCode != GlobalKeyboardHook.RightAlt
                e.KeyboardData.VirtualCode != GlobalKeyboardHook.F11)
            //if (e.KeyboardState == GlobalKeyboardHook.KeyboardState.SysKeyDown &&
            //    e.KeyboardData.Flags == GlobalKeyboardHook.LlkhfAltdown)
            {
                return;
            }


            // seems, not needed in the life.
            //if (e.KeyboardState == GlobalKeyboardHook.KeyboardState.SysKeyDown &&
            //    e.KeyboardData.Flags == GlobalKeyboardHook.LlkhfAltdown)
            //{
            //    MessageBox.Show("Alt + Print Screen");
            //    e.Handled = true;
            //}
            //else

            var now = DateTime.Now;

            //因為按鍵持續按下時會極快的持續重複引發這個事件  大約 150ms引發一次
            //所以 如果距離上一次引發大於500ms 就判定是新的一次按下  就重新開始計時
            if (now.Subtract(instantKeyPressTime).TotalMilliseconds > 500)
            {
                timerStart = now;
            }

            instantKeyPressTime = now;

            if (e.KeyboardState == GlobalKeyboardHook.KeyboardState.KeyDown)
            {
                Tbx.Text += DateTime.Now.ToString("T") + "KeyDown\n   " + ++i;
                //持續按下的時間長度大於一定秒數
                if (now.Subtract(timerStart).TotalMilliseconds > 1000)
                {
                    timerStart = now;
                    topProcess = ProcessFocus.FindTopProcess();

                    RecordWindow recordWindow = new RecordWindow();
                    recordWindow.Show();
                    recordWindow.Activate();
                    recordWindow.Closing += (o, args) =>
                    {
                        try
                        {
                            ProcessFocus.SendPasteToSpecifcProcessAndSetForeground(topProcess.Id);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                    };


                    //MessageBox.Show("Key Down last for 1 seconds,\ntopProcess: "+ProcessFocus.FindTopProcess().ProcessName);
                }
                e.Handled = true;
            }
        }