Помогите с Checkbox

  • Автор темы craf
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

craf

Всем доброго времени суток! у меня проблемка вот такая: мне нужно чтобы при нажатии на галочку (B CheckBox) Менялся ключ реестра на 1 и обратно, подскажите пожалуйста что для этого вписать в CheckBox надо ?!

Заранее большое спасибо.
Я только начинающий :( не судите строго.
 
B

Barmutik

Всё зависит от выбранного Вами языка программирования. Практически в любом языке есть классы для работы с реестром Windows. Вот туда и смотреть...
 
C

craf

Если можете, помогите пожалуйста сделать этот трюк на Visual Basic 6.0. Чтобы с помощью CheckBox'a (поставив галочку) менялся ключ реестра например - с 0 на 1.

спасибо...
 
H

Hetman

Как записать\прочитать параметр в реестр


(из FAQ)Автор : Andrey_Kun
Код:
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long
Private Declare Function RegCreateKeyEx Lib "advapi32" 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, ByRef lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long)
' Registry keys
Private Enum hKey
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_PERFORMANCE_DATA = &H80000004
HKEY_CURRENT_CONFIG = &H80000005
HKEY_DYN_DATA = &H80000006
End Enum
' Registry access constants
Private Enum Reg
KEY_QUERY_VALUE = &H1
KEY_SET_VALUE = &H2
KEY_CREATE_SUB_KEY = &H4
KEY_ENUMERATE_SUB_KEYS = &H8
KEY_NOTIFY = &H10
KEY_CREATE_LINK = &H20
KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
KEY_WRITE = KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
KEY_ALL_ACCESS = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_SUB_KEY Or KEY_CREATE_LINK Or KEY_SET_VALUE
REG_OPTION_NON_VOLATILE = 0&
REG_OPTION_VOLATILE = &H1
End Enum
Private Function RegGetString(Root As hKey, SubKey As String, Key As String) As String
Dim Buffer As String, hKey As Long, nType As Long, nSize As Long
RegGetString = 0
If Not RegOpenKeyEx(Root, SubKey, 0, KEY_READ, hKey) Then
nSize = 0
Call RegQueryValueEx(hKey, Key, 0, nType, Buffer, nSize)
If hKey And nSize > 0 And nType = 1 Then
Buffer = Space(nSize + 1)
RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize
RegGetString = Left(Buffer, nSize - 1)
Call RegCloseKey(hKey)
End If
End If
End Function
Private Sub RegSetString(Root As Long, SubKey As String, Key As String, Value As String)
Dim hKey As Long, nDisp As Long
If Not RegCreateKeyEx(Root, SubKey, 0, vbNull, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, hKey, nDisp) Then
Call RegSetValueEx(hKey, Key, 0, 1, Value, Len(Value) + 1)
Call RegCloseKey(hKey)
End If
End Sub
Public Function RegGetDWORD(Root As Long, SubKey As String, strValueName As String) As Long
Dim lResult As Long, lValueType As Long, lBuf As Long, lDataBufSize As Long, keyhand As Long
Call RegOpenKey(Root, SubKey, keyhand)
lDataBufSize = 4
lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf, lDataBufSize)
If lResult = 0 And lValueType = 4 Then RegGetDWORD = lBuf
Call RegCloseKey(keyhand)
End Function
Public Sub RegSetDWORD(Root As Long, SubKey As String, strValueName As String, ByVal Value As Long)
Dim lResult As Long, keyhand As Long
Call RegCreateKey(Root, SubKey, keyhand)
lResult = RegSetValueEx(keyhand, strValueName, 0&, 4, Value, 4)
Call RegCloseKey(keyhand)
End Sub

могу кинуть Faq там есть мого полезного

B)
 
G

Guest

да, если можно, киньте пожалуйста Faq.
 
H

Hetman

Для: Guest
если хочешь Faq вероятно придётся link removed кинь мне личное link removed с адресом твоего мыла или стучись в ICQ (внизу слева от моего сообщения кликни "Сообщение" или "Визитка") (с этим форумом ещё полностью не разобрался)
 
H

Hetman

Для: Barmutik а как аттач сделать? и что б его скачать регистрация, вероятней всего, нужна?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!