隐藏VCL类

9 delphi vcl class handle spy

有一些程序工具,如WinSpy ++,它允许您将鼠标悬停在任何控件/组件的句柄上,并返回该句柄的类名.因此,例如,如果我在Delphi表单上删除TMemo并编译应用程序,如果我使用WinSpy ++并在应用程序上方(在备忘录上方),它将显示编辑器的类名称为TMemo.

现在,假设我不希望任何人使用这样的程序来确定我在我的应用程序中使用的组件,我如何防止类名显示在工具中,例如WinSpy ++?

我问,因为我不希望任何人轻易创建我可能创建和发布的任何应用程序的克隆,如果我正在使用的组件的类名被发现,它将使他们的任务更容易,因为他们知道要使用什么.

简单地说,如何从外部查看器工具(如WinSpy ++)隐藏我在Delphi应用程序中使用的VCL的类名.

WinSpy ++可以在这里找到:http://www.catch22.net/software/winspy

要添加,我知道我可以自定义派生这些组件来将类名更改为我自己的,但它们必须是一种更简单的方法.

Ond*_*lle 12

您可以覆盖CreateParams并将自己的类名放入其中Params.WinClassName.默认行为在TWinControl.CreateParams以下位置实现:

with Params do
  ...
  StrPCopy(WinClassName, ClassName);
Run Code Online (Sandbox Code Playgroud)

  • 虽然这隐藏了Spy中的类名,但您可以从作为可执行文件中的资源存储的.dfm文件中获取更多信息. (6认同)