¿Los expertos en VB pueden ayudarme a modificar el código?
Simplemente cree una ventana y un módulo, y coloque una cantidad de controles (5 etiquetas, 5 texto, 1 comando)
El código de la ventana es el siguiente:
Private Sub Command1_Click()
Llamar a SetStringValue(HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Control\ComputerName\ComputerName", "ComputerName", Text1.Text)
Llamar a SetStringValue(HKEY_LOCAL_MACHINE , "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters", "Hostname", Text2.Text)
Llamar a SetStringValue2(HKEY_LOCAL_MACHINE, "SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{C09A8CD0-2C7A - 4866-AAD0-D36CBD733EFC}", "IPAddress", Text3.Text)
Llamar a SetStringValue2(HKEY_LOCAL_MACHINE, "SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{C09A8CD0-2C7A-4866-AAD0 - D36CBD733EFC}", "DefaultGateway", Text4.Text)
Llamar a SetStringValue(HKEY_LOCAL_MACHINE, "SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{C09A8CD0-2C7A-4866-AAD0-D36CBD733EFC}" , "NameServer", Text5.Text)
End Sub
Sub privado Form_Load()
Command1.Caption = "Escribir"
Label1.Caption = "ComputerName:"
Text1.Text = GetStringValue(HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Control\ComputerName\ComputerName", "ComputerName")
Label2.Caption = "Nombre de host:"
Text2.Text = GetStringValue(HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters", "Nombre de host")
Label3.Caption = "IP: "
Texto3.Texto = GetStringValue(HKEY_LOCAL_MACHINE,
"SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{C09A8CD0-2C7A-4866-AAD0-D36CBD733EFC}", "IPAddress")
Label4.Caption = "Puerta de enlace predeterminada:"
Text4.Text = GetStringValue(HKEY_LOCAL_MACHINE, "SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{C09A8CD0-2C7A-4866-AAD0-D36CBD733EFC}", "DefaultGateway")
Etiqueta5. Caption = "Servidor DNS:"
Text5.Text = GetStringValue(HKEY_LOCAL_MACHINE, "SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{C09A8CD0-2C7A-4866-AAD0-D36CBD733EFC}", "NameServer ")
End Sub
El código del módulo es el siguiente:
'Constante de entrada del registro
Public Const HKEY_CLASSES_ROOT = amp; H80000000
Const pública HKEY_CURRENT_USER = amp; H80000001
Const pública HKEY_LOCAL_MACHINE = amp; H80000002
Const pública HKEY_USERS = amp; Const HKEY_PERFORMANCE_DATA = amp;H80000004
Público Const ERROR_SUCCESS = 0amp;
Declarar función RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) Mientras
Declarar función RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declarar función RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" ( ByVal hKey As Long, ByVal lpSubKey As String) Mientras
Declarar Función RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) Siempre
Declarar
e Función RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declarar función RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey mientras, ByVal lpSubKey como cadena, ByVal ulOptions mientras, ByVal samDesired mientras, phkResult mientras)
Declarar función RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey mientras, ByVal lpValueName como cadena, ByVal lpReserved mientras, lpType mientras, lpData como cualquiera, lpcbData mientras) Mientras
Declarar función RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey mientras, ByVal lpValueName como cadena, ByVal lpReserved mientras, lpType mientras, ByVal lpData como cadena, lpcbData mientras) Mientras
Declarar función RegQueryValueExLong Lib "advapi32. dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long
Declarar función RegQueryValueExNULL Lib " advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey mientras, ByVal lpValueName como cadena, ByVal lpReserved mientras, lpType mientras, ByVal lpData mientras, lpcbData mientras) Mientras
Declarar función RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" ( ByVal hKey mientras, ByVal lpValueName como cadena, ByVal reservado mientras, ByVal dwT
ype Mientras, lpData Como Cualquiera, ByVal cbData Mientras) Mientras
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
Public Sub savekey( hKey As Long, strPath As String)
Dim keyhandamp;
r = RegCreateKey(hKey, strPath, keyhandamp;)
r = RegCloseKey(keyhandamp;)
End Sub
Función pública GetStringValue(hKey As Long, strPath As String, strValue As String)
Dim keyhand As Long
Dim datatype As Long
Dim lResult As Long
Dim strBuf As String
Dim lDataBufSize As Long
Dim intZeroPos As Integer p> p>
r = RegOpenKey(hKey, strPath, keyhand)
lResult = RegQueryValueEx(keyhand, strValue, 0amp;, lValueType, ByVal 0amp;, lDataBufSize)
Si lValueType = REG_SZ Entonces
strBuf = String(lDataBufSize, " ")
lResult = RegQueryValueEx(keyhand, strValue, 0amp;, 0amp;, ByVal strBuf, lDataBufSize)
Si lResult = ERROR_SUCCESS Entonces
intZeroPos = InStr(strBuf, Chr$(0))
Si intZeroPos gt 0 Entonces
GetStringValue = Left$ (strBuf, intZeroPos - 1)
Else
GetStringValue = strBuf
End If
End If
End If
Función final
Public Sub SetStringValue(hKey As Long, strPath As String, strValue As String, strdata As String)
Dim keyhand As Largo
Dim r As Largo
r = RegCreateKey(hKey, strPath, keyhand)
r = RegSetValueEx(keyhand, str
Valor, 0, REG_SZ, ByVal strdata, Len(strdata))
r = RegCloseKey(keyhand)
End Sub
Función GetDwordValue(ByVal hKey As Long , ByVal strPath como cadena, ByVal strValueName como cadena) mientras
Atenuar lResult mientras
Atenuar lValueType mientras
Atenuar lBuf mientras
Atenuar lDataBufSize mientras
Atenuar r mientras
Atenuar keyhand mientras
r = RegOpenKey(hKey, strPath, keyhand)
lDataBufSize = 4
lResult = RegQueryValueEx(keyhand, strValueName, 0amp;, lValueType, lBuf, lDataBufSize)
Si lResult = ERROR_SUCCESS Entonces
Si lValueType = REG_DWORD Entonces
GetDwordValue = lBuf
Finalizar si
Finalizar si
r = RegCloseKey(keyhand)
Fin de función
Función SetDwordValue(ByVal hKey mientras, ByVal strPath como cadena, ByVal strValueName como cadena, ByVal lData mientras)
Dim lResult As Long
Atenuar keyhand siempre
Atenuar r mientras
r = RegCreateKey(hKey, strPath, keyhand)
lResult = RegSetValueEx(keyhand, strValueName, 0amp ;, REG_DWORD, lData, 4)
r = RegCloseKey(keyhand)
Función final
Función pública DeleteKey(lPredefinida clave siempre, sKeyName como cadena)
'Eliminar clave principal
Atenuar lRetVal mientras
Atenuar hKey mientras
lRetVal = RegOpenKeyEx(lPredefinidoKey, sKeyName, 0, KEY_ALL_ACCESS , hKey)
lRetVal = RegDeleteKey(lPredefinidaClave, sKeyName)
RegCloseKey (h
Clave)
Función final
Función pública EliminarValor(lClavePredefinida tan larga, sKeyName como cadena, sValueName como cadena)
'Eliminar valor de clave
Atenuar lRetVal mientras
Atenuar hKey mientras
lRetVal = RegOpenKeyEx(lPredefinidoKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
lRetVal = RegDeleteValue(hKey , sValueName)
RegCloseKey (hKey)
Función final
Función pública QueryValue(lPredefinida clave como larga, sKeyName como cadena, sValueName como cadena)
'Obtener valor clave
Atenuar lRetVal mientras
Atenuar hKey mientras
Atenuar vValue como variante
lRetVal = RegOpenKeyEx (lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
lRetVal = RegQueryValueEx(hKey, sValueName, vValue, 0, 0, 0)
QueryValue = vValue
RegCloseKey (hKey)
Función final