diff --git a/Server/Forms/FrmRemoteDesktop.cs b/Server/Forms/FrmRemoteDesktop.cs index 7adff11b..7f2efb6a 100644 --- a/Server/Forms/FrmRemoteDesktop.cs +++ b/Server/Forms/FrmRemoteDesktop.cs @@ -325,7 +325,8 @@ private void OnKeyDown(object sender, KeyEventArgs e) { if (picDesktop.Image != null && _enableKeyboardInput && IsStarted && this.ContainsFocus) { - e.Handled = true; + if (!IsLockKey(e.KeyCode)) + e.Handled = true; if (_keysPressed.Contains(e.KeyCode)) return; @@ -341,7 +342,8 @@ private void OnKeyUp(object sender, KeyEventArgs e) { if (picDesktop.Image != null && _enableKeyboardInput && IsStarted && this.ContainsFocus) { - e.Handled = true; + if (!IsLockKey(e.KeyCode)) + e.Handled = true; _keysPressed.Remove(e.KeyCode); @@ -350,6 +352,13 @@ private void OnKeyUp(object sender, KeyEventArgs e) } } + private bool IsLockKey(Keys key) + { + return ((key & Keys.CapsLock) == Keys.CapsLock) + || ((key & Keys.NumLock) == Keys.NumLock) + || ((key & Keys.Scroll) == Keys.Scroll); + } + private void btnHide_Click(object sender, EventArgs e) { panelTop.Visible = false;