Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
lordblack_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 10.11.2007
Beiträge: 55

Registrie datei?
Verfasst am: 03.12.2007, 00:11

Hallo liebe Cmmunity,
Ich möchte gerne eine Registrie datei in mein Prog tun so das wenn ich das prog öffne die .reg ausgeführt wird und sich einträgt.
kann mir einer sagen wie ich das verwirkliche?

Edit: Die reg datei soll erst ausgeführt werden wenn ich ein button klick! nicht beim starten des progs
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 03.12.2007, 10:13

Nunja. Du könntest sie als Ressource einbinden oder einfach an deine exe Datei anhängen und dann auslesen.

Aber ich finde dass das vollkommen unnötig ist.
Du kannst die reg Datei einfach während der Laufzeit erstellen und ausführen.

Dein Prog soll also die Datei erstellen lassen und dann den Text hineinschreiben.

Oder was noch logischer wäre ist, wenn dein Prog gleich von selbst die Änderungen in der Registry vornimmt.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
King of Chaos_
Coder
Coder

Anmeldedatum: 26.09.2007
Beiträge: 235


Verfasst am: 03.12.2007, 10:16

Zitat:
Oder was noch logischer wäre ist, wenn dein Prog gleich von selbst die Änderungen in der Registry vornimmt.


dafür is ja die funktionion bei Vb da *gg*

vielleicht weis er einfach ned wie das geht ...

sollte das so sein schreib mir einfach kurze pm dann kann ichs dir ja erklären
oder 255-539-405
oder du postest es einfach hier *gg* xD

glg

hf & GL
 
lordblack_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 10.11.2007
Beiträge: 55


Verfasst am: 03.12.2007, 20:38

habe dich mal in icq geaddet
und danke für die antworten:P

Zitat:
vielleicht weis er einfach ned wie das geht ...


genau das ist mein problemm hehe
 
King of Chaos_
Coder
Coder

Anmeldedatum: 26.09.2007
Beiträge: 235


Verfasst am: 03.12.2007, 20:52

hab keine anfrage bekommen ^^
 
lordblack_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 10.11.2007
Beiträge: 55


Verfasst am: 04.12.2007, 01:11

266-767-050 adde du mich mal pls:P
 
toilette_
Coder
Coder

Anmeldedatum: 20.10.2007
Beiträge: 86


Verfasst am: 04.12.2007, 09:23

open "C:\registrydatei.reg" for output as #1
write #1, "das was in der .reg sein soll"
close #1

shell "C:\registrydatei.reg"

so müsste das ungefähr...
 
King of Chaos_
Coder
Coder

Anmeldedatum: 26.09.2007
Beiträge: 235


Verfasst am: 04.12.2007, 10:33

ja das dürfte so in etwa gehen

aber warum sollte mans mit ner extra reg datei machen?

als nächstes dann via res oder was? ! xD

ne mal ernsthaft ^^


Hier mal ne Kleine beschreibung wie man mit der registery in Visual basic umgeht ^^ gl and hf ^^

'zunächst alle benötigten API-Deklarationen
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

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

Const HKEY_CURRENT_USER = &H80000001
Const REG_SZ = 1
Const REG_BINARY = 3

'Wert (String/Text) für einen bestimmten
'Schlüsselnamen speichern. Sollte der Schlüssel nicht
'existieren, wird dieser autom. erstellt.
'
'Parameterbeschreibung
'---------------------
'hKey (Hauptschlüssel) : z.B. HKEY_CURRENT_USER
'sPath (Schlüsselpfad) : z.B. MeineAnwendung
'sValue (Schlüsselname): z.B. Path
'iData (Schlüsselwert) : z.B. c:\programme\MeineAnwendung

Sub fStringSpeichern(hKey As Long, sPath As String, _
sValue As String, iData As String)

Dim vRet As Variant

RegCreateKey hKey, sPath, vRet
RegSetValueEx vRet, sValue, 0, REG_SZ, ByVal iData, _
Len(iData)
RegCloseKey vRet
End Sub


'Wert (Binär 0-255) für einen bestimmten
'Schlüsselnamen speichern. Sollte der Schlüssel nicht
'existieren, wird dieser autom. erstellt.
'
'Parameterbeschreibung
'---------------------
'hKey (Hauptschlüssel) : z.B. HKEY_CURRENT_USER
'sPath (Schlüsselpfad) : z.B. MeineAnwendung
'sValue (Schlüsselname): z.B. Code
'iData (Schlüsselwert) : z.B. 220

Sub fStringSpeichernLong(hKey As Long, sPath As String, _
sValue As String, iData As String)

Dim vRet As Variant

RegCreateKey hKey, sPath, vRet
RegSetValueEx vRet, sValue, 0, REG_BINARY, _
CByte(iData), 4
RegCloseKey vRet
End Sub


'Wert für einen bestimmten
'Schlüsselnamen auslesen.
'
'Parameterbeschreibung
'---------------------
'hKey (Hauptschlüssel) : z.B. HKEY_CURRENT_USER
'sPath (Schlüsselpfad) : z.B. MeineAnwendung
'sValue (Schlüsselname): z.B. Path
'Rückgabewert : z.B. c:\programme\MeineAnwendung

Function fWertLesen(hKey As Long, sPath As String, _
sValue As String)

Dim vRet As Variant

RegOpenKey hKey, sPath, vRet
fWertLesen = fRegAbfrageWert(vRet, sValue)
RegCloseKey vRet
End Function

'Wird von "fWertLesen" aufgerufen und gibt den Wert
'eines Schlüsselnamens zurück. Hierbei wird autom.
'ermittelt, ob es sich um einen String oder Binärwert
'handelt.
Function fRegAbfrageWert(ByVal hKey As Long, _
ByVal sValueName As String) As String

Dim sBuffer As String
Dim lRes As Long
Dim lTypeValue As Long
Dim lBufferSizeData As Long
Dim iData As Integer

lRes = RegQueryValueEx(hKey, sValueName, 0, _
lTypeValue, ByVal 0, lBufferSizeData)
If lRes = 0 Then
If lTypeValue = REG_SZ Then
sBuffer = String(lBufferSizeData, Chr$(0))
lRes = RegQueryValueEx(hKey, sValueName, 0, _
0, ByVal sBuffer, lBufferSizeData)
If lRes = 0 Then
fRegAbfrageWert = Left$(sBuffer, _
InStr(1, sBuffer, Chr$(0)) - 1)
End If
ElseIf lTypeValue = REG_BINARY Then
lRes = RegQueryValueEx(hKey, sValueName, 0, _
0, iData, lBufferSizeData)
If lRes = 0 Then
fRegAbfrageWert = iData
End If
End If
End If
End Function


'Löschen eines Schlüsselnamens
'
'Parameterbeschreibung
'---------------------
'hKey (Hauptschlüssel) : z.B. HKEY_CURRENT_USER
'sPath (Schlüsselpfad) : z.B. MeineAnwendung
'sValue (Schlüsselname): z.B. Path

Sub fWerteLoeschen(hKey As Long, sPath As String, _
sValue As String)

Dim vRet As Variant

RegCreateKey hKey, sPath, vRet
RegDeleteValue vRet, sValue
RegCloseKey vRet
End Sub
Beispiel:
In Ihrer Anwendung möchten Sie den zuletzt für einen Ausdruck benutzen Drucker in der Registry speichern (fStringSpeichern). Vor dem Drucken soll dieser Drucker dann als Standard-Auswahl zur Verfügung stehen (fWertLesen).

'zuletzt eingestellten Drucker ermitteln
Dim prnName As String
prnName = fWertLesen(HKEY_CURRENT_USER, _
"MeineAnwendung", "Drucker")

'Wenn noch kein Eintrag gespeichert ist,
'soll der Standard-Drucker verwendet werden
If prnName = "" Then prnName = Printer.DeviceName

'Druckerauswahl...
...

'Auswahl speichern
fStringSpeichern HKEY_CURRENT_USER, "MeineAnwendung", _
"Drucker", prnName
Um nicht mehr benötigte Einträge in der Registry wieder zu löschen, steht die Funktion fWerteLoeschen zur Verfügung.

'Löschen der Druckerauswahl
fWerteLoeschen HKEY_CURRENT_USER, "MeineAnwendung", _
"Drucker"


by vb-@rchiv
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 04.12.2007, 15:18


Ich würde sagen eine reg Datei kann praktisch sein, wenn man einem Benutzer die Möglichkeit geben will Änderungen vorzunehmen an so einer reg Datei.
Wenn das fix ins Programm integriert ist, lässt sich da nicht mehr viel ändern.

Kommt halt drauf an was man programmieren will.

Außerdem denke ich ist es evt. praktisch wenn es sich um sehr viele Einträge handelt und man keine Lust hat das alles im Code unterzubringen.

Aber normal würde man es natürlich per code machen.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: datei

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Button/Text 958 18.06.2009, 16:21
Keine neuen Beiträge E-Mail bekomm nach Button klicken 713 02.10.2007, 17:45
Keine neuen Beiträge Bestimmten "Button" auf Website klicken 1684 14.09.2007, 21:27
Keine neuen Beiträge webbrowser/ webformular button klicken 1611 23.07.2007, 23:07
Keine neuen Beiträge Button drücken.. 842 01.07.2007, 13:19
 


[ Time: 0.0727s ][ Queries: 106 (0.0290s) ][ GZIP on - Debug on ]