因此,为了工作,他们让我写一个简单的程序来跟踪员工在工作stream程中的效率(比如使用键盘快捷键,窗口位置,需要多长时间查看一些东西)。 目前我们想跟踪'F5'键(提出下一个工作项目),'Alt + Tab'(更改窗口),'Ctrl + V'(粘贴),但可能会扩大,因为他们发现有更多的捷径或东西他们想跟踪。
注意我们在windows 7上,并使用C#编写跟踪程序。
为了做到这一点,我编写了一个低级钩子库来捕获所select的击键,将消息发送到钩子链,然后添加一个注释到一个数据库的密钥被使用。 钩子库在所有的网页浏览器和大多数正常的程序中都很有用(除了我们实际上并不关心浏览器,所以我们忽略了其中的一切)。
问题是,他们用来pipe理他们的工作的应用程序(我们实际上关心跟踪的程序)一些如何阻止我们的钩子挂钩,我不知道如何。 有问题的应用程序是TA2000桌面。
如何识别第三方应用程序使用的控件?
是否值得同步I / O密集的线程,以提高总磁盘性能?
如何使应用程序运行在任何windows版本没有额外的库?
使用DLL .NET内部方法
强制windows显示系统托盘图标
我知道,如果一个应用程序在LowLevelHooksTimeout期间内未能调用callnexthook()来挂钩,那么使用挂钩的方式工作。 所以,也许TA2000只是花了很长时间,或者是我把超时时间缩短到了30秒(是的,我知道这个时间比一个钩子所需要的要多得多),但是这并没有影响。
接下来我尝试的是实现一个基于Raw input API的跟踪系统。 再次,浏览器,微软办公室,记事本,以及我打开的所有其他程序的跟踪轨道,除了它仍然无法追踪TA2000中的按键。 这真的让我感到惊讶,因为根据MSDN
应用程序不必检测或打开input设备。
应用程序直接从设备获取数据,并根据需要处理数据
应用程序可以区分input源,即使它来自同一types的设备。 例如,两个鼠标设备。
所以如果我直接从设备上获取数据,TA2000是如何防止我也获得按键的?
我能想到的最后一件事是在TA2000上使用dll注入来注入一个钩子。 然而,这种方法似乎有风险,因为这是我没有任何其他的开发人员在这里有任何经验,我们要跟踪的应用程序是 *** 作的关键,所以搞砸了不能发生,注入代码到它的内存空间似乎是一个很好的方法搞砸了。
如果有人能解释TA2000如何阻止我跟踪击键,如何击败它,或者指向一个好的方向,我会非常感激。
ps作为SO格式的一个适当的问题,这被认为是可疑的,但它也具有足够的特殊性,成为一个可行的问题。 非常抱歉,如果这不是一个好问题,但我在这个智慧的结尾。
.NET核心,windows Nano服务器和System.Management.automation
在.NET中获取常见的桌面path
如何在C#中使用websocket-sharp禁用强制连续帧
在windows环境中使用Etsy的StatsD
性能关键的GUI应用程序(windows,linux)
这个财务软件包是安全的,以防止窥探。 以管理员身份运行密钥记录软件似乎解决了这个特定的问题。 安全性最初是使用Sysinternals的Process Explorer来识别的,这对于这样的意外问题是一个很好的起点。
总结以上是内存溢出为你收集整理的某些应用程序停止所有获取击键的尝试全部内容,希望文章能够帮你解决某些应用程序停止所有获取击键的尝试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)