winform友好的class级名称

我有一个ac#winform应用程序,当使用spy ++时,将“WindowsForms10.Window.8.app.0.33c0d9d”作为类名。 有没有办法将其改为更友好的东西?

没有。 最后一个hex数是拥有该窗口的AppDomain的哈希码。 之前的数字从0开始,但如果使用相同的类名创建其他窗口则会增加。 之前的数字是类样式的值。 显然,如果您对变量的内幕知识只能在流程中访问,那么您只能正确猜测此名称。

你也不能改变它。 您将覆盖窗口的CreateParams属性,但设置ClassName属性将使Windows窗体查找具有该名称的现有窗口类。 并没有找到它,轰炸你的程序。

你也不能覆盖它。 逻辑内置于NativeWindow类的私有方法中。 显然,这并不是为了使FindWindowEx()易于使用。

只要更改源代码是一种选择,除了使用Windows消息之外,还有更好的方法来设置进程间通信。 命名管道,sockets,远程处理,WCF。

如果您需要控件的友好名称,请使用“辅助function”属性。 这是常见的方式。