我使用win32 API和DirectX API来解释用户的输入,但是在生成与原始用户输入匹配的输入方面没有找到太多。
我的目标是制作一个在后台,最小化或快速启动区域透明运行的程序,并让该程序人工植入第三方全屏应用程序的键盘和鼠标输入。
我发现了一些用于验证哪个窗口具有焦点的命令,以及一些用于检查所述应用程序的进程名称或ID的代码示例,但没有通过directx或其他任何方式生成输入,以模拟合法输入。 / p>
我们非常感谢任何建议,我希望它尽可能接近实际输入,以帮助促进自动化测试。
如果这个问题太笼统或“研究不足”,我提前道歉,我不太确定从这个问题开始!
由于我熟悉这些语言,该程序将使用C ++或C#。
答案 0 :(得分:0)
我做到了:
一个应用程序充当全局keyboard_hock,然后我确实将匹配模式发送到第二个应用程序,直接在内存中 - 我使用了可以下载的All-in-one code framework示例中的示例,锁定CSFileMappingServer& CSFileMappingClient(获取/设置)来自两个separete进程的内存。 CSWindowsHook项目用于捕获全局键盘事件
我很快,但发送虚拟键盘你可以使用:
BOOL
WINAPI
PostMessageA(
__in_opt HWND hWnd,
__in UINT Msg,
__in WPARAM wParam,
__in LPARAM lParam);
但是你发送的winow必须是焦点,你可以使用:
BOOL
WINAPI
BringWindowToTop(
__in HWND hWnd);
要获得正在运行的应用程序的HWIND,您可以使用:
HWND
WINAPI
FindWindowA(
__in_opt LPCSTR lpClassName,
__in_opt LPCSTR lpWindowName);