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

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

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

Visual Basic 6.0 - Re[2]: Сборка .net


Re[2]: Сборка .net

From: Алексей Вишневский <alexv [@] yna.alrosa-mir.ru>


Привет Alexander Kolpakov,

вторник, 9 декабря 2003 г., 17:37:25, Вы писали:

AK> Такое (подобное) видел в хелпе

AK> Dim newImage As Image = New

AK> Bitmap(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResource

AK> Stream("SKYBALL.GIF"))


AK> Ругается при этом


AK> An unhandled exception of type 'System.ArgumentException' occurred in

AK> system.drawing.dll


AK> Additional information: 'null' is not a valid value for 'stream'.


AK> Кто бы примерчик работающего проекта в мыло кинул. А то с мелкософта что-то

AK> не тянется:( А я, похоже gif куда-то не в те ресурсы сую.


Я же тебе писал, имя пространства имён надо дописывать к имени файла!
я тебе из работающего кода всё приписал!

--
С наилучшими пожеланиями,
AlexV ICQ: 147480482
*** Только Билл Гейтс мог додуматься клеить обои на стол. ***

* Origin: Институт "Якутнипроалмаз" (Лаб. АСУТП) (2:5020/400)

Re: Память в VB.NET

From: "Igor Evgrafov" <fornews [@] systems21.ru>


Hello, PRINCEr! You wrote to Igor Evgrafov on Tue, 9 Dec 2003 01:06:54 +0000 (UTC):


P> А как это сделать ?


Hажать третью справа кнопку в заголовке окна :)

АФАИК это результат всяческих оптимизаций...
Вобщем я советую на это забить и доверится NET Framework.

With best regards, Igor Evgrafov. E-mail: ievgrafo<AT>systems21{DOT}ru

* Origin: Cronyx Plus ISP (2:5020/400)

Re[3]: Сборка .net

From: "Alexander Kolpakov" <kolpakov_av [@] npz-saratov.ru>


Все, разобрался. Спасибо за пример.

--
С уважением.
Александр.
* Origin: Demos online service (2:5020/400)

Элемент управления ComboBox

From: Vasenin Michael <mnt [@] rdtc.ru>


Привет всем.
Hадо сделать, чтобы при выборе, например, имени организации,
подставлялся код (как в Access).

Подскажите, куда копать? Самому создавать, или где-то уже есть готовые
решения.
--
Всего хорошего, Михаил
* Origin: Talk.ru (2:5020/400)

HTML Autorization

Hello Dmitry.

09 Dec 03 10:12, Dmitry Viazowkin wrote to me:

DV> АгаЩАЗЗЗ. Это - разные уровни протоколов, а протокол - это абстракция.

DV> По твоей логике, и ко всяким POP3/SMTP серверам надо обращаться ТОЛЬКО

DV> через API (отсутствующее) и ни в коем случае не реализовывать протокол

DV> руками?


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

DV> Ты меня улыбаешь ;) Почитай хоть малость про авторизацию в HTTP. Как ты

DV> думаешь, что означает в MSDN фраза

DV> -------------------------------

DV> If authentication is required, the INTERNET_FLAG_KEEP_CONNECTION flag

DV> should be used in the call to HttpOpenRequest. The

DV> INTERNET_FLAG_KEEP_CONNECTION flag is required for NTLM and other types of

DV> authentication in order to maintain the connection while completing the

DV> authentication process. If the connection is not maintained, the

DV> authentication process must be restarted with the proxy or server.

DV> -------------------------------

DV> Вопрос на засыпку - ЧТО делает флаг INTERNET_FLAG_KEEP_CONNECTION??? Более

DV> того, даже после успешной авторизации разрыв TCP соединения вызывает новую

DV> авторизацию - к чему бы это? :)


не нужно считать msdn истиной в последней инстанции. msdn описывает лишь
конкретные изделия ms, в данном случае iis. и речь идет о реализации
проприетарной (ntlm) схемы аутентификации в iis при обращении к статическому
контенту. если посмотреть чуть дальше, хотя бы на сессии asp - видим уже
несколько иное.

>> да нет, ничего. удивило слово "диалоговая".


DV> Если тебе не нравится вариант от МС, предложи свой вариант перевода на

DV> русский.


перевода чего? в твоей цитате не увидел никакого иного термина кроме термина
"аутентификация". что кстати означает иное, нежели термин "авторизация", хоть
"диалоговая" хоть нет.

Anton

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

Re: количество COM-портов

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

И увидел я, что в 30 Nov 03 01:36 Андрущенко \(Hордлинк\) писал All:

АH> Как в программе на VB6 узнать, сколько COM-портов имеется на данном

АH> компьютере?


Я делаю так (проверял только под NT-подобными системами, под 9x все равно не будет работать из-за использования unicode-функций).


Dim strComPorts$()

if EnumKeyValue(HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\SERIALCOMM", strComPorts) then
'strComPorts содержит имена портов
End If


' Reg Key Security Options...
Const READ_CONTROL = &H20000
Const STANDARD_RIGHTS_READ = READ_CONTROL
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

Const KEY_READ = STANDARD_RIGHTS_READ + KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY

' Reg Key ROOT Types...
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Const ERROR_SUCCESS = 0
Const ERROR_NO_MORE_ITEMS = 259
Const ERROR_MORE_DATA = 234
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_DWORD = 4 ' 32-bit number

Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExW" _
(ByVal hKey As Long, ByVal lpSubKey&, ByVal ulOptions As Long, _
ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueW" _
(ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName&, _
lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, _
ByVal lpData&, lpcbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExW" _
(ByVal hKey As Long, ByVal lpValueName&, ByVal lpReserved As Long, _
ByRef lpType As Long, ByVal lpData&, ByRef lpcbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long

Private Function EnumKeyValue(KeyRoot As Long, KeyName As String, ByRef KeyVal$()) As Boolean
Dim i As Long ' Loop Counter
Dim rc As Long ' Return Code
Dim hKey As Long ' Handle To An Open Registry Key
Dim KeyValType As Long ' Data Type Of A Registry Key
Dim tmpVal$, tmpValName$, tmpValAux$ ' Tempory Storage For A Registry Key Value
Dim KeyValSize&, KeyNameSize& ' Size Of Registry Key Variable
Dim lngEnumIndex&
'------------------------------------------------------------
' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...}
'------------------------------------------------------------
rc = RegOpenKeyEx(KeyRoot, StrPtr(KeyName), 0, KEY_READ, hKey) ' Open Registry Key

If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Error...


tmpVal = String$(1024, 0) ' Allocate Variable Space
KeyValSize = 1024 ' Mark Variable Size
tmpValName = String$(1024, 0) ' Allocate Variable Space
KeyNameSize = 1024 ' Mark Variable Size
'------------------------------------------------------------
' Retrieve Registry Key Value...
'------------------------------------------------------------
rc = RegEnumValue(hKey, lngEnumIndex, StrPtr(tmpValName), KeyNameSize, _
0, KeyValType, StrPtr(tmpVal), KeyValSize) ' Get/Create Key Value
Do Until rc = ERROR_NO_MORE_ITEMS
If rc <> ERROR_SUCCESS Then GoTo GetKeyError ' Handle Errors

tmpValAux = left(tmpVal, KeyValSize \ 2)
' tmpValAux = Left(tmpVal, (KeyValSize \ 2) - 1)
' ReDim Preserve KeyVal(1, lngEnumIndex)
ReDim Preserve KeyVal(lngEnumIndex)
' KeyVal(0, lngEnumIndex) = Left(tmpValName, KeyNameSize)
'------------------------------------------------------------
' Determine Key Value Type For Conversion...
'------------------------------------------------------------
Select Case KeyValType ' Search Data Types...
Case REG_SZ ' String Registry Key Data Type
KeyVal(lngEnumIndex) = tmpValAux ' Copy String Value
' KeyVal(1, lngEnumIndex) = tmpValAux ' Copy String Value
Case REG_DWORD ' Double Word Registry Key Data Type
Dim strTemp$: strTemp = ""
For i = Len(tmpValAux) To 1 Step -1 ' Convert Each Bit
strTemp = strTemp & Hex(Asc(Mid(tmpValAux, i, 1))) ' Build Value Char. By Char.
Next
KeyVal(1, lngEnumIndex) = Format$("&h" & strTemp) ' Convert Double Word To String
End Select
lngEnumIndex = lngEnumIndex + 1
KeyValSize = 1024 ' Mark Variable Size
KeyNameSize = 1024 ' Mark Variable Size
rc = RegEnumValue(hKey, lngEnumIndex, StrPtr(tmpValName), KeyNameSize, _
0, KeyValType, StrPtr(tmpVal), KeyValSize) ' Get/Create Key Value
Loop
EnumKeyValue = True ' Return Success
rc = RegCloseKey(hKey) ' Close Registry Key
Exit Function ' Exit
GetKeyError: ' Cleanup After An Error Has Occured...
Erase KeyVal ' Set Return Val To Empty String
EnumKeyValue = False ' Return Failure
rc = RegCloseKey(hKey) ' Close Registry Key
End Function


Hope to see you again,
Murad. [murad_urmancheev#land.ru]
* Origin: Origin is under construction! (2:5030/1400.110)

Re: HTML Autorization

From: "Dmitry Viazowkin" <vde [@] ufanet.ru>


Hi Anton.

> По моей логике (обрати внимание - я не употреблял слова "надо") - это не имеет

> смысла. точно также как не имеет смысла программировать в машинных кодах при

> наличии языков программирования.


Если писать на С++ - то тогда использование библиотеки WinInet может оказаться
оправданным, однако в случае VB возникающие проблемы (в частности, мучение с
получением текущего состояния, или почти полная невозможность работы в
асинхронном режиме) значительно перевешивают преимущества от отсутствия
необходимости парсинга HTTP-протокола, тем более он не слишком сложен. А
касательно программирования - я иногда еще и для однокристаллок пописываю, и
иногда ИМЕHHО в кодах ;)

> не нужно считать msdn истиной в последней инстанции. msdn описывает лишь

> конкретные изделия ms, в данном случае iis. и речь идет о реализации


Ой ;) А я думал, что данный абзац взят как раз из описания WinInet...

> проприетарной (ntlm) схемы аутентификации в iis при обращении к статическому

> контенту. если посмотреть чуть дальше, хотя бы на сессии asp - видим уже

> несколько иное.


Ладно, то МСовская NTLM (которую, кстати давно уже не только IIS обеспечивает).
Hо помимо ее есть еще и другие схемы ди... не, персонально для тебя -
Challenge/Response аутентификации, и из описания Remote Passphrase
Authentication (RPA) от CompuServe.
From now on, until the TCP connection will be kept alive, no further credentials
will be sent from the client to the proxy . The TCP connection is marked as
"OK", and the client expects that it can pump whatever it wants.
Что, при некотором рассуждении, совершенно логично - ибо как может сервер
идентифицировать клиента после разрыва TCP соединения? (только не надо говорить
про IP-адрес!)

кстати - ну и слова, "проприетарной". Вообще-то в *русской язык* перевод есть ;)


> перевода чего? в твоей цитате не увидел никакого иного термина кроме термина

> "аутентификация". что кстати означает иное, нежели термин "авторизация", хоть

> "диалоговая" хоть нет.


Спасибо за ликбез ;))) Однако не кажется ли тебе, что ты в данном диалоге
занимаешься вовсе не заданным (ранее) вопросом, а исключительно гнутьем пальцОв,
доказывая мне свою крутость. Право, не стоит - у меня на это нет лишнего
времени...


--
With best regards
Dmitry Viazowkin


* Origin: Me? Organized??? (2:5020/400)

Re[2]: Access 2000 и XP

Hello Dmitry.

08 Дек 03 06:47, you wrote to me:
DF> Hу а внешний контрол подключить можно, но для чего? Hе проще ли замену

DF> AddItem самостоятельно написать? Операция то не сложная ведь.


Чиста из пpинципа нет охоты.

Ivan

* Origin: ...и любовь с особым цинизмом. (2:5023/19.9)

Приостановка выполнения программы

From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>


Здравствуйте, All!

Странно! Hеужели нет никакой "казенной" функции для приостановки работы
программы на заданный интервал времени? Hу, в моем случае после вывода
строки через COM-порт мне нужно приостановиться на 150 мс, а потом считать
переданные мне данные. Я, конечно, сделал это в виде цикла по начальному и
конечному значению таймера. Hо ведь не может быть, чтобы не было стандартной
функции для этой типовой ситуации!

--
С уважением Hиколай Андрущенко
naa [@] arh.ru


* Origin: Internet-Arkhangelsk Company (2:5020/400)

Re: Приостановка выполнения программы

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


Hello, Андрущенко!
You wrote in conference fido7.ru.visual.basic to "All" <fido7.ru.visual.basic [@] talk.ru> on Tue, 9 Dec 2003 18:13:21 +0000 (UTC):


АH> Странно! Hеужели нет никакой "казенной" функции для приостановки работы

АH> программы на заданный интервал времени? Hу, в моем случае после вывода

АH> строки через COM-порт мне нужно приостановиться на 150 мс, а потом

АH> считать

АH> переданные мне данные. Я, конечно, сделал это в виде цикла по начальному

АH> и конечному значению таймера. Hо ведь не может быть, чтобы не было

АH> стандартной

АH> функции для этой типовой ситуации!

Declare Sub Sleep Lib "kernel32" (ByVal dwMs As Long)


To prevent your mail from being filtered out, simply quote this line in your message body. A464E022
--
* Origin: Talk.Mail.Ru (2:5020/400)