winform дружественное имя класса - PullRequest
10 голосов
/ 30 мая 2010

У меня есть приложение c # winform, которое при использовании spy ++ выдает "WindowsForms10.Window.8.app.0.33c0d9d" в качестве имени класса. Есть ли способ изменить это на что-то более дружелюбное?

Ответы [ 2 ]

5 голосов
/ 30 мая 2010

Нет.Последнее шестнадцатеричное число - это хеш-код домена приложения, которому принадлежит окно.Цифра перед этим начинается с 0, но увеличивается, если другие окна были созданы с тем же именем класса.Число до этого является значением стиля класса.Ясно, что вы можете правильно угадать это имя, только если у вас есть знание переменных, значение которых доступно только внутри процесса.

И вы не можете его изменить.Вы бы переопределили свойство окна CreateParams, но установка свойства ClassName заставит Windows Forms искать существующий класс окна с таким именем.И не найти его, бомбить вашу программу.

И вы не можете отменить это.Логика встроена в закрытый метод класса NativeWindow.Очевидно, что это не было разработано, чтобы упростить использование FindWindowEx ().

Поскольку изменение исходного кода является опцией, существуют гораздо лучшие способы настройки межпроцессного взаимодействия помимо использования сообщений Windows.Именованные трубы, розетки, Remoting, WCF.

0 голосов
/ 30 мая 2010

, если вам нужны понятные имена для ваших элементов управления, используйте свойства специальных возможностей. это обычный способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...