Техническая поддержка :

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

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

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

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


Re: Патч

From: Mike

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: 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: Svalka.Tk (2:5054/29.33)


Re: exe+exe=exe

From: Mike

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: skeptik.net (2:5020/400)


LPT

From: Dmitry Miloserdov

Привет, 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: www.softmajor.com (2:5020/400)


Re: ComPorts

From: Dmitry Miloserdov

Привет, 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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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: www.softmajor.com (2:5020/400)


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

From: Mike

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

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

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

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


Re: Ссылка в IE

From: Mike

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: 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

Привет, Alexander,

Friday, January 3, 2003, 1:14:10 PM, ты писал:
AB> Ах это вы, Andrey ? А я вас не узнал без санитара...
Hельзя так запускать болезнь :)
AB> AF> ... получаем iHelpContextID
AB> AF> HtmlHelp hWnd, sHelpFile, HH_HELP_CONTEXT, iHelpContextID


Сэмпл из моей программулины
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 !
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 !
www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.

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



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