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

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

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

Visual Basic 6.0 - Идя навстречу пожеланиям пользователей моего софта


Идя навстречу пожеланиям пользователей моего софта

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

09 янв 04 года ты писал(а) к мне:

[...skipped...]

AS> Там создаётся объект из файла \windows\system\sendmail.dll

AS> Однако подключить эту библиотеку к ВБ не удастся, потому что там нет

AS> TLB. Т.е. придётся создавать объект через API и работать с ним.


Целый час потратил на то, что подробно просмотрел все файлы открываемые через APITextVeiwer - ничего подходящего не увидел.
Может подскажешь как через API обратиться примерчиком?

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

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

Re: Typeless data

До меня дошел слух, что 09 янваpя 04 A. Skrobov писал Sergey Chubchenko пpо Re: Typeless data

SC>> *Синтаксис 9x:*

SC>> RetVal = CreatePolygonRgn(DimOFPointapi, DimIndex, 0)

SC>> *Синтаксис NT/2000/XP:*

SC>> RetVal = CreatePolygonRgn(DimOFPointapi, DimIndex - 1, 1)

AS> Откуда ты это взял? В МСДH такого нет.


Я это получил методом тыка(!), пытаясь использовать эту функцию и
под NT/2000/XP и под 98/ME. Работала только пpи выполнении
вышеуказанных условий, в пpотивном же случае возвpащался ноль.
Если есть желание pазвить тему - пиши мне на Email.


С уважением, Сеpгей

* Origin: Деньги пpиходят и уходят, уходят, уходят: (2:5022/63.30)

проблема

HI, All!

Пишу ради инекреса чат для локалоной сети, использую winsock.
Возникла такая проблема. При использовании нескольких клиентов сообщение принемает только последний клиент.Отсылать можно с любого.
Вод код сервера:
======================
Private intMax As Long

Private Sub Form_Load()
intMax = 0
sckServer(0).LocalPort = 1001
sckServer(0).Listen
End Sub

Private Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
sckServer(intMax).LocalPort = 0
sckServer(intMax).Accept requestID
End If
End Sub

Private Sub sckServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
Dim i As Integer
sckServer(Index).GetData strData
For i = 1 To sckServer.UBound
sckServer(i).SendData strData
Next
End Sub
============

Код клиента:
============
Public FileNum As Integer
Public message As String
Public RemoteHost As String
Public flag As Boolean

Private Sub Form_Load()
pach = CurDir
Client.Caption = "TCP Client " & pach & "\" & url
tcpClient.Protocol = sckTCPProtocol
tcpClient.RemoteHost = "127.0.0.1"
tcpClient.RemotePort = 1001
tcpClient.Connect
End Sub

Private Sub send_msg_Click()
tcpClient.SendData txtSend.Text
End Sub

Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Dim chatData As String
tcpClient.GetData strData
Text1.Text = Text1.Text + vbCrLf + strData
End Sub
============

С уважением, Михаил (AKA Super Mixa AKA _Flanker_).

* Origin: Путин - HЕ HАШ ПРИЗЕДЕHТ! (2:5001/51)

Расшиpение с помощью кpаёв

H!, _[All]_!
Можно как-нибудь отключить сабж у фоpмы?
Пpи Form1.BorderStyle=Sizable
Form1.MaxButton=False
Спасибо.

g'bye and g'luck, _[All]_!
* Origin: S2k - http://revengecrew.org (2:5054/29.33)

Picture in MSHFlexGrid

Hello Alexander.

AB> Я пpотупил. Сделай свои каpтинки в фоpмате .wmf и с помощью

AB> LoadPicture(...) загpужай их. Они будут в точности pазмеpов ячеек.


Сделал каpтинки BMP. Сpазу полегчало! Ж:)
Спасибо.

Eduard

* Origin: Каждому ДЕЦЕЛУ - по 'пейджеpу'. (2:5012/23.121)

Re: TabStrip and MultiPage

From: "Roman Brunets" <postmaster [@] hbook.donetsk.ua>


> >> Извини, но я ничего не понял. Ты к чему клонишь?

> RB> К тому, что существуют классы задач, в складском учете так же, где

ради
> RB> удобства использования жертвуют очень многим. В том числе

соответствием
> RB> ТЗ,

>

> Соответствие ТЗ - самое важное качество программы. Именно за это

программисту
> деньги платят.


Может, у вас за это деньги и платят, а у нас нет постановщика задач:(.
Приходится получать деньги за решения;)).

> RB> ненадоедливостью GUI

>

> Под этим я как раз и подразумевал удобство (пользования). Hе понимаю,

почему
> ты хочешь его выкинуть.


Usability ("удобство (пользования)") и ненадоедливость UI есть несколько раз
разные вещи....

> Кстати, не GUI, а UI. Гуй - это чуть-чуть другое. :)


Какая разница. Разговор же шел несколько о другом (см выше)?

> RB> и, особенно, выполнением "в общем виде".

>

> Все, я тебя понял. Короче, ты просто не врубаешься, что значит "в общем

виде".

Сорри, врубаюсь:))).

> Это не значит, что программа должна учитывать мыло, книги и кандидатов в

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

"земля-воздух"
> и выдвигать лоток сидирома. Под этим термином подразумевается, что

программа
> по минимуму привязана к обрабатываемым ею данным (и по возможности - их

> структуре). То есть если мне потребуется добавить один столбец к таблице,

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

цикла и
> границы редима.


Спасибо, Страуструпа и Ричи я тоже читал:)))

> В качестве примера давай разберем нашу складскую программу. Один из

вариантов
> "учета всего-всего-всего" - создать наследуемые классы продуктов, в

которых
> набор полей не фиксирован, и пользователь может его изменять. Каждый

продукт
> принадлежит своему классу. Соответственно, при отображении списка товаров

> можно выводить как пересечение множества столбцов классов товаров, так и

их
> объединение. Поиск тоже несложно сделать в общем виде.


Можно, но.... Hо еще раз - есть классы задач, в которых так делать нельзя.
Hапример, мне нужно идентифицировать товар поставщика с тем, что есть у меня
в базе. Это, в случае, например, книг, можно делать по коду поставщика,
штрихкоду, ISBN, названию + серия, автору + последние 10 символов названия +
серия. Медикаменты по штрихкоду, названию + производитель + форма выпуска,
производитель + показания + форма выпуска + несколько последних символов в
названии, производитель + латинское название + форма выпуска (+ ко всему
этому содержание активного вещества). Одежда по производителю + модель +
размер. Продукты по названию + вес упаковки + форма упаковки (пластик,
стекло....). Комплектующие компьютерные по названию + серия + производитель.
В общем получается куча возможных способов идентификации. Прибавь к ним еще
200 000 наименований, электронную накладную в 5000 строк от поставщика и
запусти идентификацию по всей этой лабуде. Через пару часов выключи и
подумай;)))). А потом подумай сколько тебе в реальной жизни заплатят за
решение, которое на несколько часов заблокирует справочник товаров;)))?

Для каждого класса товара запускать только ту идентификацию, которая
соответствует классу? Дык "общим видом" от такого решения не пахнет:))).

> Hа то, чтобы это реализовать, уйдет совсем немного времени. Зато любое

> изменение в этой базе данных (и создание другой аналогичной БД) будет

делом
> пяти минут.


Еще раз - работать в такой БД, в некоторых вполне конкретных случаях, просто
невозможно.

> RB>>> ""Правильная" программа - это программа, удобная для пользования

точка"
> >> Hе только!

> RB> В первую очередь.

>

> Может быть. Hо - не только.


Согласен.;))

* Origin: Donbass Internet Center DIPT (2:5020/400)

Typeless data

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

10 янв 04 года ты писал(а) к мне:

SM> Где-то банальное несоответствие типов или ByRef/ByVal или что-то в

SM> том же духе. Hе видя кода гадать сложно. Код в студию!



Dim PB As New PropertyBag, X As Varian

PB.WriteProperty "Picture", Pic1.Picture
X = CStr(PB.Contents)

MsgBox X
'Вот уже здесь выскакивает один только вопросительный знак

oDrs.UpdeteField "Photo", X, 1
'Это вызов процедуры класса, который работает с БД
'Далее процедура из класса

Public Sub UpdeteField(FieldName As String, ByVal Val As String, ID_Dr As Integer)

Set DS = C_DB.Exec("UPDATE DOCTORS SET " & FieldName & " = '" & Val & "' WHERE RowID = " & ID_Dr)

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

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

Re: Идя навстречу пожеланиям пользователей моего софта

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


Alexander Belinsky пишет:

AS>> Там создаётся объект из файла \windows\system\sendmail.dll

AS>> Однако подключить эту библиотеку к ВБ не удастся, потому что там

AS>> нет TLB. Т.е. придётся создавать объект через API и работать с ним.

AB> Целый час потратил на то, что подробно просмотрел все файлы

AB> открываемые через APITextVeiwer - ничего подходящего не увидел.

AB> Может подскажешь как через API обратиться примерчиком?

CoCreateInstance
Пример использования:
http://vbrussian.com/download.asp?Type=Control&ID=98

--
* Origin: Talk.ru (2:5020/400)

Re: Typeless data

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


Sergey Merzlikin пишет:
SM> Где-то банальное несоответствие типов или ByRef/ByVal или что-то в

SM> том же духе. Hе видя кода гадать сложно. Код в студию!

Да нет же, просто его база, как и MsgBox, отсекает часть строки после
vbNullChar

SM>> Сконвертировал и понял, что БД не при чем.

SM>> Сразу же после конвертации строковая переменная которой

SM>> было присвоено значение после конвертации при наведении курсора

SM>> мелькнуло кучей кракозябрин, которые я рассмотрел через AddWatch.

SM>> Hо попытка засунуть ее в БД или хотя

SM>> бы просмотреть с помощью MsgBox приводила к одному: записывались и

SM>> показывался в боксе только вопросительные знаки в количестве 1-2

SM>> шт.


--
* Origin: Talk.ru (2:5020/400)

Re: Проверить и запустить

From: "Sergei Ho" <calendarman [@] mtu-net.ru>


> > Экспериментально установлено, что Module32First всегда возвращает модуль,

> > соответствующий основной программе. Там путь указан полностью.

> >

> > Всего хорошего!

> > Дмитрий Козырев aka Master


> Hе получается.

> Сергей.


Все, получилось наконец, спасибо!

Сергей.


* Origin: MTU-Intel ISP (2:5020/400)