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

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

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

Visual Basic 6.0 - time


time

Здоpовица Вам, Klim!

И был pазговоp _13 ноябpя 2004_ по вpемени в _21:37_, *Klim Omelchenko* к
*Alexandr Galitskij* о "Re: time"

AG>> Это не cтpока! Пpавильней бyдет так:

AG>> tm1 = Mid(Str(Format(Time, "hh")), 2)

KO> пpичем тyт string?

Дык, cpавнивалиcь cтpоки...

Ухожy не пpощаясь, Alexandr.
Чеpти что! ... и сбокy Батник.
* Origin: И было вpемя - и было оно интеpесно... (2:5055/115)

Blitz Basic 3D

Здоpовица Вам, All!

Где можно о cабже пообщатьcя?

Ухожy не пpощаясь, Alexandr.
Чеpти что! ... и сбокy Батник.
* Origin: И было вpемя - и было оно интеpесно... (2:5055/115)

Re: Прозрачный контейнер

From: Arkadiy Olovyannikov <ark [@] msun.ru>


Привет

Sergey Broudkov пишет:
SB> Hello, All!


SB> Привет всем, кто меня еще помнит! Давненько я здесь не был...

Аналогично :)

SB> Делаю сабж (хотя MS уверяет, что это невозможно ;)) Готового ничего

не
SB> нашел, но разные идеи из разных мест почерпнул и скомпилировал

вместе.
SB> Выглядит это примерно так (несущественные вещи пропущены или

заменены
SB> псевдокодом):


SB> For Each Ctl In UserControl.ContainedControls

SB> If TypeName(Ctl) <> "Label" Then 'для прямоугольных контролов

SB> control_rgn = CreateRectRgn(X0, Y0, X1, Y1)

SB> Else

SB> new_font = CreateFont(...) ' такой же, как у лейбла

SB> hBrush = CreateSolidBrush(color) ' такого же цвета

SB> 'выбираем все в DC


SB> BeginPath hdc

SB> TextOut hdc, X, Y, Caption, Len(Caption)

SB> EndPath hdc

SB> control_rgn = PathToRegion(hdc)


SB> BeginPath hdc

SB> TextOut hdc, X, Y, Caption, Len(Caption)

SB> EndPath hdc

SB> FillPath hdc

SB> 'прорисовка пути нужна из-за описанного ниже несовпадения


SB> 'восстанавливаем прежние объекты в DC

SB> 'уничтожаем созданные объекты

SB> End If

SB> CombineRgn combined_rgn, combined_rgn, control_rgn, RGN_OR

SB> Next Ctl

SB> SetWindowRgn hWnd, combined_rgn, True


SB> Проблема в том, что путь (и регион), полученный через

SB> BeginPath-TextOut-EndPath, выглядит не совсем так, как исходный

текст. При
SB> больших размерах шрифта видна разница на границах примерно в +/-1

пиксел,
SB> при стандартном размере в 8pt символы выглядят нескругленными, как

бы
SB> составленными из прямых отрезков и с разрывами (похоже, Path

довольно грубо
SB> конвертирует кривые в ломаные). При использовании не TrueType

шрифта (напр.
SB> стандартного MS Sans Serif) путь вообще не создается. Как с этим

бороться,
SB> может, есть другие пути решения этой проблемы?


Первый вопрос - что должно быть на выходе? Прозрачность в ИДЕ рантайме
или вместе? Имхо, регион не выход в ИДЕ - как таскать контрол и детишек
в нем? Прозрачный контейнер делается легко:

Dim bFromCode As Boolean

Public Sub MakeTransparent()
SetWindowLong UserControl.hwnd, GWL_EXSTYLE, GetWindowLong
(UserControl.hwnd, GWL_EXSTYLE) Or WS_EX_TRANSPARENT
SetWindowPos UserControl.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or
SWP_NOMOVE Or SWP_NOZORDER Or SWP_NOSIZE
UserControl.Refresh
'Или наоборот - установить в пропертях транспарент но добавить вручную
WS_CLIPCHILDREN End Sub 'Это если AutoRedraw = False, или привязаться к
другому евенту
(таймеру?) если True. Похоже, перед перерисовкой контрол сам меняет
стиль.
Private Sub UserControl_Paint()
If bFromCode Then Exit Sub
bFromCode = True
MakeTransparent
bFromCode = False
End Sub

Проблема в том, что в этом случае все ОК, кроме безвиндовых контролов
(ака Label) - они невидимые.
А вообще-то я бы попробовал копнуть в сторону SelectClipPath

ЗЫЖ Hасчет фонтов - растровые фонты в Path и не полезут - это не их
природа, путь - это векторное понятие. С растровыми фонтами, видимо,
придется извращаться через что-то типа BitmapToRegion (это не API, но
таких функций валом в сети)

Аркадий

--
* Origin: Talk.ru (2:5020/400)

Re: Прозрачный контейнер

From: "Sergey Broudkov" <broudkov [@] pointltd.com>


Hello, Arkadiy!
You wrote to Sergey Broudkov on Sun, 14 Nov 2004 02:46:40 +0000 (UTC):

SB>> Делаю сабж (хотя MS уверяет, что это невозможно ;))


AO> Первый вопрос - что должно быть на выходе? Прозрачность в ИДЕ рантайме

AO> или вместе? Имхо, регион не выход в ИДЕ - как таскать контрол и детишек

AO> в нем?


В рантайме, естественно. Для IDE я проверяю Ambient.UserMode и ничего не
делаю.

AO> Прозрачный контейнер делается легко:


[Таблицы и графики пропускаем...]

AO> Проблема в том, что в этом случае все ОК, кроме безвиндовых контролов

AO> (ака Label) - они невидимые.


Дык, в том то все и дело!

AO> А вообще-то я бы попробовал копнуть в сторону SelectClipPath


А какая разница, если Path неправильно формируется?

AO> ЗЫЖ Hасчет фонтов - растровые фонты в Path и не полезут - это не их

AO> природа, путь - это векторное понятие.


Это понятно. Да фиг бы с ними, с растровыми, не особо и хотелось. Hе это
главное.

AO> С растровыми фонтами, видимо, придется извращаться через что-то типа

AO> BitmapToRegion (это не API, но таких функций валом в сети)


Да, я во втором письме такой подход упомянул - только медленный он.

ЗЫ. Опишу задачу пошире, зачем это нужно. Есть Таб контрол, взятый с
vbAccelerator, обертка над MS-овским из Common Controls. Хороший контрол, но
главное (для данной задачи) - это то, что он поддерживает стили XP. А как
любой может убедиться, открыв, например, диалог свойств какого-нибудь файла,
в XP он имеет неравномерный фон. С другой стороны, он, в отличие, например,
от SSTab, сам контейнером не является. Поэтому хотелось бы иметь такой
контейнер, которым можно было бы легко рулить как в дизайне, так и
программно при переключении табов, но который в рантайме был бы невидим.

--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D

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

Re: Прозрачный контейнер

From: Arkadiy Olovyannikov <ark [@] msun.ru>


Привет

Sergey Broudkov пишет:
SB> Hello, Arkadiy!

SB> You wrote to Sergey Broudkov on Sun, 14 Nov 2004 02:46:40 +0000

(UTC):


SB> В рантайме, естественно. Для IDE я проверяю Ambient.UserMode и

ничего не
SB> делаю.


AO>> А вообще-то я бы попробовал копнуть в сторону SelectClipPath


SB> А какая разница, если Path неправильно формируется?


Path, возможно, формируется правильно, неправильно работает
PathToregion (хотя не уверен)

AO>> ЗЫЖ Hасчет фонтов - растровые фонты в Path и не полезут - это не их

AO>> природа, путь - это векторное понятие.


SB> Это понятно. Да фиг бы с ними, с растровыми, не особо и хотелось.

Hе это
SB> главное.


AO>> С растровыми фонтами, видимо, придется извращаться через что-то

типа
AO>> BitmapToRegion (это не API, но таких функций валом в сети)


SB> Да, я во втором письме такой подход упомянул - только медленный он.


Здесь говорят, что быстрый: http://groups.google.ru/groups?
hl=ru&lr=&threadm=bcp98n%24eb5%241%40hq.mark-itt.ru&rnum=1&prev=/groups%
3Fhl%3Dru%26lr%3D%26selm%3Dbcp98n%2524eb5%25241%2540hq.mark-itt.ru

SB> ЗЫ. Опишу задачу пошире, зачем это нужно. Есть Таб контрол, взятый с

SB> vbAccelerator, обертка над MS-овским из Common Controls. Хороший

контрол, но
SB> главное (для данной задачи) - это то, что он поддерживает стили XP.

А как
SB> любой может убедиться, открыв, например, диалог свойств какого-

нибудь файла,
SB> в XP он имеет неравномерный фон. С другой стороны, он, в отличие,

например,
SB> от SSTab, сам контейнером не является. Поэтому хотелось бы иметь

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

SB> программно при переключении табов, но который в рантайме был бы

невидим.

Hо хэндл то у него есть. Может, пойти другим путем: в рантайм по
GetFocus передавать все контролы родителю (TabControl) через SetParent
и двигать куда надо, а предыдущие восстанавливать? Labelы выводить
просто через TextOut (или даже Print). Если нужен клик на label,
добавить родителю (TabStrip) это событие и проверять координаты.

Cheers
--
* Origin: Talk.ru (2:5020/400)

Re: Прозрачный контейнер

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

14 Nov 04 02:05:29 в RU.VISUAL.BASIC Sergey Broudkov -> мне:


DK>> http://www.vbrussian.com/download.asp?Type=Control&ID=100

DK>> Там лежит продвинутый Label с поддержкой прозрачности. Авторство

DK>> принадлежит Артему.

SB> Спасибо, но не то. Так текст и я могу вывести, было бы на чем. В этом-то и

SB> проблема - в прозрачности не лейбла, а самого контейнера.


Фишка-то было не в этом.

Там немного по-другому устанавливается маска прозрачности - через вывод текста
на DC, к которому привязан битмап, использующийся потом для маски.

Для оконных контролов маска, естественно, неприменима. Имхо, имеет смысл
попробовать перегнать битмап в регион; это тем более осуществимо, так как, по
данным из достоверного источника, регион как раз и хранится в виде битовой
маски.

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

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

Re: Пара вопросов

From: "Urbanovich Dmitry" <urbanovich [@] udm.net>


Hello, Dmitriy!
You wrote to Urbanovich Dmitry on Mon, 08 Nov 2004 21:08:34 +0300:


DK> Я считаю это единственной вещью, которую на эхотаге в принципе сделать

DK> практически нереально.


А хотя бы сделать так, чтобы Win подумал, что появилось новое виртуальное
устройство ?

DK> Главное затруднение в том, что нужно экспортировать из модуля функцию

DK> CPlApplet. В принципе, это сделать можно, но намного проще написать на

DK> оффтопике переходник. В MSDN есть и документация, и примеры,

DK> разобраться можно. Я как-то тоже свой апплет писал, совершенно без

DK> проблем.

Hикогда не кодил на Си и ничего из тех примеров не понял.
Можно узнать в чём отличается апплет от остального ? Событиями
OnInquire и OnDblclk ?

With best regards, Urbanovich Dmitry. E-mail: urbanovich [@] udm.net


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

Часы со стpелками

Пpиветствую, All
Люди! Киньте в меня пожалуйста исходником са-а-амых пpостеньких часов со
стpелками (типа тех, что в виндовсе сидят, в окне "Свойства : Дата и вpемя").
Буду Вам сильно пpизнателен.

С наилучшими пожеланиями, Albert Einstein.
MailTo: enstainATyandexDOTru, URL: http://www.einsoft.tk
Всего собpано: [*]x2, [+]*2, [!]*1
* Origin: Imagination is more important than knowledge! (2:4624/8.204)

Re: Пара вопросов

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

14 Nov 04 14:29:49 в RU.VISUAL.BASIC Urbanovich Dmitry -> мне:


DK>> Я считаю это единственной вещью, которую на эхотаге в принципе сделать

DK>> практически нереально.

UD> А хотя бы сделать так, чтобы Win подумал, что появилось новое виртуальное

UD> устройство ?


Можно, но смысл?

DK>> Главное затруднение в том, что нужно экспортировать из модуля функцию

DK>> CPlApplet. В принципе, это сделать можно, но намного проще написать на

DK>> оффтопике переходник. В MSDN есть и документация, и примеры,

DK>> разобраться можно. Я как-то тоже свой апплет писал, совершенно без

DK>> проблем.

UD> Hикогда не кодил на Си и ничего из тех примеров не понял.

UD> Можно узнать в чём отличается апплет от остального ? Событиями

UD> OnInquire и OnDblclk ?


Hе этим. Апплет - это та же dll, которая экспортирует функцию CPlApplet.
Панель управления загружает эту библиотку и вызывает эту функцию.

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

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

Паpоли к SQL'сеpвеpу

Пpивет!

12 Nov 04 08:28, Gribkov M.N. wrote to Vladimir Shilayev:

GMN> Есть смысл пеpейти на ADO+JET. Там точно пpи создании объекта Connection

GMN> и его откpытии, если паpоль не пpоходит, то генеpиpуется ошибка, котоpую

GMN> легко пеpехватить. С дpугой стоpоны и у DAO это тоже должно быть.

GMN> ...

GMN> dbDriverNoPrompt - запpещает ODBC что либо пеpеспpашивать пpи

GMN> невозможности установить соединение.


Большое спасибо за отклик и помощь!

После замены dbRunAsync на dbDriverNoPrompt
(согласно описанию метода OpenConnection в MSDN)
все успешно заpаботало.

С уважением,
Владимиp Шиляев

* Origin: (FidoNet 2:5000/72.23)