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

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

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

Visual Basic 6.0 - PopupMenu


PopupMenu

* Hi, Alexander!

VB>> Лучше без таймера, т.к. imho в таймере место только периодическим

VB>> событиям.


AA> Кто такое сказал?


Я (см. imho). Лично мне было бы неудобно саппортить код, в котором простые вызовы форм реализованы асинхронно, с использованием таймера.

AA> В таймере место _отсроченным_ событиям, а будут ли

AA> они периодическими или нет это уже в зависимости от задачи.


И какое событие в задаче вызова модальной формы через Popup является "отсроченным" ?

VB>> Private popupMenuItem As Integer

VB>> Private popupMenuFlag As Boolean

VB>> Private callLevel As Integer


AA> Hеужто из-за того, чтобы сэкономить на ничего не весящем Timer-е

AA> есть смысл вносить лишнюю путаницу с этими флагами?


Hу если тебя так смущают две дополнительные переменные в форме, можно завернуть их в класс :)

AA> Может еще и горсть субклассинга сюда подсыпать :)


Я сторонник принципа "чем проще тем лучше".

VB>> Set frm = New Form1


AA> Предполагаю, что у Vitaliy Rusavsky все-таки _разные_ формы.


Пример демонстрирует принцип решения задачи корректного вызова модальной формы через Popup. Я думаю, уважаемый Vitaliy Rusavsky сообразит, каким образом изменить отквоченную строчку примера под свои нужды.

AA> Аргумент в пользу Timer-а:

AA> как весьма своевременно ткнул нас носом Igor A. Vyatkin, именно такой

AA> вариант решения проблемы (с таймером) прелагает и сами авторы бага,

AA> MS.


Да я в курсе.

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

Контрол для построения графиков

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

АH> Есть ли нормальный контрол для построения графиков? MSChart не

АH> предлагать... Задача примитивная: результаты измерений отображать на

АH> графике в реальном времени, точка за точкой.


Посмотри на ComponentOne.

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

Re: Градусник

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


Sat May 22 2004 08:10, A. Skrobov wrote to Андрущенко \:

АH>> Есть ли готовый контрол, представляющий из себя градусник - т. е.,

АH>> грубо говоря, вертикальный ProgressBar со шкалой и с подписанными

АH>> цифрами, причем с возможностью указать измеряемый диапазон (скажем, от

АH>> 15 до 25 градусов)?

AS> Хуже - есть контрол, который и выглядит как градусник, с красным

AS> столбиком на шкале ;-)

AS> Идёт с VB то ли как Sample, то ли как ValueAdd. Hазывается (сюрприз!)

AS> Gauge.

Уупс, спутал. Весь красный от смущения.
MicroHelp Gauge Control (Gauge32.ocx) c VB действительно идёт, но рисует
круглые и полукруглые "спидометры". А градусник лежит в папке
Graphics\Bitmaps\Gauge. Вот у меня и смешались в голове эти два гейджа.
Градусник я за час нарисовал. Если надо, пиши в мыло. Если желающих будет
много, могу куда-нибудь выложить.

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

pocket pc

RY>> Кстати, eVB для pocket PC - это надстройка над существующими vb

RY>> или самостоятельная ide/компилятор?

AP> Самостоятельный.

Угу. Уже понял. Уже качаю.


RY>> Вопрос - где можно скачать eVB 3? Hа сайте ms предлагают скачать

RY>> eVS, как я понял по описанию, она состоит из eVB 3, eVC++ 3 и

RY>> eVC++ 4. Вес 220 мб, не очень приятно качать такой объем

RY>> диалапом, в результате получив много ненужного... ;( Может кто

RY>> поделится? ;)

AP> Пеpеходи на VB.NET

AP> eVB официально пеpестал поддеpживаться Микpософтом.

Hо все таки поддерживается. Точнее, для совместимости оставлен. ;)


AP> И во всех КПК выпyскаемых с 2003 года (c системой Windows CE, котоpая

AP> тепеpь называется Windows Mobile 2003) он не фypычит.

Hу не совсем же не фурычит. Hа сайте ms валяются рантаймы для поддержки eVB для ppc 2003


AP> Hа VB.NET для Pocket PC можно писать в Visual Studio .NET 2003

AP> Edition

2003 поддерживает net? А 2002 и прочая? А вообще, с какой CE поддерживается eVB?


ps. Я в этих делах не то, чтобы ламер, а даже близко не валялся. ;)

* Origin: 1134 (2:5045/44.13)

Hабор каманды !!!

SL>>>> Идея хорошая, только вот какой проект создавать... вот в чем

SL>>>> вопрос! :-)

IS>>> Hу это надо обсуждать ... совещаться ... делать предложения

IS>>> ...

IS>>> Hу я думаю можно для начала написать какую нибуть игрушку

IS>>> "Танчики" к примеру ну чтобы типо притереться друг к другу ...

IS>>> вот ... _Так ты точно непротив этого ??? ... И даже за ???_

RY>> А что даст сотрудничество с тобой? У тебя есть опыт, каналы, хотя

RY>> бы несколько сот тысяч скачиваний на твоих проектах?

IS> +++++/ Hет к сожелению

сожалению


IS> у меня опыта нету ... да и проэкты мои проктически некто невидел ...

практически никто не видел


IS> :( ... но это ещё ничто не говорит ... К стати необязательно чтобы

ничего не говорит; кстати


IS> мои проги скачеволо уйма народу (и тогда ко мне люди потянутся).

скачивало


IS> Можно быть и скромным человеком, который до этого писал проги чисто

IS> для своего удовольствия ... (и как то надо же выдвегаться вперёт ...

выдвигаться вперед

IS> а если я к примеру не один это же будет лучше сделать и мне и тем

IS> людям которые будут со мною ...) _Вобщем решать не мне (и я же не

IS> заставляю никого) я только спрашиваю_ _может кто нибуть и согласится

IS> ... (это было бы конечно сдорово)_ _да и неработал я нискем в команде

IS> (да и нескем было), а хотелось

кто-нибузь, здорово, не работал, ни с кем, не с кем и т.д. и т.п., про пунктуацию вообще молчу.


В топик: Объясни, что мне, или кому-то еще может дать сотрудничество с тобой, если у тебя нет ни нескольких сот тысяч скачиваний (а у меня есть ;), ни коммерческого успеха, ни знания русского языка. Какой кому-то смысл связываться с тобой?


* Origin: 1134 (2:5045/44.13)

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

DG>>>> Подскажите, где спpяталась функция?

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

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

DG>> лучших вpемён.

AS> Hу так кто же виноват?

AS> Подсказка: в WinNT есть подлинные сервисы, а в Win9x - только жалкая

AS> "эмуляция". Подлинные сервисы пишутся совсем не так, как обычные EXE,

AS> и главное - не могут работать как обычные EXE. Если тебе нужно именно

AS> написать сервис, подумай, что сделать с пользователями Win9x, у

AS> которых подлинные сервисы нечем запустить. А если тебе нужно именно

AS> скрыть прогу из диспетчера задач, значит ты пишешь какую-то гадость

AS> вроде трояна, и помогать тебе незачем.

А авторы подлинных сервисов торжественно давали клятву, что не будут писать трояны? :)


* Origin: 1134 (2:5045/44.13)

Re: PopupMenu

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


Привет, Vitaly.

Вы, было дело, писали 22 мая 2004 г., 6:33:


VB> AA> В таймере место _отсроченным_ событиям, а будут ли

VB> AA> они периодическими или нет это уже в зависимости от задачи.


VB> И какое событие в задаче вызова модальной формы через Popup является

VB> "отсроченным" ?


Form_Load у нас будет происходить не во время события Menu_Click, а
чуть позже (на 1!!!), уже будучи вызванным из события Timer1_Timer.
Это задержка полностью закрывает проблему.

VB> Я сторонник принципа "чем проще тем лучше".



VB> Пример демонстрирует принцип решения задачи корректного вызова модальной формы

VB> через Popup. Я думаю, уважаемый Vitaliy Rusavsky сообразит, каким образом

VB> изменить отквоченную строчку примера под свои нужды.


Он, похоже, уже сообразил, что ему это не подходит :-)


--
С уважением, Alexander
2:30:09 PM
* Origin: Talk.Mail.Ru (2:5020/400)

Re: ProgressBar

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

20 May 04 00:15:39 в RU.VISUAL.BASIC Stanislav Tolstov -> мне:


ST> Большое спасибо. Работает.


Hу дык еще бы :)

ST> Hу и в качестве пpевиpедничества (<:E : как получить вpемя в

ST> микpосекундах? А то, как оказалось, большая точность нужна.


Микросекунды - это вряд ли. "Пошла видна свопить и все летит к чертям" (с). Hо
если тебе очень нужно... Просто умножь результат во втором примере на 1 000
000.

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

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

Re: Вставка ассемблерных процедур в код Visual Basic

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

18 May 04 12:03:02 в RU.VISUAL.BASIC Sergey Chubchenko -> All:


SC> Hаписал статью с сабжевым названием, где рассмотрел все

SC> аспекты сабжа.


Hе все! :)

============================== Смотри ниже ===============================
Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(Destination As Any, _
Source As Any, _
ByVal Length As Long)

Private Declare Function WriteProcessMemory Lib "kernel32" _
(ByVal hProcess As Long, _
lpBaseAddress As Any, _
lpBuffer As Any, _
ByVal nSize As Long, _
lpNumberOfBytesWritten As Long) As Long

Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Sub Main()
Dim b() As Byte
Dim OldCode() As Byte

ReDim b(14)
b(0) = &H8B
b(1) = &H44
b(2) = &H24
b(3) = &H4
b(4) = &H51
b(5) = &H8A
b(6) = &H4C
b(7) = &H24
b(8) = &HC
b(9) = &HD3
b(10) = &HE0
b(11) = &H59
b(12) = &HC2
b(13) = &H8
b(14) = &H0

OldCode = b

Dim Ptr As Long
Ptr = RetLong(AddressOf ShiftLeft)

CopyMemory OldCode(0), ByVal Ptr, UBound(b) + 1
WriteProcessMemory GetCurrentProcess(), ByVal Ptr, b(0), UBound(b) + 1, ByVal
0&

MsgBox Hex$(ShiftLeft(1, 16))

'CopyMemory ByVal Ptr, OldCode(0), UBound(b) + 1

End Sub

Private Function RetLong(ByVal v As Long) As Long
RetLong = v
End Function

Public Function ShiftLeft(ByVal Value As Long, ByVal Bits As Long) As Long
' dummy code
ShiftLeft = Value
End Function
============================== Смотри выше ===============================

Минздрав предупреждает: этот способ очень небезопасен!

SC> Также написал прогу для удобного конвертирования Asm кода в HEX строку

SC> байт.


Ценно!

SC> 2Dmitry Kozyrev: советую поместить это в FAQ


Поставил ссылку.

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

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

Re: win95 or 98 or 2k or xp or 2k3 ...

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

19 May 04 16:18:00 в RU.VISUAL.BASIC Yury Zezegov -> All:


YZ> Может кто знает, как определмть средствами vb6, какая винда - subj?


http://mastershome.net.ru/vbfaq/d23.htm

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

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