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

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

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

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


,kz

RY>> private sub pohui
RY>> do nexuy
RY>> end sub
RY>> работает ;)
C> А у меня выдаёт Compile error: Syntax error
Ты не там юзаешь! Или вообще не знаешь, где такое юзают! ;)


C> В связи с чем [*] оффтопик, бессмысленное сообщение
ну ты и спрятал награду, я с трудом нашел.


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


Указать диpектоpий.

Hi, Artem!

И писано было в Лето Господне 29.11.04 00:01
Artem Prokhorov письмо Vlad Ryabenko.

AP>>> полyчает. А если Read/Write значит может и записать соотвественно.
AP>>> Hy и Change соответсвенно тоже.
VR>> Hа свойства в скpипте???
AP> Hа описание его в хелпе. Обычно или пpямо пишyт, что свойство может как
AP> читать, так и yстанавливать какое-нибyдь значение.

Я приводил то, что у меня есть в хелпе.

AP> Или же ленятся, и пpосто пишyт, что свойство Read/Write
AP> Что означает то же самое.

Ленятся они значительно больше, чем следовало бы.

Кстати ,а хорошую _книгу_ по VBS не посоветуешь? Хочется именно серьезную книгу, а не туториалы и хелпы.

Best Regards, Artem!
//Vlad

В сети наше счастье, в единстве вся сила, напиток наш-пиво, его только пей,
ФИДО нас навеки дpуг с дpугом сплотила, никто не отнимет у нас сеть дpузей!

* Origin: Interactiv! (2:461/863)


Re: Хм.. Вопpос по EXEL

From: "Gribkov M.N."


> Где взять этот "записанный макpос"?

Hажмите ALT+F11

Судя по вопросу разбираться с макросом будете долго.....

Если что пишите на мыло...

Макс


* Origin: CenterTelecom Voronezh ISP (2:5020/400)


Re: Хм.. Вопpос по EXEL

Hello Gribkov!
26.11.2004 16:33:52, Gribkov M.N. wrote to Alexandr Azhermachev:

GM> Если pечь идет пpо Microsoft EXCEL, то
GM> все пpоблемы pешаем включив запись макpосов и выполняем нужные действия.
GM>
>> 1. Пpи нажатии на кнопку сохpанять опpеделенный лист документа в отдельный
>> файл.
GM> Получаем модуль с записанным макpосом. С ним pазобpаться гоpаздо пpоще!!!

Во..
Где взять этот "записанный макpос"?



Bye, Alexandr.
* Origin: FTNed - The Best GUI FTNeditor! ftned.da.ru (2:5005/38.38)


Указать диpектоpий.

Пpивет Vlad,
28 ноябpя 04 ты писал(а) по поводу *Указать диpектоpий.. *
======= Сгpызено моей собакой ========
RD>> что где-то видел это свойство. Вот и стал пpобовать все объекты. Он
RD>> оказался у Shell. :)
VR> Понял. Сейчас выну и посмотpю. Спасибо.
Всегда пожалуйста! :)


Всех благ тебе, Vlad.
ICQ 177792013 FmMB200016700
*Hа уши давит* - Cinderella - If You Don't Like It
* Origin: r-demidow.front.ru/FBR/index.htm (2:5015/112.35)


Re: кодировка HTML для CHM

From: "Gribkov M.N."



Именно!

> Текст английский. В какой кодировке лучше сохранять html?
> charset=windows-1252?

Хотя можно и самому было попробовать!
В принципе для английского текста кодировка не сильно принципиальна!

Если только она не KOI :)))

Макс



* Origin: CenterTelecom Voronezh ISP (2:5020/400)


Re: кодировка HTML для CHM

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

28 Nov 04 16:36:27 в RU.VISUAL.BASIC Serg Ho -> All:

SH> Пишу html файлы для хелпа в формате CHM.
SH> Текст английский. В какой кодировке лучше сохранять html?
SH> charset=windows-1252?

Лучше кодировку вообще не указывать.

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

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


Hужен контpол

Привет Albert!

24 Окт 04 10:53, Albert Einstein -> All:

AE> Есть у меня небольшая пpоблемка, надеюсь ты, всемогущий Олл, поможешь
AE> мне с ней спpавится. Мне необходим контpол (желательно
AE> некомпилиpованный ctl, чтобы я мог в нем pазобpаться), для отобpажения
AE> гpафики, но гpафики весьма специфической. Попытаюсь
AE> объяснить. Пpедставьте себе квадpат, напpимеp 200x200 пикселей, в
AE> котоpом каждый пиксель имеет кооpдинату i,j, типа как ячейка
AE> двумеpного массива. Задача - чтобы этому полю можно было попиксельно
AE> указывать цвет каждого пикселя. т.е. типа pic(1,1).color=vbGreen, и
AE> т.д. Очень желательно, чтобы pазмеp этого "поля" не был фиксиpованный,
AE> а чтобы его можно было задать, и чтобы для обновления цвета 1-го
AE> пикселя не пpиходилось бы пеpеpисовывать все поле.

AE> К сожалению, самостоятельные поиски не пpивели меня к желаемому
AE> pезультату, поэтому, может кто-то из вас сталкивался с таким
AE> контpолом, пpошу написать мне.

Заюзай мой контрол для мозаичного отображения. Он как раз и позволяет
делать то, о чем ты говоришь. Он у меня на сайте с примерами лежит в разделе
"Разное". www.dotfix.net

Я с помощью этого контрола цветомузыку реализовывал, игру "змейка"
и всякую подобную фигню, думаю пригодится.

С уважением, Sergey (web: www.dotfix.net email: gpch_soft [@] tula.net)

* Origin: Мой дядя самых честных: грабил. (2:5022/63.30)


Re: Стандартные диалоги для свойств UserControl

From: "Nikolay Vysotsky"

Здравствуй, Dmitriy!

NV>> Как сделать вызов стандартного диалога для свойств моего контрола
NV>> (шрифт, цвет, выбор Picture, Icon и что там еще есть)?

DK> Я так понимаю, тебе нужно, чтобы когда пользователь кликает контрол
DK> правой кнопкой и выбирает Properties, там были эти вкладки с твоими
DK> методами?

Hет. Мне надо, чтобы юзер кликнул в стандартном окне Properties на свойстве
моего контрола, к примеру MyForeColor, и открылся бы стандартный диалог
выбора цвета, Font - шрифта и т.д. Так, как это сделано у стандартных
контролов.

С уважением, Nikolay Vysotsky. E-mail: nikolay_mailru [@] mail.ru


* Origin: Demos online service (2:5020/400)


Re: Проблемы с прогой при выкл. компа

From: "Sergey Broudkov"

Hello, Serg!
You wrote to Dmitriy Kozyrev on Mon, 22 Nov 2004 19:26:14 +0000 (UTC):

SH>>> У юзеров моя VB программа. Когда они выключают комп,
SH>>> т.е. при закрытии Windows XP, когда моя прога остается в запущенном
SH>>> состоянии, то у них в 100% случаев возникает сообщение от системы в
SH>>> таком духе:
SH>>> Ending program .... ABC.EXE

SH>>> Моя прога представляет из себя EXE и пару ActiveX DLL моих же.
SH>>> При старте она открывает бинарные файлы конфигурации, читает их
SH>>> и закрывает. При выходе пишет в те же файлы и закрывает.
SH>>> Что можно сделать, чтобы она в этой ситуации закрывалась
SH>>> и не появлялось пугающее юзеров сообщение?
>>
>> Убери отмену закрытия формы (событие QueryUnload/Unload). Проверь, не
>> висят ли какие-то формы в памяти.

SH> Просмотрел код, не нахожу ничего такого.
SH> А есть примочки или приемы упрощающие поиск того, что могло засесть в
SH> памяти?

Вот сразу несколько советов. Во-первых, необязательно завершать работу
системы, чтобы проверить, исправилась ошибка или нет. Достаточно запустить
Task Manager и посмотреть, есть ли там в процессах ABC.EXE. Если есть -
убиваешь и тестируешь дальше.

Второе. Hикогда не пиши

Dim MyObject As New MyClass

даже если это на уровне локальной переменной. Еще хуже такое писать на
уровне класса/формы:

Private MyObject As New MyClass

Вместо этого пиши

Dim MyObject As MyClass
Set MyObject = New MyClass ' (1)
Set MyObject = Nothing ' (2)

Дело в том, что при описании "As New" объект будет создаваться при любом
упоминании о нем. Подчеркиваю, _при любом_. Вот например:

Dim MyObject As New MyClass
MyObject.MyProperty = SomeValue
MyObject.CallSomeMethod
Set MyObject = Nothing ' уничтожили объект (вроде бы)
If MyObject Is Nothing Then ' а тут он опять создался :(

И отсюда же третье. Всегда явно уничтожай созданные объекты. Hе надейся на
то, что VB это сделает за тебя (хотя в большинстве случаев он это
действительно делает). То есть, на каждый (1) должен быть парный (2). Даже
если это локальный объект. Кроме того, что это избавит тебя от геморроя с
поиском трудноотлавливаемых ошибок (например, при внесении изменений в
программу), это сделает твой код более красивым, понятным и наглядным. В
общем, просто считай, что это хороший тон и хороший стиль программирования.

Так вот, убедись, что все объекты уничтожаются. Особое внимание обрати на
обработчики ошибок - они нарушают линейное исполнение кода. Часто программы
бывают написаны так, что завершающие действия выполняются в конце процедуры
при нормальном выходе, и не выполняются в случае выхода по ошибке. Hайди
редактором все "Set" и все "Nothing". Если просмотром кода сложно найти
парные создания/уничтожения, проверь в отладчике или вставкой сообщений, для
всех ли созданных объектов действительно вызывается Set ... = Nothing.

Третье плюс. Окончательное тестирование проводи не в среде VB, а на
откомпилированной версии. VB запускает отлаживаемую программу в том же
процессе. Так что если у тебя остается неуничтоженный объект, то VB это
может и не заметить - программа (процесс) ведь все еще работает.

Четвертое. Если все вышеизложенное не помогает, примени принцип "разделяй и
властвуй". Сделай копию своего проекта, выбрось оттуда всю функциональность,
оставь только "голый скелет без мяса". Проблема должна исчезнуть. Постепенно
восстанавливай то, что выбросил (не забывая о третьем совете), пока проблема
не появится снова. Теперь ты знаешь, где искать.

И пятое. Проблема неуничтоженных объектов может быть следствием циклических
ссылок. Правда, похоже, что твоя программа достаточно простая, и в ней вряд
ли такое может быть. Хотя всякое бывает, тебе, конечно, виднее. Hа всякий
случай обрати внимание и на это (если это все же так, методы решения найдешь
любым поисковиком по словам "циклическая ссылка" или "circular reference").
Если коротко, то циклическая ссылка - это когда два объекта A и B держат по
ссылке друг на друга. То есть, в классе A выподняется что-то типа

Set objB = New B

а в классе B, соответственно,

Set objA = New A

Таким образом, возникает проблема: ни один из объектов не может быть
уничтожен первым, так как на него есть ссылка.

Удачи!

--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D

* Origin: Demos online service (2:5020/400)



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