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

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

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

Visual Basic 6.0 - Патч


Re: Патч

From: Mike <mikeNOS [@] skeptik.net>


Alexander Abramencov wrote:
> Как сделать на VB патч файлов? Т.е. ищем нужное смещение, нужный байт, заменяем

> байт на дpугой. Есть ли готовые пpимеpчики? Искал в ссылках FAQ-a не нашёл или

> плохо искал. Спасибо.

> Пpимеp:

> 0065D07B: D5 4A

> 0065D07C: 3B 47


А что, разве обычные
Open "vasya.pup" For Binary Access Read Write As #1 Len=1
Seek(1)
и т.д. - не работают?

--
Best regards
(M)ike
При ответе на e-mail убрать из адреса NOS

* Origin: Best antimagic/antiUFO cure: http://skeptik.net (2:5020/400)

exe+exe=exe

H!, _[All]_!
Есть откомпилиpованный VB exe-файл и C++ exe-файл. Можно ли их склеить? Чтобы можно было вызвать из VB файла -> C++ файл? Тупость, но всё.


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

Re: exe+exe=exe

From: Mike <mikeNOS [@] skeptik.net>


Alexander Abramencov wrote:
> Есть откомпилиpованный VB exe-файл и C++ exe-файл. Можно ли их склеить? Чтобы

> можно было вызвать из VB файла -> C++ файл? Тупость, но всё.


В каком смысле склеить? Если C++ файл уже откомпилирован, то спокойненько
вызываем из VB exe: Shell("C:\VASYA\PUPKIN.EXE", 1)

А если ты хочешь файлы (исходники) на VB и на C++ откомпилировать в одном
проекте, Visual Studio .net поможет отцу русской демократии.

--
Best regards
(M)ike
При ответе на e-mail убрать из адреса NOS

* Origin: Best antimagic/antiUFO cure: http://skeptik.net (2:5020/400)

LPT

From: Dmitry Miloserdov <dim [@] kemtel.ru>


Привет, All,

Преамбула:
Купил я тут совершенно случайно notebook. 486DX2 4МБ ОЗУ 256МБ диск:))
Если на ногу упадет - все! Кранты. Ампутация.
Hу не смог я отказаться - от ностальгии комок подкатил к горлу. Так бы
и умер, если бы не взял. :) Хозяин, барыга, просил за него 60 баксов.
Два часа гонял на нем Пакмана и Водопроводчика. Слезы умиления чуть не
замкнули и без того почти убитую клаву нота... Hо и это еще не все!
Hаберите в легкие воздуха!(С) Я HА HЕГО ВИHДУ ПОСТАВИЛ! И VB5CCE! И
ВЕСЬ ПАКЕТ МАСМА ОТ ХАТЧА! Вот теперь плавно приближаемся к "амбуле" :)

Захотелось мне подружить файловые системы двух машин. А для этого
нужен некий интерфейс - пайп, с которым общаются клиент/сервер.
Сетевой карты на ноутбуке нет. Модем - тоже, один на двоих. А тут как
раз друг в своем бардаке нашел LPT кабель для соединения двух
компьютеров. Уже перепробовал несколько утилит - все не то. Фастлинк,
как и нортоновская прилада к коммандеру забили на длинные имена файлов
и кириллицу, работают только в своем виртуальном пространстве.
Прямое кабельное соединение? Захотело оно NetBeos на моих машинах
поставить и расшарить файлы. Счас! А тут с парнишкой как раз в этой
эхе общались по поводу портов - и пришла в голову идея: а что, если с
LPT работать как с неким виртуальным файлом? МСДH, кажется, не против.
И сетевые протоколы ставить не надо. Hабросал я такую тестовую
программку:

'Client
Private Sub cmdReceive_Click()
Dim sTemp As String
Dim i As Long
Open "LPT1" For Input As #1 Len = 1
Do
i = i + 1
Input #1, sTemp
Text1.Text = Text1.Text & sTemp
DoEvents
Loop While ((Not EOF(1)) And (i < 256))
Close #1
End Sub

'Server
Private Sub cmdSend_Click()
Dim sText As String
Dim i As Long
sText = Left$(Text1.Text & String(512, "."), 512)
Open "LPT1" For Output As #1 Len = 1
Do While i <= 256
i = i + 1
Write #1, Mid$(sText, i, 1)
DoEvents
Loop
Close #1
End Sub

Hо не идет ни в какую! Сервер пыжится, отправить что-то хочет, но
ничего у него не получается. Клиент - аналогично. Только три волшебные
кнопки их из ступора и выводят. И это хоть басиковым OPEN, хоть
апишным CreateFile - все едино.

Эпилог:
Кто копал в эту сторону? Я-то вообще, принтеровским портом впервые
занялся. Буду признателен за любую полезную информацию.

--
Best regards,
Dmitry Miloserdov

- [if it ain't broke, don't fix it] -
* Origin: http://www.softmajor.com (2:5020/400)

Re: ComPorts

From: Dmitry Miloserdov <dim [@] kemtel.ru>


Привет, Igor,
Monday, January 19, 2004, 5:34:07 AM, ты писал:

IK> #/-----/# · ···-=Ё Hello _Dmitry_ !

IK> _*-----*_ L===============--····· · · ·

IK> 12 января 2004 22:37, _Dmitry Miloserdov_ == /Igor Krinetsky/:

DM>> From: Dmitry Miloserdov <dim [@] ************>

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hастрой свой мейлер на более дружелюбное отношение к получателям.
Я, конечно, несказанно рад, что ты меня аж три раза упомянул в шапке
сообщения, а так же указал е-мыл для роботов, но тем не менее, мне это
кажется немного излишним.

DM>> Вот кусок программы:

DM>> Public Function Send_RTS(ComPort As String, bValue As Boolean) As

....
DM>> End Function

Опять же я думаю, не стоило цитировать весь текст программы - я его
помню. А если забуду - так он у меня сохранился и в исходнике и в
копии сообщения, которое я отправил.

IK> Спасибо,что-то не так оно работает и что такое это WriteLog

IK> У меня DTR signal и RTS должны работать вместе contol с этим справляется,

IK> а тут только RTS и работает

IK> У меня RTS - прием/передача

IK> DTR - ключ (Morse)


WriteLog - самая важная функция в том коде. Без нее - никуда. Это я
понял за пять лет общения с юзерами :) Хитрый мелкософт скрывает эту
очень важную фичу, но я тебе этот секрет открою:
Активируют эту функцию так:

Public Sub WriteLog(msg as string)
if instr(1,Command,"DEBUG",vbtextcompare)>0 then

open app.name & ".log" for append as #1
write #1, msg
close #1
end if
end sub

Теперь если вредный юзер тебе говорит - твоя программа глючит! Ты
пришли ему BAT файл, в котором вызываешь свою программу с ключом debug
и попроси его прислать тебе файлик "твоя_программа.log". Может быть,
юзеру это и не поможет, но тебе - обязательно!

По поводу DTR/RTS - посмотри внимателнее на функцию EscapeCommFunction
и ее описание в SDK. Работать должно. Просто или ты неправильно
скопировал, или я где-то ошибся при вставке.
Так же обрати внимание на константы:
CLRDTR Clears the DTR (data-terminal-ready) signal.
CLRRTS Clears the RTS (request-to-send) signal.
SETDTR Sends the DTR (data-terminal-ready) signal.
SETRTS Sends the RTS (request-to-send) signal.

--
Best regards,
Dmitry Miloserdov

* Origin: http://www.softmajor.com (2:5020/400)

Re: Просмотр больших файлов

From: Mike <mikeNOS [@] skeptik.net>


Stok wrote:
> вероятнее всего, с ним та же история. Кстати, тамошний блокнот тоже их уже

> не грузит, а использовать шеллом Write, Excel и проч. слишком тормозно.


Если можно не писать самому, а достаточно найти виндовую 16-разрядную
прогу, которая умеет просматривать и печатать большие файлы, покопайся
где-нибудь на freeware.ru.

--
Best regards
(M)ike
При ответе на e-mail убрать из адреса NOS

* Origin: Best antimagic/antiUFO cure: http://skeptik.net (2:5020/400)

Re: Ссылка в IE

From: Mike <mikeNOS [@] skeptik.net>


Savelov Anton wrote:
> AB>> Shell "start http://www.yourdomen.com"

> AA> Thx. Hо с мылом такое не пpокатит. :)

>

> Е-мое, о чем спор! Гляди в сторону ShellExecute в API!

> Call ShellExecute (hwnd, "Open","mailto:owl5053 [@] mail.ru","",app.path,1)


Кстати, а как вызывать API-ные функции из VB, чтобы не было проблем? Ведь
аргументами там должны быть Си-шные строки, заканчивающиеся нуль-символом.
Или VB автоматически конвертирует?

--
Best regards
(M)ike
При ответе на e-mail убрать из адреса NOS

* Origin: Best antimagic/antiUFO cure: http://skeptik.net (2:5020/400)

Проблема с VBA

Привет /*Пауков*/ /*Сергей Владимирович*/ ! Как живете? Можете?

21-Jan-04 20:33:08, Пауков Сергей Владимирович писал к All
*По* *теме* : Проблема с VBA

ПСВ> дHАПHЦH БПЕЛЕМХ ЯСРHЙ, БЕКХЙХИ нКК!


ПСВ> лHФЕР ЙРH ОHЯЙЮФЕР ЙЮЙ ПЕЬХРЭ РЮЙСЧ ОПHАКЕЛС:

ПСВ> -ЕЯРЭ ЙМХЦЮ Excel, Б МЕИ 4 КХЯРЮ.

ПСВ> ОПХ ОЕПЕУHДЕ Я HДМHЦH МЮ ДПСЦHИ ЛЕМЪЧРЯЪ ОЮПЮЛЕРПШ HРHАПЮФЕМХЪ РХОЮ

ПСВ> ЯЕРЙХ,

ПСВ> ЪПКШВЙHБ КХЯРHБ.

ПСВ> - ЕЯРЭ ЛЮЙПHЯ, БШОHКМЪЧЫХИ ЯОЕЖХЮКЭМСЧ БЯРЮБЙС Я HДМHЦH КХЯРЮ МЮ ДПСЦHИ.

ПСВ> оПHАКЕЛЮ - ДЮЕР HЬХАЙС ЛЕРHДЮ SpecialPast, ОХЬЕР, ГЮБЕПЬЕМ МЕЙHПЕЙРМH.

ПСВ> еЯКХ

ПСВ> HРЙКЧВХРЭ ЛЮЙПHЯ, ЛЕМЪЧЫХИ ОЮПЮЛЕРПШ, РH БЯЕ HЙ, МH СФ АHКЭМH ЛЮЙПHЯ

ПСВ> МСФЕМ.

ПСВ> ГЮПЮМЕЕ ЯОЮЯХАH

ПСВ> __________________________________________________________________

ПСВ> Sergey

ПСВ> Paukov ICQ#: 73045197 Current ICQ status: + More ways to contact me

ПСВ> __________________________________________________________________


По-моемy, y тебя не с VBA пpоблема...

-=> Крепко жму горло, искренне Ваш, Артем Прохоров, MCSD <=-

www.sly2m.da.ru sly2m [@] mail.ru ICQ:35387403

* Origin: Инженер механических душ... (2:5064/5.33)

chm

||*()*|| Ах это вы, Alexander ? А я вас не узнал без санитара...

21 янв 04 года ты писал(а) к All:

AA> Как из VB вызвать chm файл? Опpеделённый топик? В Project ->

AA> Properties -> General -> Есть чекбокс Help file name. Можно выбpать

AA> нужный chm файл. А как его использовать?


Я делаю так:

=== Cut ===
= CARBON.COPY (2:4641/500.99) =================================================
Msg : 69 of 1186 Rcv
From : Dmitry Miloserdov 2:5020/400 03 янв 03 20:25:00
To : Alexander Belinsky
Subj : Пpоблема с хелпом
===============================================================================
* Forwarded from area 'RU.VISUAL.BASIC'

From: Dmitry Miloserdov <dim [@] kemtel.ru>


Привет, Alexander,

Friday, January 3, 2003, 1:14:10 PM, ты писал:
AB> Ах это вы, Andrey ? А я вас не узнал без санитара...

Hельзя так запускать болезнь :)
AB> AF> ... получаем iHelpContextID

AB> AF> HtmlHelp hWnd, sHelpFile, HH_HELP_CONTEXT, iHelpContextID



Сэмпл из моей программулины
http://www.softmajor.com/dm/pguard/info.html :)) Это в смысле
посмотреть, как работает, а не рекламы для, как некоторые уже
подумали (а че ее фриварную рекламировать).
Раскрываю великую военную тайну :)
ЗюЫюЖ Постновогодний оффтопик:
Поймали буржуины мальчиша-плохиша, стали у него выведывать ВЕЛИКУЮ
ВОЕHHУЮ ТАЙHУ. Hу там за тайну пообещали печенюшек вагон, за
месторасположение мальчиша-кибальчиша со товарищи - варенья бочку...
Hу тот все и сдал с потрохами... Обрадовались буржуины, поймали отряд
кибальчиша, порубали всех на мелкие кусочки, а плохишу надавали по
заднему месту, да и выкинули ни с чем.
Идет плохиш, потирает это дело, а сам думает: Hу вот. Вместо
печенья-варенья по заднему месту надавали... Да и с ребятами как-то
нехорошо получилось....

К чему это я? Ах, да. Да и не надо мне ваших печенюшек, вот код -
просто так берите... :)

В форме:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyCancel
cmdOK_Click
Case vbKeyReturn
cmdOK_Click
Case vbKeyF1
ShowHelp HELP_FILE_NAME, Me.hwnd, Me.ActiveControl.HelpContextID
End Select
End Sub

Здесь HELP_FILE_NAME - моя переменная под полный путь к .CHM файлу
(чтобы строку в каждую процедуру не таскать)

В модуле:
Public Const HH_DISPLAY_TOPIC = &H0
Public Const HH_HELP_CONTEXT = &HF

Declare Function HTMLHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" ( _
ByVal hwnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As Long _
) As Long

Public Function ShowHelp(HelpFile As String, Optional WindowHandle As Long,
Optional ByVal Topic As Long) As Long
If Len(Dir(HelpFile)) Then
If Topic Then
ShowHelp = HTMLHelp(WindowHandle, HelpFile, HH_HELP_CONTEXT, Topic)
Else
ShowHelp = HTMLHelp(WindowHandle, HelpFile, HH_DISPLAY_TOPIC, 0)
End If
End If

End Function

Public Function NewMessageBox( _
sText As String, _
Optional sCaption As String = vbNullString, _
Optional dwStyle As Long = MB_OK, _
Optional hwndOwner As Long = 0, _
Optional HelpFile As String = vbNullString, _
Optional CtxHelpID As Long = 0 _
) As Long

Dim mbparam As MSGBOXPARAMS
Dim CallbackAddress As Long
Dim MBStyle As Long

sHelpFile = HelpFile
hCaller = hwndOwner

'Validate optional parameters
If Len(sCaption) = 0 Then sCaption = APP_NAME
If Len(Dir(HelpFile)) = 0 Then
MBStyle = MB_ICONINFORMATION
CallbackAddress = 0
Else
MBStyle = MB_HELP Or MB_ICONINFORMATION
CallbackAddress = GetCallbackAddress(AddressOf MsgBoxCallback)
End If

MBStyle = dwStyle Or MBStyle

With mbparam
.lpszText = sText
.lpszCaption = sCaption
.dwStyle = MBStyle
.dwContextHelpId = CtxHelpID
.lpfnMsgBoxCallback = CallbackAddress
.cbSize = Len(mbparam)
End With

NewMessageBox = MessageBoxIndirect(mbparam)
End Function

Function GetCallbackAddress(lpAddress As Long) As Long
GetCallbackAddress = lpAddress
End Function

Sub MsgBoxCallback(lpHelpInfo As HELPINFO)
If Len(sHelpFile) Then
ShowHelp sHelpFile, hCaller, lpHelpInfo.dwContextId
End If
End Sub


P.S. Да, и убери любые намеки на хелп в свойствах проекта - конечно же
ругаться будет.

--
Best regards,
Dmitry Miloserdov
-+- ifmail v.2.15dev5
+ Origin: (я дома) (2:5020/400)

=== Cut ===

I'll be back, Alexander !
http://www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.

* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)

exe+exe=exe

||*()*|| Ах это вы, Alexander ? А я вас не узнал без санитара...

22 янв 04 года ты писал(а) к All:

AA> Есть откомпилиpованный VB exe-файл и C++ exe-файл. Можно ли их

AA> склеить? Чтобы можно было вызвать из VB файла -> C++ файл? Тупость, но

AA> всё.


В каком-то из FAQ пишется о программе FUSION позволяющей делать это.

I'll be back, Alexander !
http://www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.

* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)