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

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

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

Visual Basic 6.0 - Изображение на кнопке


Re: Изображение на кнопке

From: "A. Skrobov" <tyomitch [@] r66.ru>


Hello, Sergey!
You wrote in conference fido7.ru.visual.basic to "Андрущенко (Hордлинк)" <fido7.ru.visual.basic [@] talk.ru>to Андрущенко \(Hордлинк\)

on Sun, 7 Mar 2004 23:58:01 +0000 (UTC):


AH>> А может быть, всё вообще решается намного проще?

SM> Проще вряд ли, но альтернативы есть:

[Sorry, skipped]
- сделать обычный PictureBox и через DrawFrameControl (DFC_BUTTON) отрисовывать рамку в нужном месте


--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022
* Origin: Talk.Mail.Ru (2:5020/400)

Re: Перерисовка & Обновление

From: "A. Skrobov" <tyomitch [@] r66.ru>


Hello, Aleksandr!
You wrote in conference fido7.ru.visual.basic to "All" <fido7.ru.visual.basic [@] talk.ru>to All on Sat, 06 Mar 2004 18:06:54 +0300:


AP> 1) Если на форме программой рисуется рисунок (через Paint,Line и т.д.),

AP> то как покультурнее его изменить (примерно на половину его надо менять при

AP> некотором событии) без перерисовки, т.к. рисунок большой и я не уверен за скорость

AP> перерисовки на чужом компьютере, а это должно делаться быстро?

- ставишь AutoRedraw = False
- субклассишь WM_PAINT
- в обработчике получаешь и запоминаешь GetUpdateRgn
- там же делаешь ValidateRect всего окна
- в событии _Paint рисуешь только те части, которые попадают в регион обновления
- если какие-то вещи нужно обновить насильно, вызываешь для них InvalidateRect и рисуешь при следующем обновлении окна; общий
принцип - рисовать _только_ в событии _Paint
имхо так получается быстрее всего; это не догадка, я именно так щас прогу пишу, и на описываемую технологию вышел методом проб и
ошибок.

AP> 2) Если создается программа, которая за небольшой период времени ~1

AP> месяц будет добавляться и обновляться, то как это лучше всего сделать? Я предполагаю

AP> создать программу базу, в которой будут основные данные, не подлежащие

AP> обновлению и пара-тройка модулей для чтения и редактирования обновлений.

AP> Обновления собираюсь создавать как ini-файл. Хотелось бы узнать,

AP> занимался ли кто-нить чем-то подобным, какие трудности могут с этим возникнуть, а так

AP> же есть ли более рациональные методы решения этого вопроса? Программа для

AP> свободного распространения среди небольшой группы людей (которые, кстати

AP> и будут обновлять и добавлять, моя задача создать именно базу), поэтому

AP> никакой кодировки, паролей и прочего для обновлений ненужно, "открытость" будет

AP> даже лучше и полезнее.

Специально ради этого создавалась технология COM. Так что просто сделай из изменяющихся частей ActiveX DLL.


--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022
* Origin: Talk.Mail.Ru (2:5020/400)

Проверка связи

From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>


Проверка связи

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


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

Re: типы данных

Мы где-то виделись, Sergey?

06 Mar 04 20:21:24 в RU.VISUAL.BASIC Sergey Lagovskiy -> All:


SL> Как можно перебрать циклом внутри типа, определенным пользователем.

SL> Т.е.

SL> Type SomeType

SL> S as Long

SL> O as Integer

SL> M as Long

SL> E as Byte

SL> End Type


SL> Dim v as SomeType


SL> и не набирать

SL> v.S = ...

SL> v.O = ...


SL> а сделать это в цикле, при этом можно даже не знать названий внутри типа,

SL> а просто прочитать, что так записано, но читать нужно в том порядке, в

SL> котором определил пользователь.


Если этот тип - публичный (т.е. либо импортирован из другой библиотеки, либо,
наоборот, экспортируется из публичного класса), то, возможно, тебе сможет
помочь TypeLib Info.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: Правильный формат

Мы где-то виделись, Sergey?

06 Mar 04 20:07:10 в RU.VISUAL.BASIC Sergey Lagovskiy -> All:


SL> Щас попытаюсь объяснить задачу, а там посмотрим, что из этого получится.

SL> В общем имеем переменную типа Variant\String, но по ходу дела, может быть

SL> все же стоит выбрать другой тип. В эту переменну складываются данные

SL> разных типов, но складывать нужно по определенным правилам, т.е. если

SL> добавляем строку, то она и добавляется по символьно, если ложим байт, то

SL> опять один символ, если ложим целое(двух байтовое), то оно не должно

SL> добавиться просто числом, а должно разбиться на эти самы два байта и

SL> положиться, каждый байт по символу и так далее... В общем предполагается,

SL> что кидаются 4-е типа данных строка, байт, целое, длинное целое, и

SL> соответственно нужно собрать это все в одну строковую переменную, где под

SL> каждый тип данных выделяется строго определенное место в байтах.

SL> Посоветуйте как быть?


Посмотри на сайте Edanmo (www.domaindlx.com/e_morcillo/) библиотеку для работы
с Storage.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Изображение на кнопке

From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>


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

Мне нужно положить на командную кнопку (а точнее - на OptionButton в
гра-фическом режиме) изображение - так, чтобы в левой части кнопки было это
изображение, а правее - текст. Поскольку в свойствах OptionButton не
предусмотре-но "форматирование" изображения, пришлось на кнопку положить
PictureBox. Hо фактически получается, что он лежит не на кнопке, а на форме,
т. е. хоть _территориально_ он расположен на кнопке, но контейнером для него
является форма. В результате:

- когда нажимаешь на кнопку, то PictureBox не смещается влево и вниз, как
было бы, если бы он принадлежал кнопке;

- у нажатой кнопки цвет меняется, но поскольку контейнером для PictureBox
является реально форма, а не кнопка, то из-под PictureBox просвечивает цвет
формы, а не цвет нажатой кнопки.

Первая проблема в принципе решается легко программным путем.
Вторую тоже можно было бы решить, если знать, какой цвет присваивается
нажатой кнопке. Hо мы нигде не нашли определение этого цвета.

А может быть, всё вообще решается намного проще?

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


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

Re: Изображение на кнопке

From: "Sergey Merzlikin" <sm [@] smsoft.ru>


>

> Первая проблема в принципе решается легко программным путем.

> Вторую тоже можно было бы решить, если знать, какой цвет присваивается

> нажатой кнопке. Hо мы нигде не нашли определение этого цвета.


Каждый второй пиксел в шахматном порядке красится цветом vb3DHighlight,
остальные остаются vbButtonFace.

>

> А может быть, всё вообще решается намного проще?


Проще вряд ли, но альтернативы есть:

- Если надпись на кнопке не меняется, заранее сформировать картинку с
надписью, и присвоить ее свойству Picture, а Caption кнопки сделать пустым.
Hедостаток - шрифт и цвет текста могут не совпадать с пользовательскими
настройками.
- Формировать картинку с надписью динамически в скрытом Picture или
Memory DC, и затем копировать в свойство Picture кнопки. Hедостаток -
сложнее, требуется API, необходимо отслеживать изменение пользовательских
настроек, чтобы переформировать картинку (сабклассинг главного окна с ловлей
WM_SYSCOLORCHANGE и WM_SETTINGCHANGE).
- Рисовать и формировать надпись прямо на кнопке в обработчике WM_PAINT.
Hедостаток - требуется сабклассинг кнопки.
- Использовать Тулбар.
- Сделать UserControl, выглядящий так, как хочется.


--
Сергей Мерзликин
http://www.smsoft.ru/ru/
* Origin: Sovintel (2:5020/400)

ScrollBar & manifest

From: "Sergei Ho" <calendarman [@] mtu-net.ru>


В программе есть ScrollBar.
Если я кладу в папку программы manifest,
то под WinXp у этого контрола появляется новое свойство:
по правому клику открывается менюшка с пунктами
движения и листания ScrollBar.
Как это меню запретить для отдельных ScrollBars?

Сергей


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

Search and Replace

H!, _[All]_!
*----begin PE files----*
MZ?   яя ё [@] А є ? H!ё$ ЩKДЫ?*Є??*Є??*Є?6¤??*Є?ф5???*Є?t5??*Є?Rich?*Є? PE L
*----end PE files----*

Вопpос:
Как можно откpыть exe-файл, найти какое-нибудь слово(напpимеp *This*) и заменить на *What*?
Заpанее спасибо.

g'bye and g'luck, _[All]_!
* Origin: S2k - http://revengecrew.org (2:5054/29.33)

Файл

H!, _[All]_!
1. Как узнать дату создания файла на сеpвеpе?
2. Как скачать файл из пpимеpа(чтобы pаботало, как в 98 так и в XP)?
Пpимеp: http://ввв.мегасайт.pу/тут_файл.pаp

Thx.


g'bye and g'luck, _[All]_!
* Origin: Down/Upload Soft - [SVALKA.TK] (2:5054/29.33)