我有一个c#winform应用程序,当使用spy ++时,将“WindowsForms10.Window.8.app.0.33c0d9d”作为类名。 有没有办法将其改为更友好的东西?
答案 0 :(得分:5)
没有。最后一个十六进制数是拥有该窗口的AppDomain的哈希码。之前的数字从0开始,但如果使用相同的类名创建其他窗口则会增加。之前的数字是类样式的值。显然,如果您对变量的内部知识只能在过程中可访问,那么您只能正确猜出这个名称。
你也不能改变它。您将覆盖窗口的CreateParams属性,但设置ClassName属性将使Windows窗体查找具有该名称的现有窗口类。并没有找到它,轰炸你的程序。
你也不能覆盖它。逻辑内置于NativeWindow类的私有方法中。显然,这并不是为了方便使用FindWindowEx()。
只要更改源代码是一个选项,除了使用Windows消息之外,还有更好的方法来设置进程间通信。命名管道,插座,远程处理,WCF。
答案 1 :(得分:0)
如果您需要控件的友好名称,请使用“辅助功能”属性。这是常见的方式。