c# - 即使应用程序在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");
}
}
}
}
解决方案
推荐阅读
- java - Android Studio CodeEditText 为什么不工作?
- amazon-web-services - AWS ElasticBeanstalk 部署抛出错误,“执行命令 [app-deploy] - [PostBuildEbExtension] 期间发生错误”
- c - 卡在 C 的 strcpy
- sql - Sequelize:SequelizeUniqueConstraintError 获取冲突行
- c - 操作系统之间的mbr如何变化?
- mysql - 在 MYSQL 中使用分隔符
- r - 从网状中的python导入
- powershell - Powershell - 需要将 AD 组中所有用户的所有 smtp 地址从 ProxyAdresses 提取到单个列中
- assembly - gdb 何时显示“堆栈上”的内容?
- r - R rvest 无法获取 html_node