Wizards & Wizards & Builders GmbH Builders GmbH
INI-Dateien und RegistryINI-Dateien und Registry
Arbeiten mit der Registry von Arbeiten mit der Registry von Windows NT / Windows 95 inWindows NT / Windows 95 in
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Diese Schulung dient der Einführung in das Arbeiten mit INI-
Dateien sowie der Registry von Windows NT unter
Microsoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
ThemenübersichtThemenübersicht
Aufbau von INI-DateienAufbau von INI-Dateien Verarbeiten von INI-DateienVerarbeiten von INI-Dateien Bearbeiten der RegistryBearbeiten der Registry Bereiche der RegistryBereiche der Registry Die Bereiche im EinzelnenDie Bereiche im Einzelnen Werttypen in der RegistryWerttypen in der Registry Dateien der RegistryDateien der Registry Beispiele für Registry-KeysBeispiele für Registry-Keys VFP-Funktionen für RegistryVFP-Funktionen für Registry Betriebssystem-Funktionen für RegistryBetriebssystem-Funktionen für Registry
Wizards & Wizards & Builders GmbH Builders GmbH
Arbeiten mit INI-DateienArbeiten mit INI-Dateien
Verwendung von INI-Verwendung von INI-Dateien unter Dateien unter
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Aufbau von INI-DateienAufbau von INI-Dateien
Werden nur noch ungern Werden nur noch ungern verwendetverwendet
Können an beliebiger Stelle Können an beliebiger Stelle seinsein
Enthalten versch. [Bereiche]Enthalten versch. [Bereiche] Darunter einen Schlüssel mit Darunter einen Schlüssel mit
einer Wertzuweisungeiner Wertzuweisung
Wizards & Wizards & Builders GmbH Builders GmbH
Verarbeiten von INI-Verarbeiten von INI-DateienDateien
Deklaration DLL in WIN32API:Deklaration DLL in WIN32API:DECLARE INTEGER GetPrivateProfileString in win32api DECLARE INTEGER GetPrivateProfileString in win32api
String,String,String, String @, integer,stringString,String,String, String @, integer,string
DECLARE INTEGER WritePrivateProfileString in win32api DECLARE INTEGER WritePrivateProfileString in win32api String,String,String,String @, integer,stringString,String,String,String @, integer,string
Aufruf der Funktion:Aufruf der Funktion:=GetPrivateProfileString( <tcSection>, <tcVar>, =GetPrivateProfileString( <tcSection>, <tcVar>,
"", @<tcBuffer>, len(<tcbuffer>), <tcIniFile>)"", @<tcBuffer>, len(<tcbuffer>), <tcIniFile>)
*-- Rückgabe der gültigen neuen Bufferlänge*-- Rückgabe der gültigen neuen Bufferlänge
tcBuffer = left( tcBuffer, lnLen )tcBuffer = left( tcBuffer, lnLen )
Wizards & Wizards & Builders GmbH Builders GmbH
RegistryRegistry
Struktur der Registry Struktur der Registry unter Microsoft Windows unter Microsoft Windows
NTNT
Wizards & Wizards & Builders GmbH Builders GmbH
Bearbeiten der RegistryBearbeiten der Registry
REGEDIT.EXEREGEDIT.EXE Übersichtliche Darstellung unter NTÜbersichtliche Darstellung unter NT
REGEDT32.EXEREGEDT32.EXE Darstellung in getrennten FensternDarstellung in getrennten Fenstern Speichern von Bereichen der RegistrySpeichern von Bereichen der Registry
SystemfunktionenSystemfunktionen Direktes Lesen/Schreiben von Direktes Lesen/Schreiben von
EinträgenEinträgen
Wizards & Wizards & Builders GmbH Builders GmbH
Aufbau der RegistryAufbau der Registry
Wizards & Wizards & Builders GmbH Builders GmbH
Aufbau und Sinn der Aufbau und Sinn der RegistryRegistry
Hierarchische Gliederung von Hierarchische Gliederung von KonfigurationsinformationenKonfigurationsinformationen
Einheitlicher Zugriff über Einheitlicher Zugriff über „Schlüssel“ (Hierarchie)„Schlüssel“ (Hierarchie)
Definition von „Name“, Definition von „Name“, „Datentyp“ und „Wert“„Datentyp“ und „Wert“
Zentrale Speicherung im OSZentrale Speicherung im OS
Wizards & Wizards & Builders GmbH Builders GmbH
Bereiche der RegistryBereiche der Registry
HKEY_LOCAL_MACHINEHKEY_LOCAL_MACHINE HKEY_USERSHKEY_USERS HKEY_DYN_DATAHKEY_DYN_DATA
HKEY_CLASSES_ROOTHKEY_CLASSES_ROOT HKEY_CURRENT_USERHKEY_CURRENT_USER HKEY_CURRENT_CONFIGHKEY_CURRENT_CONFIG
Wizards & Wizards & Builders GmbH Builders GmbH
Verkürzte EinträgeVerkürzte Einträge
HKEY_CLASSES_ROOTHKEY_CLASSES_ROOT entspricht HKEY_LOCAL_MACHINE\entspricht HKEY_LOCAL_MACHINE\
Software\ClassesSoftware\Classes
HKEY_CURRENT_USERHKEY_CURRENT_USER entspricht HKEY_USERS\ für den aktuellen entspricht HKEY_USERS\ für den aktuellen
AnwenderAnwender
HKEY_CURRENT_CONFIGHKEY_CURRENT_CONFIG entspricht HKEY_LOCAL_MACHINE\entspricht HKEY_LOCAL_MACHINE\
Software bzw. \Hardware für aktuelle Software bzw. \Hardware für aktuelle KonfigurationKonfiguration
Wizards & Wizards & Builders GmbH Builders GmbH
Tatsächliche EinträgeTatsächliche Einträge
HKEY_LOCAL_MACHINEHKEY_LOCAL_MACHINE Komplette Konfiguration für den Komplette Konfiguration für den
Arbeitsplatz ohne BenutzerspezifischesArbeitsplatz ohne Benutzerspezifisches
HKEY_USERSHKEY_USERS Anwenderspezifische DatenAnwenderspezifische Daten
HKEY_DYN_DATAHKEY_DYN_DATA Dynamische Daten - kein Bearbeiten Dynamische Daten - kein Bearbeiten
oder Lesen möglich!oder Lesen möglich!
Wizards & Wizards & Builders GmbH Builders GmbH
HKEY_LOCAL_MACHINE (1)HKEY_LOCAL_MACHINE (1)
HARDWAREHARDWARE wird beim Systemstart neu aufgebautwird beim Systemstart neu aufgebaut siehe separate Aufstellungsiehe separate Aufstellung
SAMSAM Security Account ManagerSecurity Account Manager Zugriff nur über BenutzermanagerZugriff nur über Benutzermanager
SECURITYSECURITY ebenfalls kein direkter Zugriffebenfalls kein direkter Zugriff
Wizards & Wizards & Builders GmbH Builders GmbH
HKEY_LOCAL_MACHINE (2)HKEY_LOCAL_MACHINE (2)
SOFTWARESOFTWARE Diverse Schlüssel von MicrosoftDiverse Schlüssel von Microsoft Schlüssel anderer Hersteller (!)Schlüssel anderer Hersteller (!) siehe separate Aufstellungsiehe separate Aufstellung
SYSTEMSYSTEM Konfiguration EinheitentreiberKonfiguration Einheitentreiber Konfiguration Dienste von NTKonfiguration Dienste von NT siehe separate Aufstellungsiehe separate Aufstellung
Wizards & Wizards & Builders GmbH Builders GmbH
HKEY_LOCAL_MACHINE\HKEY_LOCAL_MACHINE\HARDWAREHARDWARE
DESCRIPTIONDESCRIPTION Beim Start gesammelte Beim Start gesammelte
Systeminformationen - änderbar aber Systeminformationen - änderbar aber bei nächstem Start überschrieben...bei nächstem Start überschrieben...
DEVICEMAPDEVICEMAP Verweis auf Registry-InformationenVerweis auf Registry-Informationen
RESOURCEMAPRESOURCEMAP Zuordnung Treiber zu IRQ/IO usw.Zuordnung Treiber zu IRQ/IO usw.
Wizards & Wizards & Builders GmbH Builders GmbH
HKEY_LOCAL_MACHINE\HKEY_LOCAL_MACHINE\SOFTWARESOFTWARE
CLASSES CLASSES = HKEY_CLASSES_ROOT= HKEY_CLASSES_ROOT MICROSOFT MICROSOFT = =
Programme/SystemProgramme/System PROGRAM GROUPS (alt)PROGRAM GROUPS (alt) SECURE SECURE = Administratoren= Administratoren WIN 3.1 MIGRATION STATUSWIN 3.1 MIGRATION STATUS
Windows 3.1. Migration Status INI-Windows 3.1. Migration Status INI-FilesFiles
Wizards & Wizards & Builders GmbH Builders GmbH
Hinweis Hinweis HKEY_CLASSES_ROOTHKEY_CLASSES_ROOT
Erstmal alle System-EndungenErstmal alle System-Endungen Bei den meisten Einträgen Bei den meisten Einträgen
Untereintrag mit Verweis CLSIDUntereintrag mit Verweis CLSID CLSID mit Untereintrag mit CLSID mit Untereintrag mit
Verweis auf TYPELIBVerweis auf TYPELIB TYPLIB enthält Interface-TYPLIB enthält Interface-
Beschreibung (OLE2-Viewer)Beschreibung (OLE2-Viewer)
Wizards & Wizards & Builders GmbH Builders GmbH
HKEY_LOCAL_MACHINE\SYSTEMHKEY_LOCAL_MACHINE\SYSTEM
CLONECLONE Letzte lauffähige VersionLetzte lauffähige Version
CONTROLSETnnnCONTROLSETnnn verschiedene Control-Setsverschiedene Control-Sets
CURRENTCONTROLSETCURRENTCONTROLSET aktuelle Konfigurationaktuelle Konfiguration
SELECTSELECT Current, Default, Failed, LastKnownGoodCurrent, Default, Failed, LastKnownGood
SETUPSETUP
Wizards & Wizards & Builders GmbH Builders GmbH
HKEY_LOCAL_MACHINE\SYSTEM\ControlsetHKEY_LOCAL_MACHINE\SYSTEM\Controlset
CONTROLCONTROL Einstellungen für SystemstartEinstellungen für Systemstart
SERVICESSERVICES Einheitentreiber und DiensteEinheitentreiber und Dienste Diverse Treiber für nicht Diverse Treiber für nicht
vorhandenes...vorhandenes...
HARDWARE PROFILES (ggf.)HARDWARE PROFILES (ggf.) ENUM (Plug & Play) (ggf.)ENUM (Plug & Play) (ggf.)
Wizards & Wizards & Builders GmbH Builders GmbH
Datentypen in der Datentypen in der RegistryRegistry
REG_BINARYREG_BINARY Binär/HexawertBinär/Hexawert REG_DWORDREG_DWORD 32-Bit-Wert Hex32-Bit-Wert Hex REG_SZREG_SZ ZeichenketteZeichenkette REG_EXPAND_SZREG_EXPAND_SZ ExpandiertExpandiert
z.B. für Verwendung von Platzhalternz.B. für Verwendung von Platzhaltern Beispiel: %systemroot%Beispiel: %systemroot%
REG_MULTI_SZREG_MULTI_SZ MehrzeiligMehrzeilig
Wizards & Wizards & Builders GmbH Builders GmbH
Dateien der RegistryDateien der Registry
%systemroot%\PROFILES%systemroot%\PROFILES Defaultuser mit NTUSER.DAT-VorlageDefaultuser mit NTUSER.DAT-Vorlage <User>-Verzeichnis mit NTUSER.DAT<User>-Verzeichnis mit NTUSER.DAT
%systemroot%\SYSTEM32\CONFIG%systemroot%\SYSTEM32\CONFIG HKEY_LOCAL_MACHINEHKEY_LOCAL_MACHINE
Default, SAM, Security, Software, SystemDefault, SAM, Security, Software, System
*. = Original, *.ALT = Backup, *.LOG = *. = Original, *.ALT = Backup, *.LOG = Protokoll, *.SAV = Protokoll, *.SAV = ZusatzinformationenZusatzinformationen
Wizards & Wizards & Builders GmbH Builders GmbH
Beispiele Registry-SchlüsselBeispiele Registry-Schlüssel
Einstellung Sommerzeit:Einstellung Sommerzeit: "HKEY_LOCAL_MACHINE\System\"HKEY_LOCAL_MACHINE\System\
CurrentControlSet\Control\TimeZoneInformation" CurrentControlSet\Control\TimeZoneInformation" anwählenanwählen
Bei der Position "StandardStart" im dritten Bei der Position "StandardStart" im dritten Zahlenpaar die 09 durch 0A ersetzenZahlenpaar die 09 durch 0A ersetzen
Einstellung Source-Control:Einstellung Source-Control: "HKEY_LOCAL_MACHINE\SOFTWARE\"HKEY_LOCAL_MACHINE\SOFTWARE\
SourceControlProvider\InstalledSCCProvider“SourceControlProvider\InstalledSCCProvider“
Einstellungen zu Visual FoxProEinstellungen zu Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Programmierung RegistryProgrammierung Registry
Programmierung der Programmierung der Registry mit Registry mit
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Registry-Funktionen in Registry-Funktionen in VFPVFP
=SYS(3056,1)=SYS(3056,1) SET OLEOBJECT ON/OFFSET OLEOBJECT ON/OFF -R-Switch-R-Switch Registry-ObjektRegistry-Objekt
GetAppPathGetAppPath GetLatestVersionGetLatestVersion GetApplicationGetApplication
Wizards & Wizards & Builders GmbH Builders GmbH
Programmierung (1)Programmierung (1)
WINAPI-Funktionsdeklarationen:WINAPI-Funktionsdeklarationen:DECLARE INTEGER RegOpenKey IN Win32API ;DECLARE INTEGER RegOpenKey IN Win32API ;
INTEGER hKey, ;INTEGER hKey, ; && handle of open key&& handle of open keySTRINGSTRING @lpszSubKey, ;@lpszSubKey, ; && address of name of subkey to && address of name of subkey to
open open INTEGERINTEGER @phkResult@phkResult && address of handle of open key && address of handle of open key
DECLARE INTEGER RegCreateKey IN Win32API ;DECLARE INTEGER RegCreateKey IN Win32API ;INTEGER hKey, ;INTEGER hKey, ; && handle of open key&& handle of open keySTRINGSTRING @lpszSubKey, ;@lpszSubKey, ; && address of name of subkey && address of name of subkey
&& to create&& to createINTEGERINTEGER @phkResult@phkResult && address of handle of open key && address of handle of open key
DECLARE INTEGER RegCloseKey IN Win32API ;DECLARE INTEGER RegCloseKey IN Win32API ;INTEGER hKeyINTEGER hKey && handle of open key && handle of open key
DECLARE INTEGER RegDeleteKey IN Win32API ;DECLARE INTEGER RegDeleteKey IN Win32API ;INTEGER hKey, ;INTEGER hKey, ; && handle of open key && handle of open key STRINGSTRING @lpszSubKey@lpszSubKey && address of name of && address of name of
&&subkey to delete &&subkey to delete
Wizards & Wizards & Builders GmbH Builders GmbH
Programmierung (2)Programmierung (2)
DECLARE INTEGER RegDeleteValue IN Win32API ;DECLARE INTEGER RegDeleteValue IN Win32API ;INTEGERINTEGER nHKey, ;nHKey, ; && handle of key&& handle of keySTRINGSTRING cSubKeycSubKey && address of value name && address of value name
DECLARE INTEGER RegSetValueEx IN Win32API ;DECLARE INTEGER RegSetValueEx IN Win32API ;INTEGERINTEGER hKey, ;hKey, ; && handle of key to set value for&& handle of key to set value forSTRINGSTRING lpValueName, ;lpValueName, ; && address of value to set&& address of value to setINTEGERINTEGER Reserved, ;Reserved, ; && reserved, set to 0&& reserved, set to 0INTEGERINTEGER dwType,dwType, ;; && flag for value type&& flag for value typeSTRINGSTRING lpData, ;lpData, ; && address of value data&& address of value dataINTEGERINTEGER cbDatacbData && size of value data && size of value data
DECLARE INTEGER RegQueryValueEx IN Win32API ;DECLARE INTEGER RegQueryValueEx IN Win32API ;INTEGERINTEGER hKey, ;hKey, ; && handle of key to query&& handle of key to querySTRINGSTRING lpszValueName, ;lpszValueName, ; && address of name of value to && address of name of value to
queryqueryINTEGERINTEGER lpdwReserved, ;lpdwReserved, ; && reserved&& reservedINTEGERINTEGER @lpdwType, ;@lpdwType, ; && address of buffer for value && address of buffer for value
typetypeSTRINGSTRING @lpbData, ;@lpbData, ; && address of data buffer&& address of data bufferINTEGER @lpcbDataINTEGER @lpcbData && address of data buffer size&& address of data buffer size
Wizards & Wizards & Builders GmbH Builders GmbH
Beispiel Solution-SamplesBeispiel Solution-Samples
* Die Library ist im Solution Sample enthalten* Die Library ist im Solution Sample enthalten
set library to progs\reg_solset library to progs\reg_sol
lcProgram= ""lcProgram= ""
lcPfad= ""lcPfad= ""
oReg= create( "FileReg")oReg= create( "FileReg")
* GetApplication( cExtnKey,cAppKey, lServer)* GetApplication( cExtnKey,cAppKey, lServer)
* GetAppPath( cExtension,cExtnKey,cAppKey,lServer)* GetAppPath( cExtension,cExtnKey,cAppKey,lServer)
if oReg.GetAppPath( "DOC",@lcProgram,@lcPfad) # 0if oReg.GetAppPath( "DOC",@lcProgram,@lcPfad) # 0
returnreturn
endifendif
? lcProgram? lcProgram
? lcPfad? lcPfad
Wizards & Wizards & Builders GmbH Builders GmbH
Konstanten für RegistryKonstanten für Registry
#define HKEY_CLASSES_ROOT #define HKEY_CLASSES_ROOT -2147483648-2147483648
#define HKEY_CURRENT_USER #define HKEY_CURRENT_USER -2147483647-2147483647
#define HKEY_LOCAL_MACHINE #define HKEY_LOCAL_MACHINE -2147483646-2147483646
#define REG_SZ #define REG_SZ 11
#define REG_OPTION_RESERVED#define REG_OPTION_RESERVED 00
#define REG_CLASS_DEFAULT#define REG_CLASS_DEFAULT """"
#define REG_SECURITY_DEFAULT#define REG_SECURITY_DEFAULT 00
#define REG_OPTION_NON_VOLATILE #define REG_OPTION_NON_VOLATILE 00
#define REG_OPTION_VOLATILE #define REG_OPTION_VOLATILE 11
#define REG_ALL_ACCESS#define REG_ALL_ACCESS 6363
Wizards & Wizards & Builders GmbH Builders GmbH
Welche Fragen stellen Welche Fragen stellen sich?sich?
Verwendung Verwendung der Registry der Registry eigentlich eigentlich zwingend (!)zwingend (!)
Anlegen / Lesen Anlegen / Lesen von lokalen von lokalen Registry-Registry-WertenWerten
Hierarchie (!)Hierarchie (!)
Wizards & Wizards & Builders GmbH Builders GmbH
Vielen Dank!Vielen Dank!
Das waren die Themen:Das waren die Themen: Aufbau von INI-DateienAufbau von INI-Dateien Verarbeiten von INI-DateienVerarbeiten von INI-Dateien Bearbeiten der RegistryBearbeiten der Registry Bereiche der RegistryBereiche der Registry Die Bereiche im EinzelnenDie Bereiche im Einzelnen Werttypen in der RegistryWerttypen in der Registry Dateien der RegistryDateien der Registry Beispiele für Registry-KeysBeispiele für Registry-Keys VFP-Funktionen für VFP-Funktionen für
RegistryRegistry Betriebssystem-Funktionen Betriebssystem-Funktionen
für Registryfür Registry
Wizards & Wizards & Builders GmbH Builders GmbH
Wenn Fragen bestehen:Wenn Fragen bestehen:
Wizards & BuildersWizards & BuildersMethodische Software-Methodische Software-
Entwicklung GmbHEntwicklung GmbH
Frankfurter Str. 21bFrankfurter Str. 21b
61476 Kronberg61476 Kronberg
Tel.: 06173-950906Tel.: 06173-950906
Fax: 06173-950907Fax: 06173-950907
CIS: 101605,175CIS: 101605,175
Top Related