2010-05-30 3 views

ответ

0

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

+0

Мне нужно более дружественное имя класса, чтобы я мог обнаружить его с помощью FindWindowEx ... – user156144

+0

, тогда вам нужно переопределить CreatePrams, но если вы вернете foo, он снова сгенерирует это недружелюбное имя. – Jack

5

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

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

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

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

Смежные вопросы