gpt4 book ai didi

c# - 如何在没有焦点的情况下检测 keybd_event

转载 作者:太空狗 更新时间:2023-10-30 00:52:57 25 4
gpt4 key购买 nike

我正在开发一个程序,该程序需要检测用户何时按下键盘或使用鼠标,即使该程序已最小化或未获得焦点。我想我必须使用 Windows API,keybd_event (user32),但我不知道如何使用此事件的“监听器”。我有这样的东西:

    [DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,UIntPtr dwExtraInfo);
void PressKey(byte keyCode)
{
//My code here
}

我做了一些研究,但这是我第一次必须使用 DllImport,所以我不知道如何继续......谢谢(ps:抱歉我的英语不好,这不是我的母语:) )

(PPs:我已经阅读了您所有的答案,但是阅读每个链接需要一些时间,所以今晚我会继续努力,但我想我会找到答案。无论如何,感谢大家提供的链接;) )

编辑:所以我刚刚完成了我的代码,它的工作:)它看起来像:

    [DllImport("user32.dll")]
public static extern Boolean GetLastInputInfo(ref tagLASTINPUTINFO plii);
public struct tagLASTINPUTINFO
{
public uint cbSize;
public Int32 dwTime;
}

private void timerTemps_Inactif_Tick(object sender, EventArgs e)
{
tagLASTINPUTINFO LastInput = new tagLASTINPUTINFO();
Int32 IdleTime;
LastInput.cbSize = (uint)Marshal.SizeOf(LastInput);
LastInput.dwTime = 0;

if (GetLastInputInfo(ref LastInput))
{
IdleTime = System.Environment.TickCount - LastInput.dwTime;
if (IdleTime > 10000)
{
//My code here
}
}
}

感谢大家的帮助;)

最佳答案

您需要使用 SetWindowsHookEx 连接到 Windows 操作系统功能。您应该阅读文章 Keyloggers: How they work and how to detect them由 SecureList 发布以了解该过程。

关于c# - 如何在没有焦点的情况下检测 keybd_event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18700312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com