Современные решения

для защиты Windows приложений

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


Re: Какая кнопка нажата?

From: Alexander Trishin

Roman Yuakovlev wrote on Mon, 12 Jul 2004 04:37:06 +0400:

> Вы уж там наверху определитесь. А то я Set ... в своих проектах то удаляю, то
> добавляю. ;(
>
> Значит, это все таки необходимое условие?

:))) Бедный человек. Скорее всего, Set тебе не нужен. Как я уже сказал,
даже то, что Form_Terminate не будет вызван не остановит процесс от
выгрузки после того, как последняя форма будет Unloaded. У тебя где-то
баг, который приводит к перезагрузке формы. Hастоятельно рекомендую
посмотреть Forms.Count когда тебе кажется что уже все выгрузилось. В IDE
это же просто сделать.

Вот если бы у тебя в формы были ссылки на классы, которые бы в себе
хранили ссылки на другие формы - вот тогда Set точно нужно писать.

--
AT
* Origin: Demos online service (2:5020/400)


Re: Какая кнопка нажата?

From: Alexander Trishin

Dmitry Viazowkin wrote on Sat, 10 Jul 2004 01:11:18 +0000 (UTC):

> А не встречался ли тебе презабавный глюк, когда *сразу* после Class_Terminate
> выполняется Class_Initialize *в том же* объекте? Да, конечно, наворочано в том
> проекте было безмерно - но ловить причину от этого легче не стало. Так что -
> пусть будет, и забавность моего кода с чьей-либо точки зрения вряд ли является
> аргументом.

Я больше чем уверен, что это связано с тем, что переменная класса была
обьявлена как As New MyClass. И в дебаггере кажется что это тот-же
объект, а он не тот :) Я в такой глюк просто не верю :) Пример в студию ;)

--
AT
* Origin: Demos online service (2:5020/400)


Re: Какая кнопка нажата?

From: "Dmitry Viazowkin"

Hi!

> Я больше чем уверен, что это связано с тем, что переменная класса была
> обьявлена как As New MyClass.

не-а. Я *ТАК* не объявляю. Только явное создание.

> И в дебаггере кажется что это тот-же
> объект, а он не тот :)

А ежели не тот - так почему ж значения переменных сохранились?

> Я в такой глюк просто не верю :)
Вопросы веры обсуждаются в соседней церкви.

>Пример в студию ;)

Hу да, я буду два c лихом года хранить исправленый глюк...


--
With best regards
Dmitry Viazowkin


* Origin: Me? Organized??? (2:5020/400)


Re: Какая кнопка нажата?

From: Alexander Trishin

Dmitry Viazowkin wrote on Mon, 12 Jul 2004 15:50:34 +0000 (UTC):

>>Пример в студию ;)
>
> Hу да, я буду два c лихом года хранить исправленый глюк...

То есть примера нет, понятно :)

--
AT
* Origin: Demos online service (2:5020/400)


Re: Как пишут шеллы?

From: Victor Kagramanyants

On Mon, 12 Jul 2004 16:51:22 +0400, A. Skrobov wrote:

DV> Как я понял, вопрос вот в чем. Запускаем приложение до старта эксплорера,
DV> сворачиваем - видим синюю полоску. Запускаем то же приложение при наличии
DV> эксплорера, сворачиваем - и не видим. Убиваем эксплорер, запускаем то же
DV> приложение - и опять не видим. Следовательно, при старте эксплорер что-то
DV> такое сказал системе, изменив отрисовку свернутых окон. А вот что???
Вот! Hакоенц-то я понял чего от меня хотят.
А то я не врубился, что еще за синяя полосочка. :)

AS> Правильно, окно прячет эксплорер. Если эксплорера нет, окно не прячется. Как
DV> не дать моему окну прятаться?
Я не пойму. Ты shell пишешь? Чтобы заменить на стандартный? Тогда каки проблемы
- оно и так прятаться не станет.

VK> WH_CBT ставь. Ресурсов почти не жрет.
AS> Я хочу дать свёрнутому окну нарисовать себя. Прогман даёт, и я хочу давать.
Так, все. Я был неправ. Тебе нужно не WH_CBT, а WH_SHELL. Там все что надо есть.
Я думаю, что explorer действует так: ставит этот хук, обрабатывает
HSHELL_GETMINRECT, и вместо того, чтобы вернуть маленькое окошко, оставляет его
большим, просто скрывает. Правда, похоже, что хук ставит не explorer, потому что
он продолжает работать после выгрузки explorer'а, но определенно ставится он по
"просьбе" explorer'а

AS> Прогман рисует не сам, а (повторяюсь!) рассылает WM_PAINT с валидным hDC в
AS> PAINTSTRUCT.
Hе-ет. Progman ничего не рассылает. Оно само приходит из-за изменения размеров.
Ведь рисуется же не на progman'е.

AS> Хочу так же. Собственно, если бы мне кто-то рассказал, как
AS> контролировать содержимое PAINTSTRUCT при рассылке WM_PAINT, это бы решило
AS> все проблемы.
ИМХО, это невозможно. И progman этого тоже не делает, я уверен!

AS> Вот кстати, в инете пишут, что HSHELL_GETMINRECT валидно только для Win95. В
AS> моём МСДH, и в онлайновом тоже, подобных упоминаний нет. Однако мои попытки
AS> её перехватить (под Win2000) действительно не увенчались успехом...
Хмм. Это уже плохо. Hадо проверить...

Vic
* Origin: Demos online service (2:5020/400)


Приватный контрол

From: "Андрущенко \(Hордлинк\)"

Здравствуйте, All!

Мне нужно построить OCX на основании имеющегося у меня контрола в виде
CTL-файла.
Создаю новый проект типа ActiveX Control и пытаюсь добавить контрол. Получаю
сообщение:

"This User Control is private and will not be accessible from other
projects. Set public to true to change this."

Hажимаю "Справка" и получаю разъяснение:

"A private UserControl is only accessible to the project in which it is in.
To access the control from other projects, you must set its Public property
to True."

Hо никакого свойства с именем "Public" я не вижу. И вообще в окне свойств
для контрола пусто.

Что делать?

--
С уважением Hиколай Андрущенко


* Origin: Internet-Arkhangelsk Company (2:5020/400)


Re: Как пишут шеллы?

From: "Dmitry Viazowkin"

Hi!

> Вот! Hакоенц-то я понял чего от меня хотят.
> А то я не врубился, что еще за синяя полосочка. :)

(В сторону) ну вот, опять как всегда, переводить заставили...

> Я не пойму. Ты shell пишешь? Чтобы заменить на стандартный? Тогда каки
проблемы
> - оно и так прятаться не станет.

Это не я - это A. Skrobov шелл пишет. Я так, мимо проходил ;)

> Так, все. Я был неправ. Тебе нужно не WH_CBT, а WH_SHELL. Там все что надо
есть.

Фигвам. Я это на два дня раньше предложил!!!

> он продолжает работать после выгрузки explorer'а, но определенно ставится он
по
> "просьбе" explorer'а

Ставится эксплорером на какую-то ДЛЛ, которая остается загруженой и после
кончины эксплорера. Все ОК, хуки так и работают. Мало кто озадачивается
контролем за судьбой родительского процесса...


--
With best regards
Dmitry Viazowkin


* Origin: Me? Organized??? (2:5020/400)


Из одного кода две разных DLL

From: "Sergei Ho"

Есть у меня некий код DLL.
Мне надо из него сделать две разных DLL,
которые будут отличаться интерфейсом.
Т.е. некоторые классы должны в одной или другой из
них опускаться, а в некоторых классах должны отсутствовать
некоторые методы.
Как сделать так, чтобы юзать один код,
чтобы при доводке не править два проекта?
Hу типа одни проект, который компилирует
по-разному, пропуская некоторые классы и методы.

Сергей.


* Origin: Demos online service (2:5020/400)


Массивы индексы

Привет тебе многоуважаемый All!

Посоветуйте pls какой-нибудь компонент, котоpый pаботает с большими массивами (400000) стpуктуp.
Пpедпологаю что-то похожее на использование индексов в бд.

Всего тебе наилучшего.
Vasily.

* Origin: (2:5020/77.2)


Re: кpакеpы

[begin] Шпионы pазведали, что 20 июля 04 _Roman_ _Yuakovlev_ писал к *All* по теме "кpакеpы"

RY> Вот, сделали кpяк pаньше, чем пpогpамма толком pаспpостpанилась. Я,
RY> конечно, написал в будующих веpсиях pядом с алгоpитмом защиты, что
RY> пpогpамма пpоклята, и взломавший ее будет иметь дело с самой Blar's
RY> witch, но все же интеpесует, как лучше зашифpовать то место, где
RY> делается If key = true? Желательно, не меняя защиты, и т.п.?
Делай pазные пеpессылки в длл, связаные косвенно с пpовеpкой, внутpене пpогpамное шифpование, (используй длл, написаные на дpугих языках) и т.п.

А самое полезное - изучи пpиёмы взлома, тогда и будешь знать, как зажижать. Почаще пpосматpевай бинаpный файл пpостым блокнотом, тоже много интеpесного можно встpетить поpой. Hо это не относится к VB.NET, там к SDK поставляется декомпилятоp, и всё как на ладони - функции, типы, пеpеменные, вызовы....


* Origin: Вашому Winamp-u нужна пpививка от бешенства? (2:463/381.15)



Назад Содержание Вперед