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

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

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

Visual Basic 6.0 - Большая форма


Большая форма

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

24 май 04 года ты писал(а) к All:

[...skipped...]

DD> До сих пор все работало как часики, но потребовалось еще добавить

DD> дополнительное меню. После добавок приложение перестает

DD> транслироваться в исполняемый код, падает на команде Load при загрузке

DD> одной из дополнительных форм. Причем (!) в самой среде VB все работает

DD> нормально, а вот при создании exe-шника,... упс-с-с...


Скопиллировать в псевдокод пробовал?

[...skipped...]

DD> Теперь собственно вопрос - как все это хозяйство можно "порезать" на

DD> куски с минимальными потерями? Как обеспечить возможность быстрого

DD> переключения между формами, имеющими одинаковый размер, общее меню и

DD> поддерживающими синхронный ресайзинг?


DD> Hадеюсь найдутся бойцы, уже решавшие подобную проблему.


Использован MDI-интерфейс?

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

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

Re: Как перехватить?

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


Hello, Alexander!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov"
<fido7.ru.visual.basic [@] talk.ru>to A. Skrobov on Mon, 24 May 2004 19:06:49

+0400:

AB>>> В этом - спасибо за идею с таймером.

AS>> А оно точно не оставит в реестре кучу мусора при некорректном

AS>> завершении?

AB> Я продумал и это.

AB> Sub Main начинается с того, что очищает этот параметр, а далее

AB> в зависимости от того первый или второй экземпляр программы запущен

Смотришь по App.PrevInstance? Плохой метод, если копия exe-файла уже
запущена, оно вернёт False. Получится несколько одновременно работающих
первых экземпляров ;-)

AB> обрабатывает коммандную строку или соответственно записывает ее в

AB> параметр и завершает программу.

Т.е. очищаешь параметр даже без проверки, первый ли это экземпляр? Плохой
метод - если юзер откроет 20 документов за раз (выделит в Эксплорере и
нажмёт Ентер), то ты откроешь только последний.


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

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

Re: Миграция VB5/6 - NET

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Alexander.

Вы, было дело, писали 24 мая 2004 г., 18:27:


AT> Hет, ну натыкаются люди на определенные проблемы, но в общем работает

AT> прилично. Медленней, но работает.


Это абсолютно мне не важно. Просто должно работать и все.

AT> Hу есть там какой-то wizard в VB.NET. Я им пользовался исключительно в

AT> ознакомительных целях еще в бета-версиях. По-идее non-GUI библиотеку

AT> должен преобразовать без проблем. Можно ли его ставить отдельно от VB.NET,

AT> и если да, то как - я не знаю.


Елы-палы, чет не везет мне сегодня с выражением собственных мыслей :(
Hу не понимают меня :) Делаю еще одну попытку изъясниться:

Я склепал ActiveX библиотеку и предложил желающим ею пользоваться.
Исходного кода я не предоставлял. Лишь только пару скриптов VBS и
JavaScript и абсолютно аналогичный проект(ик) на VB6 (только уже с
ранним связыванием), которые используют предоставляемые библиотекой
методы и свойства. Теперь суть: я (пока) не собираюсь
перекомпилировать эту библиотеку под NET. Я просто хочу добавить в
архив еще один проект, на VB.NET, к которому будет подключена все та
же ActiveX DLL, скомпилированная все в том же VB6!


AT> Если не хочется ничего переписывать просто возьми tlbimp.exe из .NET SDK,

AT> натрави его на свою ActiveX Dll, получишь обычную .NET assembly которую

AT> можно использовать из VB.NET. Эта сборка по сути - обычная "прокси".


Придется в очередной раз признаваться, что не являюсь профессиональным
программистом, как, собственно, и программистом вообще. И поэтому
слово "прокси" для меня имеет смысл лишь в связке со словом "сервер".
Посему я снова упрощаю свой вопрос: значит ли все это, что
использование моей библиотеки напрямую в VB.NET невозможно и что она
должна быть предварительно превращена в некую ".NET assembly" (кстати
что за хрень такая?) или эту assembly придется таскать _вместе_ с моей
DLL?


Ой, чую, в конце концов все сведется к тому, что я кому-то сяду на
хвост с многократным "please" в надежде, что он мне сделает эту
чертову конвертацию, чтобы я мог посмотреть шо це такэ.
--
С уважением, Alexander
9:05:32 PM
* Origin: Talk.Mail.Ru (2:5020/400)

Re: Миграция VB5/6 - NET

From: Alexander Trishin <trialFORSPAM [@] trishin.com>


Alexander Asyabrik wrote on Mon, 24 May 2004 20:36:15 +0000 (UTC):

> Елы-палы, чет не везет мне сегодня с выражением собственных мыслей :(

> Hу не понимают меня :) Делаю еще одну попытку изъясниться:


Так ты то хочешь компилировать, то не хочешь - пойди тебя пойми :)


> Я склепал ActiveX библиотеку и предложил желающим ею пользоваться.

> Исходного кода я не предоставлял. Лишь только пару скриптов VBS и

> JavaScript и абсолютно аналогичный проект(ик) на VB6 (только уже с

> ранним связыванием), которые используют предоставляемые библиотекой

> методы и свойства. Теперь суть: я (пока) не собираюсь

> перекомпилировать эту библиотеку под NET. Я просто хочу добавить в

> архив еще один проект, на VB.NET, к которому будет подключена все та

> же ActiveX DLL, скомпилированная все в том же VB6!


Hу так я тебе все и написал. Если кому-то нужно использовать ее в VB.NET
из среды - то просто сделают Reference и все дела. Студия сама все
создасть. Если же ты сам хочешь написать демку - то тебе ессно нужно
что-то написать. Так как ты ставить ничего нре хочешь - я тебе и предложил
комндную строку и notepad.

> AT> Если не хочется ничего переписывать просто возьми tlbimp.exe из .NET SDK,

> AT> натрави его на свою ActiveX Dll, получишь обычную .NET assembly которую

> AT> можно использовать из VB.NET. Эта сборка по сути - обычная "прокси".

>

> Придется в очередной раз признаваться, что не являюсь профессиональным

> программистом, как, собственно, и программистом вообще. И поэтому

> слово "прокси" для меня имеет смысл лишь в связке со словом "сервер".


По-простому - кода там как-такового нет, просто обертка.


> Посему я снова упрощаю свой вопрос: значит ли все это, что

> использование моей библиотеки напрямую в VB.NET невозможно и что она

> должна быть предварительно превращена в некую ".NET assembly" (кстати

> что за хрень такая?) или эту assembly придется таскать _вместе_ с моей

> DLL?


И да и нет. Совсем напрямую - нельзя, но Майкрософт создал утилиты чтобы
использовать ActiveX можно было без проблем. Да, "таскать" придется именно
вместе. Assembly - "сборка" - обычная Dll файл, но только там MSIL, а не
native код. Если не стало понятней - прочти что-нибудь. Hапример здесь:
http://rsdn.ru/article/dotnet/assembly2.xml


> Ой, чую, в конце концов все сведется к тому, что я кому-то сяду на

> хвост с многократным "please" в надежде, что он мне сделает эту

> чертову конвертацию, чтобы я мог посмотреть шо це такэ.


Hю-ню :)


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

Как перехватить?

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

24 май 04 года ты писал(а) к тебе:

[...skipped...]

AS> Чё-то ты, видимо, не понял серьёзность ситуации.

AS> Смотри, я запустил первый экземпляр. Он запустился, оставил метку в

AS> реестре. Злой Чубайс


Гы! Hу у нас Чубайс пока не повелитель лампочек.

AS> дёрнул рубильник, и комп выключился. Метка в

AS> реестре осталась. Я включаю комп вновь и запускаю твою программу. Она

AS> видит метку в реестре, оставляет новую и выходит. Так?


Hет. Если программа запущена без параметров, то параметр просто обнуляется. Если с параметром - записывается он.

[...skipped...]

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

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

Re: Большая форма

From: "Dmitri Didenko" <didenko [@] telus.net>


From: "Alexander Belinsky"
<Alexander.Belinsky [@] p99.f500.n4641.z2.fidonet.org>

>

> Скопиллировать в псевдокод пробовал?


Попробовал, в псевдокод компилируется. После этого стало опять
компилироваться и в "обычный" exe-шник.

Вопрос в одном - что делать когда опять компилироваться перестанет?

> Использован MDI-интерфейс?


Пока нет, хотелось бы обойтись без него.
--

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

PopupMenu

* Hi, Alexander!

VB>> К сожалению, пример не рабочий, его нельзя загрузить в среду и

VB>> выполнить.


AA> Hельзя или ты не знаешь как? Я непроверенного кода не шлю.


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

VB>> Private Sub mnuShowForm_Click()

VB>> If popupMenuFlag Then

VB>> popupMenuFlag = False

VB>> Else

VB>> Form2.Show vbModal

VB>> End If

VB>> End Sub


AA> Видящий да увидит: в этом коде предлагается показывать вторую форму

AA> модально ЧЕРЕЗ РАЗ, на каждый второй клик по пункту меню.


Совершенно верно. В событии, вызывающем появление popup, эта процедура вызывается дважды. Первый раз через Me.PopupMenu (со взведенным флагом), а следом явно, как mnuShowForm_Click.

Суть проблемы состоит в том, что необходимо выйти из вызова PopupMenu до того
как управление получит модальная форма. Ты взводишь таймер и вываливаешся из PopupMenu. Я сбрасываю флажок и тоже вываливаюсь из PopupMenu. У тебя модальную форму загружает таймер, у меня следующая строчка кода после me.popupmenu - явный вызов mnuShowForm_Click.

AA> BTW Тебе еще не надоело? Мне надоело.


:) Ладно, завязываем.

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

Re: PopupMenu

From: "Slaventij" <v.Davydenko [@] mt-bank.com>


> И тем не менее вариант с лейблом у меня не работает, я проверил.


А я думал, что сработает, проверил, не работает, обидно.
А казалось бы чем отличается вызов формы из таймера или из события :((

Вячеслав Давыденко


* Origin: MT-Bank (2:5020/400)

Выpубить/пеpезагpузить комп?

Hello Dima.

20 May 04 23:01, you wrote to me:

AL>> в msdn, если читать стpаницу до конца


DG> Вот блин, может я забыл тебе сказать, что удалил мсдн с винта до лучших

DG> вpемён.


дык удали еще и компилятор и проблема решена. в конце концов поставь прочто
help по api от старого борланда-Си (4.x - 5.x)

AL> AL>> станет ясно что она есть только в виндах без scm, т.е. в линейке

AL>> 95/98/me


DG> А пpо это мне давно сказали. Лучше бы подсказал, как её заменить.


что тут тебе без хелпа подсказывать? такая подсказка называется написать за
тебя. пишешь exe который определяет тип операционки и, в зависимости, зовет
либо то, либо другое API. вызов API придется делать либо динамически (через
loadLibrary/getProcAddress) либо написать две dll с общим интерфейсом, одну для
9x, другую для NTx и в зависимости от ОС грузить и использовать подходящую.

Anton

* Origin: -== Sibkot Mail Station ==- (2:5000/130.84)

Re: PopupMenu

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Slaventij.

Вы, было дело, писали, 9:41 25.05.04:

>> И тем не менее вариант с лейблом у меня не работает, я проверил.


S> А я думал, что сработает, проверил, не работает, обидно.

S> А казалось бы чем отличается вызов формы из таймера или из события :((


Дык тем, что событие Change лейбла происходит при еще незавершившемся
событии Menu_Click, то есть фактически внутри последнего. А таймер
выдает свое событие уже _после_ завершения Menu_Click.

А вообще искать некую логику в баге бессмысленно. Баг он и есть баг.
Hа нашу жизнь еще багов хватит :) Давай с _этим_ заканчивать, ага?


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