Visual Basic 6.0 - Работа функций Win32Api под XP
Re: Работа функций Win32Api под XP
From: "Vasiliy Khorolich" <horvv [@] poltava.bank.gov.ua>
"Alexander Asyabrik" <belmis [@] mail.belpak.by> сообщил/сообщила в новостях
следующее: news:5219520062.20040421163544 [@] mail.belpak.by...
> VK> Скажите, будут ли работать функции из Win32Api на машине, на которой
стоит ХР?
> VK> Интересуют функции работы с реестром: RegCreateKey,RegQueryValueEx.
>
> Без проблем. А почему, собственно, они не должны работать?
Очевидно, не работала именно функция RegCreateKey
> BTW Рекомендуется использовать RegCreateKeyEx
А Вы не могли бы привести пример , как правильно вызывать эту функцию в
программе? Параметров у нее намного больше, чем у RegCreateKey, и как
правильно ее вызвать, я даже не предположу...
Спасибо.
Василий Хоролич.
* Origin: Demos online service (2:5020/400)
Определение выходных и рабочих дней
Hello, All!
Hикто не сталкивался с проблемой определения выходных и рабочих дней на VB?
Пытаюсь написать программу - журнал приема заявок от населения для выдачи нарядов электромонтерам узла связи, столкнулся с этой проблемой и не приходит в голову никакого элегантного решения. Хочется заблокировать возможность ошибочной выдачи наряда на выходной или праздничный день - это решается тупым перечислением дат государственных праздников, а также вычислением суббот и воскресений. Hо что делать с переносами выходных дней и черными субботами?
Включать эти данные в программный код во-первых не слишком красиво, а во-вторых - попросту неудобно: каждый год придется вносить изменения в код и перекомпиллировать программу.
Что здесь можно придумать?
Good luck and 73's, All !
http://stking.narod.ru stking [@] narod.ru ICQ UIN: 5204166
* Origin: 0,5+1/2= Hутром чую, что литр, но доказать не могу! (2:5020/1490.1)
Re: Определение выходных и рабочих дней
From: "Slaventij" <v.Davydenko [@] mt-bank.com>
> перечислением дат государственных праздников, а также вычислением суббот и
> воскресений. Hо что делать с переносами выходных дней и черными субботами?
> Включать эти данные в программный код во-первых не слишком красиво, а
во-вторых
Все ты правильно мыслишь, только не надо это все хранить в коде, сделай в
базе тупую табличку, в которой будут хранится выходные и праздничные дни.
А вот субботу и воскресенье сюда вставлять не надо, только государственные
праздники.
* Origin: MT-Bank (2:5020/400)
Моя самая большая проблема с VB
Hello Dmitry.
22 Apr 04 02:10, Dmitry Viazowkin wrote to me:
>> а если описать как ты это выше сделал и звать какбы извне через что-то
>> вроде callWindowProc не сработает?
DV> Ага, попробовал - и сделал, и даже получилось. Вот только пользы от этого
DV> - 0. Потому что - мне надо обращаться к разделяемой структуре, примерно
DV> таким образом:
DV> ''' участок кода, где-то есть описание dim sm as tShare
DV> ''' hMap - тот самый указатель на разделяемую память.
DV> LockMutex ShareMutex
DV> CopyMemory sm, ByVal hMap, Len(sm) ' copy from mem to struct
DV> sm.strData = s
DV> sm.fData = True
DV> CopyMemory ByVal hMap, sm, Len(sm) ' copy back to map
DV> ReleaseMutex ShareMutex
DV> '''
DV> а так мне придется создавать миллион функций - на каждое обращение по
DV> указателю... да еще и звать их
DV> - ---
DV> result = CallWindowProc(AddressOf Get3, hMap, 0, 0, 0)
DV> - ---
DV> Бррр...
DV> Хотелось бы чуда! А именно: внутри функции с описанием
DV> sub SomeSub(byref sm as tShare,...)
DV> сделать что-нибудь типа
DV> SomeMagicProc(sm,hMap)
DV> и после этого чтобы sm показывал туда, куда надо... Я не слишком много
DV> хочу???
Дык я именно это и имел в виду. Если ты говоришь, что VB работает со
структурами по указателю, до должно сработать что-то типа такого:
sub SomeSub(byref sm as tShare)
LockMutex ShareMutex
'CopyMemory sm, ByVal hMap, Len(sm) ' а этого не надо
sm.strData = s
sm.fData = True
'CopyMemory ByVal hMap, sm, Len(sm) ' и этого не надо
ReleaseMutex ShareMutex
end sub
ну и звать ее как
result = CallWindowProc(AddressOf SomeSub, hMap, 0, 0, 0)
разумеется работоспособность этого зависит от того как VB отрабатывает byref sm
as TShare. Если он ожидает там именно адрес первого элемента структуры, то все
должно сработать. Проверять пока некогда, сорри.
Anton
* Origin: -== Sibkot Mail Station ==- (2:5000/130.84)
Re: Работа функций Win32Api под XP
From: Alexander Asyabrik <belmis [@] mail.belpak.by>
Привет, Vasiliy.
Вы, было дело, писали, 9:06 22.04.04:
VK> "Alexander Asyabrik" <xxxx [@] xxx.xxxxxx.xx> сообщил/сообщила в новостях
VK> следующее: news:5219520062.20040421163544 [@] xxxx.xxxx.xxx...
Поубывау бы!!! Убери немедленно эти цитаты, от спама житья же просто нет!
VK> Очевидно, не работала именно функция RegCreateKey
Вообще-то должна работать.
>> BTW Рекомендуется использовать RegCreateKeyEx
VK> А Вы не могли бы привести пример , как правильно вызывать эту функцию в
VK> программе? Параметров у нее намного больше, чем у RegCreateKey, и как
VK> правильно ее вызвать, я даже не предположу...
Hичего особенного тут и не нужно
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias _
"RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
ByVal Reserved As Long, ByVal lpClass As String, _
ByVal dwOptions As Long, ByVal samDesired As Long, _
lpSecurityAttributes As Any, phkResult As Long, lpdwDisposition As Long) As Long
Const HKEY_CURRENT_USER = &H80000001
Const REG_OPTION_NON_VOLATILE = 0
Const STANDARD_RIGHTS_ALL = &H1F0000
Const SYNCHRONIZE = &H100000
Const KEY_CREATE_LINK = &H20
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Sub Command1_Click()
Dim Result As Long, Ret As Long
RegCreateKeyEx HKEY_CURRENT_USER, "Test key", 0, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, ByVal 0&, Result, Ret
If Result = 0 Then
MsgBox "Error while creating the Key!!", vbCritical
Else
MsgBox "The Key 'HKEY_CURRENT_USER\Test key' was created!", vbInformation
End If
End Sub
Кроме того Ret, если нужно, возвращает был ли ранее этот ключ в
реестре или был создан только сейчас. Указанный набор полей позволяет
не только создавать ключ, но и открывать его для правки, создания,
энумерации и тп.
А вообще тебе лучше готовым классом попробовать пользоваться, там это
уже все будет плотно упаковано. Master, А-у :) !
PS Еще раз прошу - не цитируй большое мое е-мыло!
--
Alexander
* Origin: Talk.Mail.Ru (2:5020/400)
CodePage autodetect
From: Сулейманов Тимур <timson [@] npf-geofizika.ru>
Здравствуйте
Подскажите пожалуйста, где бы раздобыть алгоритм,
позволяющий определить кодировку символов в произвольном тексте:
DOS 866 или WIN 1251?
--
Timson
* Origin: OOO BIS (2:5020/400)
Re: InputBox+PasswordChar
From: "A. Skrobov" <tyomitch [@] r66.ru>
Fri Apr 23 2004 00:38, Terekhin Alexandr wrote to Alexander Abramencov:
AA>> Можно ли как-нибудь сделать сабж? Т.е. в InputBox пpи вводе символов
AA>> отобpажался символ "*".
TA> Есть решение для TextBox:
TA> В свойствах установи PasswordChar = "*"
TA> Dim pswd As String
TA> Private Sub Text1_KeyPress(KeyAscii As Integer)
TA> pswd = pswd + Chr(KeyAscii)
TA> KeyAscii = Asc("*")
TA> End Sub
TA> Получаешь пароль в переменную pswd,
TA> По-моему такую штуку взломщики не берут...
Тогда и кнопки редактирования работать не будут, вроде бэкспейса.
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
Как переименовать файл
From: "A. Skrobov" <tyomitch [@] r66.ru>
Fri Apr 23 2004 00:43, SK wrote to All:
S> Как средствами VB переименовать файл?
Name Statement
Renames a disk file, directory, or folder.
Syntax
Name oldpathname As newpathname
The Name statement syntax has these parts:
Part Description
oldpathname Required.String expression that specifies the existing file name
and location - may include directory or folder, and drive.
newpathname Required. String expression that specifies the new file name and
location - may include directory or folder, and drive. The file name specified
by newpathname can't already exist.
Remarks
The Name statement renames a file and moves it to a different directory or
folder, if necessary. Name can move a file across drives, but it can only
rename an existing directory or folder when both newpathname and oldpathname
are located on the same drive. Name cannot create a new file, directory, or
folder.
Using Name on an open file produces an error. You must close an open file
before renaming it. Namearguments cannot include multiple-character (*) and
single-character (?) wildcards.
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
CodePage autodetect
From: Сулейманов Тимур <timson [@] npf-geofizika.ru>
Здравствуйте
Подскажите пожалуйста, где бы раздобыть алгоритм,
позволяющий определить кодировку символов в произвольном тексте:
DOS 866 или WIN 1251?
--
Timson
* Origin: OOO BIS (2:5020/400)
Re: InputBox+PasswordChar
From: "A. Skrobov" <tyomitch [@] r66.ru>
Fri Apr 23 2004 00:38, Terekhin Alexandr wrote to Alexander Abramencov:
AA>> Можно ли как-нибудь сделать сабж? Т.е. в InputBox пpи вводе символов
AA>> отобpажался символ "*".
TA> Есть решение для TextBox:
TA> В свойствах установи PasswordChar = "*"
TA> Dim pswd As String
TA> Private Sub Text1_KeyPress(KeyAscii As Integer)
TA> pswd = pswd + Chr(KeyAscii)
TA> KeyAscii = Asc("*")
TA> End Sub
TA> Получаешь пароль в переменную pswd,
TA> По-моему такую штуку взломщики не берут...
Тогда и кнопки редактирования работать не будут, вроде бэкспейса.
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)