c# – 如何将一些按键转换为其他按键?

c# – 如何将一些按键转换为其他按键?,第1张

概述我对考试作弊有很好的想法.我的学校使用非常旧的IDE(想想Turbo Pascal,Turbo C和其他80年代的IDE),我想做的是: >在后台启动我的程序 >拦截按键,而不是直接将它们发送到屏幕,我想从预先配置的文本文件中读取一个字符,然后将其作为按下的键发送.这样,无论你写什么,该文件中的文本都会写在屏幕上. 我找到了Stephen Toub’s篇关于记录密钥的文章,我认为这将是构建这个“工 我对考试作弊有很好的想法.我的学校使用非常旧的IDE(想想Turbo Pascal,Turbo C和其他80年代的IDE),我想做的是:

>在后台启动我的程序
>拦截按键,而不是直接将它们发送到屏幕,我想从预先配置的文本文件中读取一个字符,然后将其作为按下的键发送.这样,无论你写什么,该文件中的文本都会写在屏幕上.

我找到了Stephen Toub’s篇关于记录密钥的文章,我认为这将是构建这个“工具”的良好开端.拦截系统中按下的所有按键是否有比SetwindowsHookEx更好的替代方法?代码是否会被防病毒程序标记为可疑程序?如果是这样,还有什么我可以用来实现这一点而不被防病毒软件标记?是否需要管理员权限?

我知道你们中的一些人会说,如果我对学习的兴趣与避免学习一样多,我会做得很好,但我想尝试一下.

编辑:我添加了一个赏金,我对捕获击键的一些技术感兴趣(我对低级挂钩或高级东西不感兴趣 – 基本的东西很好),主要是方法名称和一些文档链接.我还想知道它们是否会像防病毒一样出现恶意软件.

解决方法 神!前几天我刚刚找到了完美的课程..花了一些时间才找到原始来源:

http://www.codeproject.com/KB/cs/globalhook.aspx

我单独使用此(和SendKeys)完全满足您的需要,您需要使用Handle = true来阻止原始密钥消息.

SendKeys有点难看……如果您愿意,可以寻找替代品……但SendKeys会为您效劳.

使用SendKeys,它是这样的:

private voID HookManager_KeyDown(object sender,KeyEventArgs e)    {        if (e.KeyCode == Keys.D){            e.Handled = true;            SendKeys.Send("F");        }    }

我实际上也使用这种方法来确定什么样的prccess’窗口是焦点,所以如果你在另一个应用程序上,应用程序将什么都不做:

/// <summary>    /// The GetForegrounDWindow function returns a handle to the foreground window.    /// </summary>    [Dllimport("user32.dll")]    static extern IntPtr GetForegrounDWindow();    static bool IsProcessFocused(string processname)    {        if (processname == null || processname.Length == 0)        {            throw new ArgumentNullException("processname");        }        Process[] runninProcesses = Process.GetProcessesByname(processname);        IntPtr activeWindowHandle = GetForegrounDWindow();        foreach (Process process in runninProcesses)        {            if (process.MainWindowHandle.Equals(activeWindowHandle))            {                return true;            }        }        // Process was not found or dIDn't had the focus.        return false;    }
总结

以上是内存溢出为你收集整理的c# – 如何将一些按键转换为其他按键?全部内容,希望文章能够帮你解决c# – 如何将一些按键转换为其他按键?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1215584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存