C# 如何";“附加调试器”;到WPF窗口按钮?

C# 如何";“附加调试器”;到WPF窗口按钮?,c#,wpf,visual-studio,C#,Wpf,Visual Studio,编辑: 我没有源代码,有人说需要一个人介入。所以,我不知道这是不是真的,所以我还是会问这个问题 在VS中,我试图将进程附加到外部应用程序,以了解在特定按钮单击时触发的方法(带参数) ,在我单击按钮之前,我暂停执行并单击“介入”,但是,不会捕捉到按钮单击 视频: (选中Enable just my code选项既没有帮助,也没有取消选中。此外,它没有任何pdb(),因此我假设它被视为外部代码) 好吧,窗口应该是WPF(但有评论说,它看起来像WinForms)。当我尝试检查窗口上的元素时,即使是W

编辑:
我没有源代码,有人说需要一个人介入。所以,我不知道这是不是真的,所以我还是会问这个问题


在VS中,我试图
将进程
附加到外部应用程序,以了解在特定按钮单击时触发的方法(带参数)

,在我单击按钮之前,我暂停执行并单击“介入”,但是,不会捕捉到按钮单击

视频: (选中
Enable just my code
选项既没有帮助,也没有取消选中。此外,它没有任何pdb(),因此我假设它被视为外部代码)


好吧,窗口应该是WPF(但有评论说,它看起来像WinForms)。当我尝试检查窗口上的元素时,即使是WinSpy(或类似)程序也无法检测按钮。我应该尝试什么?

您可以首先尝试反编译您试图调试的代码:这可以通过ILSpy(开源)在低级别完成。但是在VisualStudio中有一个ILSpy的扩展。我建议您查看Microsoft提供的有关如何调试第三方程序集的以下链接:

正如@Legacy代码所建议的,您可以使用更易于使用的反编译器:。您可以附加到那里的进程,并对代码进行反编译

如果创建者添加了一些属性来阻止它,那么它会变得更加困难。
您可以自己重新编译反编译的代码,并使用这些程序集等…

您可以首先尝试反编译要调试的代码:这可以通过ILSpy(开源)在较低级别上完成。但是在VisualStudio中有一个ILSpy的扩展。我建议您查看Microsoft提供的有关如何调试第三方程序集的以下链接:

正如@Legacy代码所建议的,您可以使用更易于使用的反编译器:。您可以附加到那里的进程,并对代码进行反编译

如果创建者添加了一些属性来阻止它,那么它会变得更加困难。

您可以自己重新编译反编译的代码,并使用这些程序集等…

您可以试试我的工具。如果它确实是.NET应用程序,您将在单击按钮时看到带有参数的方法调用。

您可以尝试我的工具。如果它确实是一个.NET应用程序,您将在按钮单击上看到带有参数的方法调用。

@Crowcoder好吧,我不知道怎么做(我对VS调试有点陌生),特别是我根本不知道如何找到按钮事件处理程序。这是外部应用程序,我没有任何源代码。该窗口看起来根本不是WPF窗口。。。是WinForms。是的,因为WPF是direct2D,并不是每个控件都使用句柄。@Schwarzie2478我更新了我的问题以回答您的问题。因此,您现在可以安全地删除注释。如果我必须发布更多信息,请让我知道。。。谢谢如果它是WPF,您可以使用snoop检查按钮的绑定命令或单击事件。@Crowcoder嗯,我不知道怎么做(我对VS调试有点陌生),特别是我根本不知道如何找到按钮事件处理程序。这是外部应用程序,我没有任何源代码。该窗口看起来根本不是WPF窗口。。。是WinForms。是的,因为WPF是direct2D,并不是每个控件都使用句柄。@Schwarzie2478我更新了我的问题以回答您的问题。因此,您现在可以安全地删除注释。如果我必须发布更多信息,请让我知道。。。感谢如果它是WPF,您可以使用snoop检查按钮的绑定命令或单击事件。不要使用ILSpy。。。使用dnSpy谢谢你的提示,我没听说过这个,它下面仍然使用ILSpy,我看到了,它没有我能找到的VS iIntegration?我不认为它下面使用ILSpy。我想它用的是罗斯林。dnSpy本身可以安装为VS扩展。啊,我明白了。。。我只是读。。。它使用ILSpy进行反编译,使用Roslyn进行编译。感谢您的回答,不幸的是,该应用程序受到保护,无法反编译:/Don't use ILSpy。。。使用dnSpy谢谢你的提示,我没听说过这个,它下面仍然使用ILSpy,我看到了,它没有我能找到的VS iIntegration?我不认为它下面使用ILSpy。我想它用的是罗斯林。dnSpy本身可以安装为VS扩展。啊,我明白了。。。我只是读。。。它使用ILSpy进行反编译,使用Roslyn进行编译。感谢您的回答,不幸的是,该应用程序受到保护,无法反编译:/