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

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

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

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


Re: ReadFile/WriteFile

From: Dmitry Miloserdov

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


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

From: Dmitry Miloserdov

Привет, 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: 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"

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 (2:5020/175.2)


Re: ApplyToAllObjects

From: "A. Skrobov"

Hello, Roman!
You wrote in conference fido7.ru.visual.basic to "All"
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"

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 (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)



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