9

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

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

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

简而言之,如何将我在 Delphi 应用程序中使用的 VCL 的类名隐藏在 WinSpy++ 等外部查看器工具中。

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

另外,我知道我可以自定义派生这些组件以将类名称更改为我自己的,但它们必须是一种更简单的方法。

4

1 回答 1

12

您可以覆盖CreateParams并将自己的类名放入Params.WinClassName. 默认行为在TWinControl.CreateParams

with Params do
  ...
  StrPCopy(WinClassName, ClassName);
于 2011-05-11T12:50:02.320 回答