问题标签 [spy++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
448 浏览

.net - Spy++ 显示的窗口句柄是该计算机独有的,还是应用程序独有的

好的,所以我有一个 Microsoft Access 表单,其中包含一个我试图从 .Net 处理的文本框

我的表格如下:

框架测试

使用 Spy++,我找到了我的文本框句柄。屏幕显示如下:

间谍加

这个手柄是我的 PC 或 frmTest 独有的吗?例如,如果我在另一台计算机上打开 frmTest,我的文本框的句柄是否仍然是 001E1A6E?

谢谢

0 投票
1 回答
2558 浏览

.net - 是否有类似 Spy++ 的用于 .NET 应用程序的程序?

我环顾四周,没有找到适合我需要的东西。我希望该程序能够拦截发送到我自己的应用程序的 Win32 (?) 消息,该应用程序是用 Visual Basic 编写的。

作为旁注,“拦截 Win32 消息”是正确的措辞吗?

无论哪种方式,精心制作都不会受到伤害。我希望 spy 工具能够截获与 WndProc 以编程方式截获的相同消息,即:SendMessages 和 PostMessages。

我想明确表示我不是在寻找拦截 .NET 框架事件的程序。

谢谢。

编辑:我可以看到我的窗口及其子控件的句柄,但我没有收到任何消息。我正在使用 Windows 7 64 位。我的 Spy++ 版本是 8.00.50727

半解决;我有一个 Spy++ 替代品(Window Detective)可以在我的虚拟机上工作,我对此非常满意,并且绝对不会介意安顿下来。

尽管我仍然想知道为什么我发现的所有“类似间谍”的程序都不能在我的“主”PC 上运行……但我想我不必在意。

0 投票
1 回答
2572 浏览

c# - 在 C# 中创建 spy++ 的函数“查找窗口...”

我想在 C# 中创建与 spy++ 相同的函数“查找窗口...”。我尝试过使用 WINAPI 的这个功能:

http://msdn.microsoft.com/en-US/library/ms633558.aspx 但我没有到达所有元素,因为它们被禁用或隐藏。

例如,在程序员模式下使用窗口 7 计算器,如果它们被禁用,我无法使用我的程序获取“ABCDE F”,那么 spy++ 可以获取它。

编辑:我试过这个,但它不工作:

myPoint 是我鼠标的位置。

我不熟悉WINAPI,我想你的解释是对我缺乏了解。有可能有一个 ChildWindowFromPointEx 函数的小例子,或者知道我的代码不起作用吗?谢谢你的回答


我尝试创建循环,但似乎句柄在另一个句柄下但不是句柄的子句柄,当键“abcde f”被禁用时,循环总是发送相同的句柄并且没有期望的子句。你有别的想法吗?

0 投票
1 回答
1157 浏览

c# - Can't simulate action properly. SendMessage in c# (spy++)

I've got a problem with simulating in game's process this action: - mouse_down - mouse_move - mouse_up

When I do it manually, that's the spy++ output: enter image description here

mouse_down:

enter image description here

mouse_move:

enter image description here

mouse_up:

enter image description here

So I've tried to simulate that with below code start x,y: (618,392) final x,y: (618,432) but It's not working.

Here's the spy++ output after using the code:

enter image description here

I don't really know why it's not working. I've been using this way to simulate keys for some time, actions like: ctrl+q, mouse clicks and so werent any problem. What's more, IT WORKED FOR ME ONCE, but just once. I've stuck in here. Thanks for any help :)

0 投票
1 回答
1240 浏览

c++ - WM_KEYDOWN 消息未发送

我一直在试图找出我的程序中的一个错误。我注意到,每当我按住向上和向左箭头键并按空格键时,我的 WndProc 永远不会接收或处理 WPARAM 为 VK_SPACE 的 WM_KEYDOWN 消息。

我有点好奇,所以我打开了 Spy++ 并开始查看发送到我窗口的消息。我注意到,当我按住向左和向上箭头键并按另一个键时,比如 A,WM_KEYDOWN(以及 WM_CHAR)消息被发送到我的窗口。

但是,如果我按住向上和向左箭头键并按空格键,则不会将空格键命中的 WM_KEYDOWN 消息发送到我的窗口。

这是什么原因?谁能确认这种行为?

0 投票
1 回答
592 浏览

windows - Spy++(Spyxx) 的命令行模拟

我正在寻找 Spy++(Spyxx) 的命令行模拟。

在输出中,我希望窗口控件(按钮、复选框等)列表像树一样。

例如:

[CalcFrame]计算器[CalcFrame]...[按钮]MC

[CalcFrame]计算器[CalcFrame]...[按钮]=

[CalcFrame]计算器[CalcFrame]...[按钮]1

[CalcFrame]计算器[CalcFrame]...[按钮]2

... 很快

有人可以给我一些建议吗?

0 投票
1 回答
3800 浏览

c# - 使用 user32.dll 发送单击,消息出现在 spy++ 中,但未单击按钮

我在使用 user32.dll 向应用程序发送 Click 时遇到问题。该按钮没有被点击,但在 spy++ 中确实出现了该消息。我用的是win7 x64

代码是用c#编写的:

以下是该按钮的 spy++ 消息: 在此处输入图像描述

如果我发送以下消息,我会收到以下消息:如果那是问题,我不知道,但 lbuttondown,buttoup 出现 2 次(S + R),如果我手动单击它,它会收到 1 条消息(P)也试图用 WM_CLICK 做,但我有同样的问题

编辑:现在使用 PostMessage 所以 spy++ 显示与我手动单击它相同的消息,但似乎仍然没有单击该按钮

在此处输入图像描述


使用这个库我有同样的问题。

代码:

消息已发送,但未单击按钮 在此处输入图像描述

编辑:

感谢该链接(http://www.hanselman.com/blog/IntroducingLync2010SuperSimpleAutoAnswerVideoKioskWithFullScreen.aspx),但对于这个库我也有同样的问题:/

代码:

消息已发送,但未单击按钮 在此处输入图像描述

编辑2:

用户的回答已被删除,因为我发布了我的评论作为答案:

这不是答案,这属于你的问题。它与您的代码不匹配,显然您仍在发布 BM_CLICK。这是错误的,应该发送它,您应该发送 BM_CLICK 或发布鼠标消息。而且您正在查看错误的窗口,它是按钮的父级获取 BN_CLICK 通知并对其进行操作。进程的键盘状态错误将是一种典型的故障模式。– 汉斯·帕桑特 18 小时前

关于那个,为什么应该是父母的窗户?spy++ 中的 bcs(我为该按钮(类:BarButton)搜索了下面的屏幕截图,并且我从 user32.dll 获得的句柄也与 spy++ 中的相同 在此处输入图像描述

0 投票
1 回答
1921 浏览

c++ - 从 Spy++ 窗口获取文本

我正在尝试使用 C++ 从 spy++ 中的“消息”窗口获取文本。

我试图向窗口及其子级发送消息,但它不起作用WM_GETTEXTLB_GETMESSAGE

在记事本上测试的代码,它工作正常,那么如何做到这一点?

我将此函数称为 EnumChildWindows(spyHwnd,EnumChildProc,1); //spyHwnd 是“消息”窗口的句柄

0 投票
0 回答
427 浏览

windows-services - 由服务生成的进程的 Windows Proc“不可用”

我试图用来psexec在远程机器上生成一个进程(出于自动化测试目的),并注意到生成的进程没有正确响应消息(WM_GETOBJECT,但这完全是另一个问题)。我打开spy++试图查看原因,但我无法记录任何进入我的进程窗口的消息。窗口属性还表明该窗口的“Windows Proc”为“不可用”:

.

我认为这是 Windows 服务的一种行为,因为psexec 它使用远程机器上的嵌入式服务来启动请求的应用程序。我使用相同的凭据登录到两台机器,所以我认为这不是用户安全问题,而是与服务相关的行为。

作为健全性检查,我编写了一个快速的独立服务器和客户端来远程执行程序,一切都按预期工作:Window Proc 不再“不可用”,我可以监视消息。

我对所有测试都使用了普通的 Windows 计算器 ( calc),即:

我的问题:有人可以确认、解释和/或引用为什么我看不到由服务产生的进程的消息队列吗?还有解决方法吗?我宁愿使用而psexec不是我的自定义解决方案。如果您还可以解释为什么WM_GETOBJECT在这种情况下也不返回我的自定义 UI 自动化提供程序,那将是一个奖励,因为这是我最初的问题。

0 投票
1 回答
1426 浏览

sendmessage - 来自其他窗口的控件名称

我需要从其他窗口读取文本值并将该值查询到另一个应用程序(我的问题将围绕第一个任务)......所以,我正在“监视”其他窗口(我们使用的一些与我们的产品相关的第 3 方应用程序) 并等待单击“接受”按钮以从文本框中读取值。这个另一个应用程序,对话框,有多个文本框和命令按钮。我制作了一个鼠标钩,并在此应用程序出现时激活它。我正在读取此窗口矩形内的所有鼠标移动;文本、标题、子窗口 ID、矩形、左/右/中/滚轮点击。我可以抓住“接受”按钮点击;我可以看到按钮标题,我可以读取该窗口,获取文本并确定单击了哪个按钮等。现在……我可以读取所有 EDIT 类值,获取它们的窗口句柄、矩形等,但我无法将它们识别为类集合中的唯一项目:我需要专门阅读我想要的文本框值。幸运的是,当我从 EDIT 类循环中读取文本时,我感兴趣的文本框总是首先出现在我的循环中。但是我想更具体一点;确保我正在阅读带有 NAME 的文本框。我知道。在开发过程中,我可以读取该名称并将其硬编码到程序中。我的怀疑是控件名称未保存在二进制代码中。我的理解是控件 ID、窗口句柄是在创建窗口时创建的,并且绝对不引用控件名称(例如:txtOrderNumber)。如果对于按钮,我可以因为按钮标题而具体化(因此,我可以确定单击了哪个按钮)我被 EDIT 类项目锁定,并且在读取值时被抛出幸运的第一个猜测。我的问题是:如何从另一个窗口获取控件名称,对于这个任务,我有兴趣了解 EDIT 类实例名称。以下是该项目的一些代码(缩短):

Dim hWnd As IntPtr = FindWindow(Nothing, _windowText)

'API:FindWindowEx 'API:SendMessage 'API:GetClassName 'API:GetWindowTextLength 'API:GetWindowText 'API:WM_GETTEXT

我查看了 GetWindowLong 和 GetDlgCtrlID API,并尝试了大多数标志,但到目前为止都没有成功......

任何提示,线索,方向表示赞赏。谢谢