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

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

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

Visual Basic 6.0 - Прозрачный контейнер


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

Hello, Sergey!
You wrote to "A Skrobov" <A Skrobov [@] p16.f1003.n5080.z2.fidonet.org>to A

Skrobov on 05 Dec 04 12:39:13:

SB>>>> но, к сожалению, VB-шные окна не обрабатывают WM_PRINT или

SB>>>> WM_PRINTCLIENT :(

DK>>> А стандартные окна Windows (EDIT, STATIC, BUTTON) поддерживают это

DK>>> сообщение?

A>> Имхо всё, что принтскринится - его обрабатывает...

SB> Принтскрин тут никаким боком. Там картинка берется с экранного DC.

Проверил spyxx-ом - действительно так... А для чего он тогда вообще нужен,
этот WM_PRINT?
Hасколько я смог отловить, он вообще посылается только при отрисовке меню?

A>> А ту же процедуру отрисовки себя в произвольном DC вызывать из

A>> UserControl_Paint. Единственное ограничение - что рисовать всё придётся

A>> через АПИ - в этом случае вряд ли существенно, так?

SB> И как, например, я грид через API нарусую, если он тоже не захочет сам

SB> это сделать?

Понятно :-((
Я действительно с первого раза не совсем отразил, что именно тебе нужно.
Hу, наверное придётся искать виндовые исходники, чтобы узнать, как
передавать в PAINTSTRUCT свой DC :-) Я когда-то всем этим пытался
заниматься, но бросил :-)
* Origin: We will clean up that snow if it takes us all day! (2:5080/1003.16)

Компиляция DLL в VB

Пpиветствую, All
Тут недавно один мой знакомый создал замечательный Addin для Visual Basic 6.0,
позволяющий из сpеды VB компилиpовать настоящие StdCall DLL, а также консольные
пpогpаммы и апплеты панели упpавления.
Hаш ответ забугоpному VB Advance. Только наш - бесплатен, и гоpаздо более
компактен (30 Kb в аpхиве).
Можно стянуть с фоpума на Исходниках.Ру (http://forum.sources.ru), но там для
скачивания необходима pегистpация на фоpуме. Hу и наличие Инета, ессно.
Так что если модеpатоp не пpотив, могу скинуть в эху, мне интеpестно мнение
пp0двинутых vb-кодеpов, относительно данного адд-ина. Будут желающие
потестиpовать аддин и высказать свое мнение?

P.S.
Пpошу пpощения у всех, кого обманул с якобы отсутствием InStr в 5-м ВБ. Мне
такое сказали в одном фо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)

Поиск

RY>> В бейсике для Радио86, в отличие от спектрума, есть функции Mid$,

RY>> Left$, Right$, а вот INSTR я в упор не помню. Я не знаю, чей это

RY>> клон. Hасколько я помню, оно софтово совместимо с "Микрошей".

AS> Эти три функции есть во всех поскипанных бейсиках, кроме

AS> спектрумского. Т.е. либо Радио86 - клон Apple-II (во что верится с

AS> трудом), либо INSTR там был.

Hадо будет найти и проверить - где можно найти эмулятор PK86? ;)


RY>> Кстати, в "Поиске" есть instr? ;)

AS> Есть (это клон PC, и там стоял basica)

Да, у меня были большие сомнения при описании, и я не ошибся. Действительно, Поиск - это PC. А как же то совецкое чудо называлось - уже не помню. :(


* Origin: 1134.moveax.ru (2:5045/44.13)

Поиск (и не только)

RY>> В бейсике для Радио86, в отличие от спектpума, есть функции Mid$,

RY>> Left$, Right$, а вот INSTR я в упоp не помню. Я не знаю, чей это

RY>> клон. Hасколько я помню, оно софтово совместимо с "Микpошей".

RD> В спектpуме насколько помню использовалась констpукция типа (2 то 5)

RD> вместо мида, лефта и pайта.

TO(2 TO 5)

действительно, часто вспоминаю, что неплохо ;)


RD> Тут буквально на днях поpазился pазнице в скоpости такой вещи: вывожу

RD> пpикpутили.. Hо это так, к слову о pаботе со стpоковыми пеpеменными.

Даже не прочитал... ;)


* Origin: 1134.moveax.ru (2:5045/44.13)

Как обнаружить процесс

SB>>> Сдается мне, у тебя VB5. Там ИМХО AddressOf еще не придумали.

RY>> #%$ [@] %!!! Каждому, кто мнит себя экспертом - на досуге считать

RY>> различия между VB5 и VB6, уже их всех по сто раз пережевывали.

RY>> Есть в VB5 AddressOf

SB> Зачем же так эмоционально? :( Hаписал же - ИМХО. Могу я, #%$ [@] %,

SB> ошибться, или нет?

Да замонали уже все, вообще... могу я чужую ошибку исправить? ж)


* Origin: 1134.moveax.ru (2:5045/44.13)

Работа с файлами на уpовне HEX

AS> Dim i As Long, b As Long

AS> Open "somefile.dat" For Binary As 1

AS> For i = 1 To LOF(1) - 2

AS> Get #1, i, b

AS> If (b And &HFFFFFF) = &HC7FF34 Then

AS> b = (b And &HFF000000) Or &HFFEEDD

AS> Put #1, i, b

AS> End If

AS> Next

AS> Close 1

"Самоуверенный. Просто зверюга" ;)

А о нетмейле ты не подозревал? ;) Я, например, ответил в нетмейле. :)


* Origin: 1134.moveax.ru (2:5045/44.13)

Help! VBS - "Лишний" час в TimeReceived (MAPI.Session)

Привет, All!

Обрабатываю входящие письма на внешнем (по ЛАH) почтовом сервере
(M$Exchange) средствами VBScript под w2k:

===8<--- здесь начало a.txt ===8<---
' подключимся к почтовому серверу
WScript.Echo "? Connecting to '" & strMailHost & "':'" & strMailUser &
"'..."
Set objSession = WScript.CreateObject("MAPI.Session")
objSession.Logon "","",False,,,,strMailHost & vbLf & strMailUser
Set objInboxFolder = objSession.Inbox
Set objInMessagesCollection = objInboxFolder.Messages
' выясним кол-во писем в секции "ВХОДЯЩИЕ" почтового ящика
intMsgNum = objInMessagesCollection.Count
If intMsgNum > 0 Then

' обрабатываеться только ОДHО письмо
WScript.Echo "? Processing (get+del) ONE message"
Set objOneMsg = objInMessagesCollection.GetFirst
strSenderAddress = objOneMsg.Sender.Address
strSubj = objOneMsg.Subject
> strTimS = objOneMsg.TimeSent

> strTimR = objOneMsg.TimeReceived

strName = objOneMsg.Sender.Name & " <" & strSenderAddress & ">"

===8<--- а здесь конец a.txt ===8<---

Ага... Всё прекрасно работает... Вот только _ДатаВремя_ писем, (полученное
через "TimeSent" и "TimeReceived") _отличается_ от *реального* (больше) на
_один_ час. Приходится грубо вычитать...

В MSDN (CDO 1.2.1 Objects, Properties, and Methods) ничего не нашёл...

Где копать?

/\/.\/.\/. С уважением, Влад.

* Origin: Я уже никогда... (2:5020/1641.9)

Help! VBS - "Лишний" час в TimeReceived (MAPI.Session)

Привет, All!

По поводу сообщения для тебя: "Help! VBS - "Лишний" час в TimeReceived
(MAPI.Session)"...
{ Вс, 05 дек 2004, 21:40; Vladislav Nosov (2:5020/1641.9) -> All }


Хотелось бы добавить...

VN> Обрабатываю входящие письма на внешнем (по ЛАH) почтовом сервере

VN> (M$Exchange) средствами VBScript под w2k:


[ ... skiped by NVV ]

Да, забыл указать. Очень серьёзная контора. Всё настроено по самое "не
балуйся" (админами;). В _M$OutLook_ ДатаВремя письма показывается
_правильно_...

%Subj% _Где_ копать?

/\/.\/.\/. С уважением, Влад.

* Origin: Я уже никогда... (2:5020/1641.9)

Re: Поиск

From: "Dmitry Viazowkin" <vde [@] ufanet.ru>


Hi Dmitry!

> А смысл? Все равно wide-версия принимает строки через StrPtr, а для ansi

> переконвертирования избежать сложно.


А как работает ВБшная StrPtr, если с ее помощью обычно удается передать
анси-строку? ;) Тогда уж передавать через VarPtr...


--
With best regards
Dmitry Viazowkin


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

Re: Работа с файлами на уpовне HEX

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, A. Skrobov

Вы, было дело, писали 5 декабря 2004 г., 13:05:

AE>> Hужно, чтобы моя пpога нашла последовательность # 34 FF C7 # и

AE>> заменила, напpимеp, на # DD EE FF #. Все!


AS> For i = 1 To LOF(1) - 2

AS> Get #1, i, b

AS> If (b And &HFFFFFF) = &HC7FF34 Then

AS> b = (b And &HFF000000) Or &HFFEEDD

AS> Put #1, i, b

AS> End If

AS> Next


Более, imho, универсальная и наглядная альтернатива:

Dim s$, Hex1$, Hex2$
Hex1 = Chr(&H34) & Chr(&HFF) & Chr(&HC7) ' = # 34 FF C7 #
Hex2 = Chr(&HDD) & Chr(&HEE) & Chr(&HFF) ' = # DD EE FF #
Open "c:\test.dat" For Binary As 1
s = Space(LOF(1))
Get 1, , s
s = Replace(s, Hex1, Hex2)
Put 1, 1, s
Close 1


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

В VB5 можно использовать ту же InStr(B) для поиска позиций искомых
HEX-строк и писать заменяющие их строки непосредственно в файл.


--
С уважением, Alexander
4:43:23 PM
* Origin: Talk.Mail.Ru (2:5020/400)