将GUI组件添加到预编译的应用程序

时间:2009-11-01 23:34:56

标签: c# winforms user-interface memory vb6

我有没有办法将GUI组件添加到已经运行的应用程序中?

即。在第三方GUI中添加额外的选项卡?

我有第三方应用程序,我需要在选项卡式界面中添加一个额外的选项卡(甚至是一个链接到新表单的按钮)。

我可以在UISpy和Spy ++中看到UI组件,但看不到改变或添加它们的方法......

有什么想法吗?也许改变记忆?

更新
我创建的用于包装第三方应用程序的应用程序是.NET,但第三方应用程序是用VB6编写的

4 个答案:

答案 0 :(得分:2)

我认为完全有可能在Reflector的帮助下进行反射,假设它没有被混淆。浏览反射源,直到找到表单的类和要修改的表单实例,然后可以使用反射调用Controls.Add方法或其他任何需要的方法。但除非你知道完全你正在做什么,否则你可能会从应用程序中遇到一些意想不到的行为。

答案 1 :(得分:2)

您可以使用ResHacker。

http://www.angusj.com/resourcehacker/

基本上,每个GUI表单都保存为特定Windows可执行文件中的资源。 ResHacker有一个内置的GUI编辑器,用于编辑“Dialogs”(在ResHacker中引用它们)。

答案 2 :(得分:1)

我认为它是一个.NET WinForm应用程序。如果您没有源文件且应用程序不是太大,您可以尝试“反编译”它并添加您的代码以成为新的应用程序。

我是Lutz Roeder的Reflector的忠实粉丝,它从CLR代码库生成代码。 这是他的工具的链接。 http://www.lutzroeder.com/dotnet/

<强>更新

darkassassin93是对的,希望应用程序不会混淆:)

答案 3 :(得分:1)

你应该有充分的理由这样做。

我认为您可以从Add Tab using pure WinAPITabCtrl_InsertItem Macro

开始

如果你有TabControl的HWND,你可以尝试添加自己的标签。使用TabCtrl_InsertItem。虽然我认为不可能从另一个过程那样做。但是你应该试试。