首页 > 解决方案 > 即使应用程序在c#的后台,我如何检测按键何时开始和结束

问题描述

我正在开发我的第一个程序,该程序应该在按键开始并结束时保存为 txt 文件。问题是,我不知道怎么做才能让应用程序在后台运行。我尝试过使用 Windows 窗体应用程序,该应用程序仅在它是焦点窗口时才有效。现在我用控制台应用程序尝试了它,但没有运气。

我已经在网上搜索了我的这个问题的答案,但由于某种原因我找不到答案。我花了几个小时试图解决这个问题,但我无处可去。

我设法让程序像键盘记录器一样工作,将 GetAsyncKeyState 作为控制台应用程序,但我需要知道按下何时开始和结束,我不确定它是否可能。

所以这是我最接近的,但这不是我所追求的。

    class Program
    {
        [DllImport("user32.dll")]
        public static extern int GetAsyncKeyState(Int32 i);
        static void Main(string[] args)
        {
            while (true)
            {
                Thread.Sleep(5);

                int keyA = GetAsyncKeyState(65);
                if (keyA == 32769) //if "A" key is pressed
                {
                    Console.WriteLine("A");
                }
            }
        }
    }

标签: c#

解决方案


推荐阅读