Zum Inhalt springen

Mit Visual Basic Einträge in der Regestry ändern


-wAcKy-

Empfohlene Beiträge

ich kann dich erstmal beruhigen. es it möglich mit vb auf die registry zuzugreifen. ich weiß bloß nicht mehr genue wie. aber ich habs mir mal irgentwann notiert. ich glaub es ging irgentwie mit de wsh. ich werd mal nachschauen.

------------------

*** mfg maddin ***

Link zu diesem Kommentar
Auf anderen Seiten teilen

'This program needs 3 buttons

Const REG_SZ = 1 ' Unicode nul terminated string

Const REG_BINARY = 3 ' Free form binary

Const HKEY_CURRENT_USER = &H80000001

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

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 RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String

Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long

'retrieve nformation about the key

lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)

If lResult = 0 Then

If lValueType = REG_SZ Then

'Create a buffer

strBuf = String(lDataBufSize, Chr$(0))

'retrieve the key's content

lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize)

If lResult = 0 Then

'Remove the unnecessary chr$(0)'s

RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1)

End If

ElseIf lValueType = REG_BINARY Then

Dim strData As Integer

'retrieve the key's value

lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize)

If lResult = 0 Then

RegQueryStringValue = strData

End If

End If

End If

End Function

Function GetString(hKey As Long, strPath As String, strValue As String)

Dim Ret

'Open the key

RegOpenKey hKey, strPath, Ret

'Get the key's content

GetString = RegQueryStringValue(Ret, strValue)

'Close the key

RegCloseKey Ret

End Function

Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)

Dim Ret

'Create a new key

RegCreateKey hKey, strPath, Ret

'Save a string to the key

RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)

'close the key

RegCloseKey Ret

End Sub

Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String)

Dim Ret

'Create a new key

RegCreateKey hKey, strPath, Ret

'Set the key's value

RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4

'close the key

RegCloseKey Ret

End Sub

Sub DelSetting(hKey As Long, strPath As String, strValue As String)

Dim Ret

'Create a new key

RegCreateKey hKey, strPath, Ret

'Delete the key's value

RegDeleteValue Ret, strValue

'close the key

RegCloseKey Ret

End Sub

Private Sub Command1_Click()

Dim strString As String

'Ask for a value

strString = InputBox("Please enter a value between 0 and 255 to be saved as a binary value in the registry.", App.Title)

If strString = "" Or Val(strString) > 255 Or Val(strString) < 0 Then

MsgBox "Invalid value entered ...", vbExclamation + vbOKOnly, App.Title

Exit Sub

End If

'Save the value to the registry

SaveStringLong HKEY_CURRENT_USER, "KPD-Team", "BinaryValue", CByte(strString)

End Sub

Private Sub Command2_Click()

'Get a string from the registry

Ret = GetString(HKEY_CURRENT_USER, "KPD-Team", "BinaryValue")

If Ret = "" Then MsgBox "No value found !", vbExclamation + vbOKOnly, App.Title: Exit Sub

MsgBox "The value is " + Ret, vbOKOnly + vbInformation, App.Title

End Sub

Private Sub Command3_Click()

'Delete the setting from the registry

DelSetting HKEY_CURRENT_USER, "KPD-Team", "BinaryValue"

MsgBox "The value was deleted ...", vbInformation + vbOKOnly, App.Title

End Sub

Private Sub Form_Load()

Command1.Caption = "Set Value"

Command2.Caption = "Get Value"

Command3.Caption = "Delete Value"

End Sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

<BLOCKQUOTE><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von maddin:

ich hab auch noch eine möglichkeit nachzuliefern. und zwar gibt es da drei schöne funktionen.

Set WshShell = CreateObjekt("Wscript.Shell")

WshShell.RegWrite strName anyValue [strType]

WshShell.RegRead strName

WshShell.RegDelete strName

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...