我有没有办法将GUI组件添加到已经运行的应用程序中?
即。在第三方GUI中添加额外的选项卡?
我有第三方应用程序,我需要在选项卡式界面中添加一个额外的选项卡(甚至是一个链接到新表单的按钮)。
我可以在UISpy和Spy ++中看到UI组件,但看不到改变或添加它们的方法......
有什么想法吗?也许改变记忆?
更新
我创建的用于包装第三方应用程序的应用程序是.NET,但第三方应用程序是用VB6编写的
答案 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 WinAPI和TabCtrl_InsertItem Macro
开始如果你有TabControl的HWND,你可以尝试添加自己的标签。使用TabCtrl_InsertItem。虽然我认为不可能从另一个过程那样做。但是你应该试试。