auf Registry zugreifen

  • #1
S

Scarface_666

Bekanntes Mitglied
Themenersteller
Dabei seit
21.12.2004
Beiträge
764
Reaktionspunkte
0
Wie kann ich aus einem Makro auf nen Registry Eintrag zugreifen?? Ich müsste auf nen Eintrag aus HKEY_LOCAL_MACHINE\ODBC... aus nem Word-Dokument zugreifen. Also über VBMakro.
Hab das bisher so verucht: test$ = GetSetting(SOFTWARE\ODBC..., Feld, HKEY_LOCAL_MACHINE)
 
  • #2
Vielleicht das ganze Problem: Das Dokument ist ein Serienbrief. Beim Start soll jetzt aus der Registry der Pfad der Datenbank gelesen werden, da dieser bei verschiedenen Beuntzern variieren kann. Und diese steht eben in HKEY_LOCAL_MACHINE\ODBC...
 
  • #3
Also Gut: So wie es aussieht kann ich nur auch HKEY_Current_USER\VB..irgendwas\... und dessen Unterordner zugreifen. Außerdem stellt sich das Problem, dass ActiveDocument.MailMerge.DataSource.Name wohl Schreibgeschützt ist. Somit zweifle ich langsam daran, ob das überhaupt möglich ist.

Bräuchte dringend Hilfe!!!
 
  • #4
Also gut soweit klar. Nur wie übergeb ich ihm jetzt nen Benutzernamen und nen Passwort??????
 
  • #5
Hallo Scarface_666,

schau mal unter .
Dort ist ein Beispiel zum Registry auslesen per API.
(7. Registry-Eintrag auslesen)

Im Test-Programm fehlt ein Zeilenfortsetzungszeichen.

Korrigierte Version:
Code:
Sub TestShowExcelText2()
MsgBox GetRegistryValue(HKEY_LOCAL_MACHINE, _
Software\ODBC\ODBC.INI\ODBC File DSN, DefaultDSNDir)
End Sub

Als Konstante noch definieren:
Code:
Public Const HKEY_LOCAL_MACHINE = &H80000002

Damit kann ich bei mir problemlos auf die Registry zugreifen und erhalte den richtigen Wert zurück. Aber Achtung bei der Angabe des Registry-Pfades: Groß-/Kleinschreibung beachten, sonst gibt es nur Error-Meldungen.

Gruß Matjes :)
 
  • #6
Danke, aber wie gesagt habe ich noch das problem, dass ich auf ne Datenbank zugreifen muss. Funktioniert ja auch über ActiveDocument.MailMerge.OpenDataSource... aber irgendwie krieg ich das nicht hin, dass er Benutzernamen und Passwort automatisch mit übergibt. Ich krieg immer dieses Fenster beim Start.
 
  • #8
OK, werd ich am Montag mal testen.

Gruß
Scarface
 
  • #9
Also: GetRegistryValue gibt's bei mir irgendwie nicht. Es kommt ne Fehlermeldung und im Objektkatalog ist es auch nirgendwo zu finden.
Außerdem klappt das mit dem Connection:=Driver={Microsoft Access-Datenbank};UID=admin;PWD=.;SourceDB= & pfad & ;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes
auch nicht. Ich werde trotzdem noch nach Datenbanktyp, Benutzernamen und Passwort gefragt.
 
  • #10
Also, scheinbar hat das SQL Statement gefehlt. Jetzt kommt nur noch der Datenverknüpfungseigenschaften-Dialog. Kann ich den auch irgendwie ausblenden?? Mit click auf OK funktioniert's dann aber.

Kann ich eigentlich die Datensatzquelle per Code entfernen??? Wenn die DB nicht mehr da ist kann ich das ja über optionen. Aber im Object MailMerge hab ich nichts passendes gefunden und .Close funktioniert irgendwie auch nicht so wie ich mir das vorgestellt habe.
Ich möchte die DataSource beim beenden des Dokuments löschen und beim öffnen mit dem Pfad aus der Registry wieder erstellen.
Aber GetRegistryValue gibt's in Word2003VisualBasic wohl nicht.
 
Thema:

auf Registry zugreifen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.966
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben