2010-05-30 70 views
10

我有一個c#winform應用程序,當使用spy ++時,給出「WindowsForms10.Window.8.app.0.33c0d9d」作爲類名。 有沒有辦法將它改爲更友好的東西?winform友好的類名

回答

0

如果您需要友好名稱用於控件,請使用Accessibility屬性。這是常用的方法。

+0

我需要更友好的類名,以便我可以使用FindWindowEx ... – user156144 2010-05-30 07:52:05

+0

發現它,那麼您必須重寫CreatePrams,但是如果您返回foo,它將再次生成該不友好的名稱。 – Jack 2010-05-30 08:50:36

5

沒有。最後一個十六進制數是擁有該窗口的AppDomain的哈希碼。之前的數字從0開始,但如果使用相同的類名創建其他窗口,則數字會增加。之前的數字是類風格的值。很明顯,只有在知道其變量值只能在流程內訪問的變量的情況下,才能正確猜出該名稱。

你也不能改變它。您將重寫窗口的CreateParams屬性,但設置ClassName屬性將使Windows窗體尋找具有該名稱的現有窗口類。並沒有找到它,轟炸你的程序。

你也不能重寫它。該邏輯被構建到NativeWindow類的私有方法中。顯然,這並不是爲了方便使用FindWindowEx()。

只要更改源代碼是一個選項,除了使用Windows消息之外,還有更好的方法來設置進程間通信。命名管道,套接字,遠程處理,WCF。