我在寻找间谍++.我相信它应该包含在Visual Studio 2017中,因为最新的Visual Studio帮助内容引用它:https: //docs.microsoft.com/en-us/visualstudio/debugger/introducing-spy-increment.
我刚刚完成了Visual Studio 2017的全新安装,但文件系统中不存在Spy ++.我找不到它.
所以我想在安装Visual Studio以安装Spy ++时需要选择某些"工作流程"?谁知道这是否正确?如果是这样,我需要哪个工作流程/功能?
我只有SQL Server 2008客户端工具.我想使用Spy ++,但当然,它只附带Visual Studio安装.
我可以使用Spy ++有一个很好的替代品吗?
作为Win32背景下的"硬核"WinForms程序员,我一直使用Spy ++来理解我的应用程序在UI级别上做了什么,包括:
然后我经常在源代码中搜索控件名称,当你不得不在一个你不熟悉的大型应用程序上更改UI时非常有用.
那么我如何对WPF应用程序做同样的事情呢?
(如果需要,您可以假设我可以访问WPF应用程序的源代码,但我更确切地说,该实用程序在不需要应用程序源代码的情况下工作.)
感谢您的回答,我刚刚在StackOverflow中搜索了" Snoop ",并在WPF工具列表中找到了一些问题/答案.
我一直在努力从应用程序中隐藏任务栏中的另一个应用程序.
我一直在使用SetWindowLong函数来设置/删除扩展样式上的WS_EX_APPWINDOW .
我已尝试单独设置和删除属性以及获取当前WindowLong,并删除/添加到该属性,如下所示:
SetWindowLong(pMainWindow, GWL_EXSTYLE, GetWindowLong(pMainWindow) & WS_EX_APPWINDOW);
Run Code Online (Sandbox Code Playgroud)
并尝试删除它:
SetWindowLong(pMainWindow, GWL_EXSTYLE, GetWindowLong(pMainWindow) & ~WS_EX_APPWINDOW);
Run Code Online (Sandbox Code Playgroud)
在没有先让窗口长的情况下也尝试了这两种方法.这是我的整个代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
[DllImport("User32.dll")]
public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("User32.dll")]
public static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private const int SW_HIDE = 0x00;
private const int SW_SHOW = 0x05;
private const int WS_EX_APPWINDOW = 0x40000;
private const …Run Code Online (Sandbox Code Playgroud) 要修改另一个程序的窗口,我需要SysTreeView32使用EnumChildWindowsAPI调用在其中找到特定的窗口.
当我使用Spy ++检查窗口时,其中有许多SysTreeView32内容但除了一个之外都是灰色的,这是我正在寻找的.
以下图片是灰色项目的示例:

为什么显示的项目是灰色的,以及Spy ++使用什么API调用来知道它是否应该使项目变灰?
我想创建一个程序或使用一个程序来读取另一个应用程序的内存值.有谁知道这样做的应用程序/库?
目标应用就是 这个.我想从中读取汇率值.
我是一名经验丰富的c#程序员,但从未使用过Win32/user32 api,这是我假设我必须处理的事情.
任何能帮助我朝着正确方向前进的帮助都非常感谢.
更新: 我设法使用Spy ++来获取窗口句柄,所以我确信我可以获得一些值的方法.
我很好奇间谍++ Finder工具如何找到鼠标所在窗口的窗口句柄.是否有任何WIN32函数用于获取占据显示器上某个像素的最顶层窗口的句柄?
我正在尝试编写一个工具,让我检查基于PowerBuilder的应用程序的状态.我正在考虑的是像Spy ++(或者更好的,"Snoop",因为它存在于.NET应用程序中),它允许我检查一些基于PowerBuilder的GUI的对象树(和对象的属性).
我对普通(基于MFC)的应用程序以及.NET应用程序已经做了同样的事情,但不幸的是我自己从未在PowerBuilder中开发过应用程序,所以我现在通常会考虑两个问题:
是否有一些API(最好是Java或C/C++)可以让人们遍历PowerBuilder应用程序的可视对象树?我在PowerBuilder Native Interface系统上读了一下,但似乎这是用C/C++编写PowerBuilder扩展,然后可以用PowerBuilder脚本语言调用,对吧?
如果有一些可用的API - 也许PowerBuilder应用程序甚至会暴露某种支持IPC的API,它允许我检查PowerBuilder对象层次结构的状态而不在PowerBuilder应用程序的进程中?也许有可用的自动化界面,或基于COM的东西 - 或者其他东西?
现在,我的印象是可能需要将一个DLL注入到PowerBuilder应用程序的进程中,然后获得对正在运行的PowerBuilder VM的访问权限,以便我可以查询它以获取对象树.然后,某种IPC机制将允许我将此信息传输出PowerBuilder应用程序的进程.
有没有人有这方面的经验,或者可以说明是否有人试图这样做?
最好的祝福,
我正面临一个问题,从一些钩子进程中取出所有控件.我的SpyDll成功地启动了钩子流程,但当我查看声明时
控制控件= Control.FromHandle(MainWindowHandle),它将null返回到控制对象,其中"MainWindowhandle"只是该挂钩进程的本机主窗口句柄,在启动该进程后,您始终从.NET"Process"类中获取该处理.
但严重的是,它发生在其他一些钩子进程中,它是同一个C#.NET应用程序,它返回Main"WinForm"的有效对象.
那么为什么它不适用于上述情况呢?是否有正确使用"MainWindowHandle"的例外情况.在我的例子中,两者都是用C#编程的单独的.NET托管进程.在创建该流程时,是否需要特别维护任何流程配置?
关心乌斯曼