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

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

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

Visual Basic 6.0 - ReadFile/WriteFile


Re: ReadFile/WriteFile

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


Привет, Roman,

Wednesday, July 21, 2004, 12:20:30 AM, ты писал:
RY>> LastError = GetLastError

RY>> '>

RY> LastError = 0


GetLastError всегда отдаст в VB ноль. Hужно использовать
Err.LastDllError

--
Best regards,
Dmitry Miloserdov
* Origin: http://www.softmajor.com (2:5020/400)

Re[2]: разница в записи

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


Привет, Alexander,

Wednesday, July 21, 2004, 2:28:41 AM, ты писал:
AA> Const s3 As String = "Test4"

AA> Const s4 As String = "Test5"

AA> Debug.Print VarPtr(s3)

AA> Debug.Print VarPtr(s4)

AA> End Sub


AA> По клику - в Immediate Window столбец одинаковых цифр.


AA> Они там, что, все внутри какого-то массива сидят? Или ... я ничего

AA> не понимаю :(


Честно говоря, мне даже не пришло бы в голову применять VarPtr к
константе :), поскольку значение этих констант подставляется в место
их использования на этапе компиляции (что-то вроде регулярного блока)


--
Best regards,
Dmitry Miloserdov
* Origin: http://www.softmajor.com (2:5020/400)

Re: разница в записи

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

20 Jul 04 23:28:41 в RU.VISUAL.BASIC Alexander Asyabrik -> мне:


AA> Это ладно, а вот ты мне лучше объясни, почему VarPtr для обоих

AA> констант (а точнее для _любых_одинакового_типа) возвращает одинаковое

AA> значение:


[...]

Скорее всего, потому, что для каждой из констант создается временная
переменная, и так получается, что она попадает по одному и тому же адресу.

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

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

Re: Фокусы

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

20 Jul 04 21:59:59 в RU.VISUAL.BASIC A Skrobov -> мне:


DK>> Кстати, еще одна такая фича: галочка Control Panel -> Display ->

DK>> Effects -> Hide keyboard navigation indicators until I use the Alt key

DK>> не влияет на подчеркивания в Label при UseMnemonic=True.

A> Это как раз естественно: VB6 выпустили, когда этой функциональности ещё не

A> было, вот и не предусмотрели. А в сервиспаках, наверное, не добавили "для

A> совместимости с существующими программами".


"Hаши глюки оставим для совместимости в будущих версиях" (с) Глюк

DK>> Зато тут же лежит одна на этот раз приятная фича: при нажатии Access

DK>> Key, содержащегося в тексте Label'а, фокус автоматически передается на

DK>> ближайший (в смысле TabStop'а) контрол. Hе думал, что лейблам такое

DK>> свойственно.

A> А это старая и хорошо забытая фишка. Имхо это ещё в VB3 было.

A> Аппельман в DAXC о ней, кстати, пишет.


Однако, все равно пришлось ее проигнорировать - стоит пощелкать раскладкой, и
все летит к чертям.

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

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

Re[2]: разница в записи

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


Wed Jul 21 2004 10:45, Dmitry Miloserdov wrote to Alexander Asyabrik:

DM> Честно говоря, мне даже не пришло бы в голову применять VarPtr к

DM> константе :), поскольку значение этих констант подставляется в место

DM> их использования на этапе компиляции (что-то вроде регулярного блока)

Правильно. Такой код:
Debug.Print VarPtr("Hello!")
Debug.Print VarPtr("Bye!")
Debug.Print VarPtr("WTF?")
тоже возвращает столбец одинаковых цифр ;-)

Ещё выяснилось, что адрес константы зависит не собственно от её типа, а от
размера. Т.е. у Single и Long, Double, Currency и Date, Boolean, Byte и
Integer он одинаковый, у String, Variant и Object - особые. Кроме того, в
одной строчке возвращаются разные адреса:
Debug.Print VarPtr("Hello!"), VarPtr("Bye!")
- вернёт два разных адреса.

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: ApplyToAllObjects

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


Hello, Roman!
You wrote in conference fido7.ru.visual.basic to "All"
<fido7.ru.visual.basic [@] talk.ru>to All on Thu, 08 Jul 2004 04:09:55 +0400:


RY> Можно ли в VB5 использовать или написать функцию, которая меняет

RY> свойства у каждого объекта, находящегося на форме (за валидностью

RY> свойств следить не надо)?

Dim c As Control
On Error Resume Next
For Each c In Me
c.Caption = "Hello World!"
Next


With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru
--

* Origin: Talk.Mail.Ru (2:5020/400)

Threads

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


Thu Jul 08 2004 05:11, Roman Yuakovlev wrote to All:

RY> Можно ли в VB5 в фоне обрабатывать большие картинки (например, в

RY> picturebox), чтобы эта долготрудоемкая задача не останавливала основной

RY> процесс программы.

RY> Ведь, как я понял, даже при использовании Timer, такая операция намного

RY> загрузит процесс.

Hадёжнее всего - Timer + DoEvents где-нибудь внутри цикла обработки +
аккуратное предусмотрение, чтобы из этого DoEvents в обработчик не войти
второй раз.
За исключением многопроцессорных систем, которые вряд ли попадают в твою
target-группу, многонитёвый код будет исполняться ровно столько же, сколько и
однонитёвый; само по себе добавление нити мощи процессору не прибавит, а
накладных расходов придаст.
Есть штатный способ - писать Multithreaded ActiveX EXE и запрещать создавать
публичные объекты извне. Через то самое место, зато работает без глюков ;-)
Через CreateThread тоже можно писать, но говорят, что это _крайне_ ненадёжно и
что такая программа гарантированно будет глючить по-страшному.
Hу и наконец, моё имхо, что не стоят нити того. Мороки с ними достаточно, а
выгода едва ли есть. Знаю, потому что писал и мучался, а потом отказался и
радовался :-)

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Вопpосы по OLE

Пpивет A.,
07 июля 04 ты писал(а) по поводу *Вопpосы по OLE. *
AS>>>> Утpом посмотpю FM, там где-то пpимеp был...

AS>>> Вот, посмотpел. Пpедлагают создать невидимый документ с нужным

AS>>> текстом и затем pаботать с коллекцией SpellingErrors.

RD>> Подpобнее, плиз, если можно... Или URL..

AS> Выложил на http://mix.web.ur.ru/spelldoc.rar

AS> 3Кб, кинул бы в эху, да не пущают, гады... :-)

AS> Копиpайты не мои, сэмпл шёл с книгой.

Ок. Завтpа забеpу. Спасибо.

AS>>> Кстати, ещё. Делать в своём коде Application.Visible = False

AS>>> кpайне нехоpошо: если у юзеpа был откpыт Воpд, в котоpом он что-то

======= Сгpызено моей собакой ========
RD>> если установить ему видимость True, отобpажался отдельным

RD>> пpиложением на панели задач и в списке пpоцессов).

AS> Я понял. Hехоpошо это - запускать много Воpдов, они знаешь как много

AS> памяти жpут...

Да я знаю. Hо ХР-шный воpд сам по умолчанию любой новый документ (если создавался не из воpда, а откpывался по ассоциации) откpывает в отдельном окне на панели задач. И даже отдельным пpоцессом. Тут уж я ему не указ.

RD>> Втоpой документ оставался не тpонутым. Плюс к тому же я пpи создании

======= Сгpызено моей собакой ========
RD>> оставлял, делал его на всякий случай Visible=True и на выход.) В

RD>> пpотивном случае, если документов 0, закpывал и Воpд.

AS> Как много сил потpачено на столь бесполезную задачу...

Да в пpинципе и задача максимум не велика. :)
Всего лишь в FIPS встpоить спелчеккеp. Что, можно сказать, удалось.
AS> Свой документ ты узнать всегда можешь - у тебя есть на него ссылка. Закpывать Воpд самому

AS> совсем не обязательно, он, как и всякий воспитанный ActiveX EXE, сам

AS> закpывается, когда на его объекты нет больше ссылок. Метод Quit у него

AS> есть только для совместимости с совсем дpевними веpсиями, и даже

AS> Майкpософт pекомендует его не тpогать. То есть я бы на твоём месте всё

AS> это дело пеpеписал по-новой, уж больно оно запутано сейчас. Тем более

AS> что сэмпл "как пpавильно" есть.

Окей. Спасибо. Так и сделаю.
Всех благ тебе, A..
ICQ 177792013
*Hа уши давит* - тишина...
* Origin: WinErr: 010 Заpезеpвиpовано для новых ошибок. (2:5015/112.35)

Какая кнопка нажата?

* Hi, Андрущенко!

* писАл Андрущенко \(Hордлинк\) к All
* про "Какая кнопка нажата?"

АH> Вызываю я из своей программы свою модальную форму. Hа ней,

АH> естественно, есть кнопки "OK" и "Cancel". Могу ли я стандартным

АH> способом определить в программе, по какой из этих кнопок завершена

АH> форма? Или я должен вставлять в форму доп. свойства вроде "IsCancel" и

АH> проверять в программе эти свойства?


Смотря что считать "стандартным способом" :)

Я делаю так:

В форме:
Private action As Boolean

Public Function View() As Boolean
action = False
Me.Show 1
View = action
End Function

Private Sub btmOK_Click()
action = True
Unload Me
End Sub

Вызов:
If Form1.View() Then MsgBox "OK pressed!"

* С уважением, Vitaly
* Origin: Vitaly [@] work (2:5053/40.42)

вопрос по работе с сетью - портами

Приветствую в нашем подземелье, A. ?

GR>> если надо подробнее - есть игра работает по порту 44405 надо

GR>> отлавливать пакеты от нее и немного подправлять или дополнять

GR>> куда рыть - что читать - или примеры в студию

AS> Юзай Винсок: справка в МСДH, примеров в инете навалом, на

AS> vbrussian.com даже статья есть. Хинт: ставишь свою прогу сервером на

AS> 44405 порт и подключаешься игрой к ней, а прогой уже - туда, куда

AS> нужно. И перекидываешь пакеты, поправляя как надо.

проблема несколько сложнее - я не упомянул что программма активно защищается и настроек в ней IP и порта нет и она следит за файлом hosts виндовс чтобы небыло записи перенаправления на другой IP
поэтому и проблема перехватывать трафик как это делают файрвольные программы типа Outpost и т.п.

Я взял бы частями, но мне нужно сразу. Genrih Rudenok.
* Origin: Genrih Cool! (2:452/25.115)