Space писал(а):Понадобилось сделать свой немодальный MyMsgBox
Form2.Show vbModeless, Me
на модальной форме
Хакер писал(а):Очередная чушь.
Хакер писал(а):Вопрос именно в смене. Менять класс существующего окна --- чушь.
Редкой бессмысленности задача это.Space писал(а):Ладно, обосную - я хочу максимально приблизить свой MsgBox к реальным MsgBox'ам, чтобы сторонние программы при переборе окон определяли мой MsgBox как диалоговое окно реального MsgBox.
Изменить имя класса не представляет сложности.Space писал(а):Э... Уси окна косят на "ThunderFormDC"
Изменить имя класса не представляет сложности.
Хех. Я тебе одно скажу в чем я конкретно уверен - если ядру что-то не понравится (как тогда, когда я правил стили), то оно сразу выдаст синий экран. И в этом случае говорить о корректной работе каких-то там прикладных программ уже нет смысла.Хакер писал(а):Я имел в виду не только работу системы (ядра), но и стабильную работу всех прикладных программ.
А вот если мы не увидим синего экрана, тогда, я уверен, будет все окей, ибо я не вижу причин, по которым прикладные программы начали бы глючить. Ну получит прога с помощью GetClassName (да хоть прямым чтением ядерных структур!) fake-имя класса, ну и что?Стабильность от такого трюка не может не нарушиться.
Ну конечно. Класс-то возвратится другой Но это уже, так сказать, не наши заботы.FindWindow-вызовы будут обламываться.
Twister писал(а):Но это уже, так сказать, не наши заботы.
Twister писал(а):Денис, еще раз.
Если наша система вызывает падение ОС, то в топку такую систему, ни кто ее на рынок выпускать не будет. А если наша система, писанная на VB, создает свое окошко и корректно меняет ему класс, то что в этом страшного? Вопрос в другом: а надо ли это вообще? (С) Соседний топик
Хакер писал(а):FindWindow-вызовы будут обламываться.
Я тебя удивлю: область памяти, в которой располагаются гуёвые структуры общая для всех процессов, только спроецирована по разным адресам. Но не в этом дело. Дело в том, что мы меням класс НАШЕМУ ОКНУ. Какого же черта кто-то там вдуг обломится на FindWindow? Какая сторонняя утилита будет искать НАШИ окна и опираться в своей работе на их класс? Понимаешь о чем я говорю?Я понял так, что при замене имени класса для одного из загруженных образов процессов, начнут обламываться вызовы API-функции типа FindWindow, какое приложение бы ее не вызвало(!), понимаешь?
Twister писал(а):Какая сторонняя утилита будет искать НАШИ окна и опираться в своей работе на их класс?
Вооот... Наконец первая здравая мысль по поводу возможных конфликтов. Остальное, написанное выше, ни как не повлияет на работоспособность каких-либо утилит (еще раз: не найдет кто-то наше окно и ладно, ни одна здравая программа не вылетит с ошибкой из-за ненайденного окна). Короче, как я уже говорил, ясность внесет только эксперимент. Еще пару месяцев назад я бы с легкостью, только ради спортивного интереса, сам бы его провел. Но после кражи старого ноутбука я не ставил на новую машину ни WDK, ни WinDBG, ни, тем более, VB. И в ближайшее время не намерен. Так что...нельзя исключать, что msvbvm не ищет свои окно по классу
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 141