Pixel_Guy
@Pixel_Guy
C# программист разрабатывающий игры на unity

Как определить нажат shift или нет, если приложение свернуто?

Я не особо понимаю, что написано ниже, но помогите пожалуйста допилить данный код, чтобы метод KeyPressed определял также в каком регистре нажата клавиша.

using System.Windows.Forms;
using System;
using System.Runtime.InteropServices;

namespace Arturchik_2._0
{
    public class KeyCatcher
    {
        [DllImport("user32.dll")]
        public static extern int GetAsyncKeyState(Int32 i);
        public static string KeyPressed()
        {
            Keys KeyToOut = GetKey();
            if (KeyToOut == Keys.None) return string.Empty;
            else return KeyToOut.ToString();
        }
        static Keys GetKey()
        {
            //System.Threading.Thread.Sleep(10);
            for (Int32 i = 0; i < 255; i++)
            {
                int KeyState = GetAsyncKeyState(i);
                if(KeyState == 1 || KeyState == -32767)
                {
                    return (Keys)i;
                }
            }
            return Keys.None;
        }
    }
}
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
MrMureno
@MrMureno
VR for all
собственно что именно надо ?? узнать клавишу шифт??
https://docs.microsoft.com/ru-ru/windows/desktop/i...
вот ссылочка, там есть указания какая виртуальная клавиша каким номером является..

или проблема именно в отслеживании в свернутом состоянии??

вы вообще понимаете что к Клавиши нет регистра ??
что вам надо отследитьчто в момент нажатия была зажата клавиша шифт и капслок не включен.Или включен и не нажата клавиша...

и что вообще за попытка кейлогер написать ?))
гуглите именно так Кейлогер С# и лучше на англ. удачи)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы