VFP-Anwendung in die Registrierung zu erinnern, die Häufigkeit der Verwendung


Windows-Betriebssystem-Registrierung ist in der System-Hardware Informationen, Anwendungen, Informationen und Benutzerinformationen in einer Datenbank, die für die Anwendung der beste Ort, um die Parameter-Einstellungen zu speichern bietet gespeichert.In der Windows-Betriebssystems, wenn wir laufen "regedit.exe" Dateien aus dem Registrierungs-Editor öffnet man sehen kann, die Registrierung von der linken und rechten Teilen: Der erste Schicht ist die linke Seite des Registers Zweck einberufenenPrimärschlüssel, doppelklicken Sie auf den Primärschlüssel der jede Taste aufgerufen wird eine Erweiterung der Sub-Schlüssel, Fenster auf der rechten Seite ist der Schlüssel des Sub-Tasten, jede Taste der entsprechenden Sub-Standard-Werte hat und verwenden verschiedene Schlüssel Namen, dass der SchlüsselWert (der Standardwert eine leere Zeichenfolge, die Schlüssel genannt wird).

Lesen und Schreiben in VFP-Anwendung Registrierungsdaten erfordert den Einsatz von WIN32API (zB Windows 32-Bit-Application Program Interface)-Funktionen, um die gleichen wie bei den anderen VFP nennen WIN32API Funktion funktioniert, müssen Sie zunächst die DECLARE-Befehl für jede Funktion aufgerufen werden (in), das Format DECLARE [cFunctionType] FunctionName IN LibraryName [AS AliasName];

[CParamType1 [@] ParamName1, cParamType2 [@] ParamName2, ...]

In dem die Bedeutung der Parameter ist: ① cFunctionType als Rückgabewert Typ, aber Short, Integer oder Long, Single, Double, String ein, wenn die Funktion keinen Rückgabewert hat, lassen cFunctionType; ② FunctionName dass WIN32API Funktion Namen genannt, beachten Sie bitteFall oder in VFP-DLL-Bibliothek (LibraryName) weniger als die Suchfunktion und Irrtum, wenn der Name der Funktion mit dem gleichen Namen wie eine Funktion von VFP AS-Klausel auch eine rechtliche VFP Funktion Name;. ③ LibraryName geben Sie ein externes Windows.DLL-Namen, wie unter WIN32API, die VFP in KERNEL32.DLL, GDI32.DLL, user32.dll, Mpr.dll und ADVAPI32.DLL Suche FunctionName; ④ cParamType geben Sie den Typ der einzelnen Parameter können INTEGER oder Long, Single sein,double, string, einer der VFP Parameter an die Funktion auf zwei Arten passieren: in Wert und Namen (Referenz) übergeben wird, das erstere nur die Variable (auch konstanten) Wert an die Funktion, so in der Funktionkann nicht den Wert der Variablen, die letztere ist die variable (nicht konstant) die Adresse der Funktion, die innerhalb der Funktion verändert werden kann der Wert der Variablen für die Funktion muss der Wert der Variablen innerhalb oder in einer Variablen gesetzt ändernRückgabewert der Situation.VFP vor dem Variablennamen als "@", die Parameter als Referenz übergeben, ohne "@", die Parameter als Wert übergeben.Für dieses Beispiel ist der Parameter des Programms durch Referenz oder als Wert, Befehle und Funktionsaufrufe aus der DECLARE-Anweisung übergeben werden, finden auf einen Blick.

Das folgende Beispielprogramm jedes Mal ausführen, wird es in den Registrierungsunterschlüssel TimesForUse HKEY_CURRENT_USERSOFTWARELYTAPP Name-Wert plus 1 sein, bis der Lauf 12 Mal so weit:

Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-read-only Primärschlüssel und eine ganze Zahl (Integer) Wert entspricht, nämlich:

# DEFINE HKEY_CLASSES_ROOT bitset (0,31) & & -2147483648
# DEFINE HKEY_CURRENT_USER bitset (0,31) +1 & & -2147483647
# DEFINE HKEY_LOCAL_MACHINE bitset (0,31) +2 & & -2147483646
# DEFINE HKEY_USER bitset (0,31) +3 & & -2147483645
# DEFINE HKEY_CURRENT_CONFIG bitset (0,31) +5 & & -2147483643
# DEFINE HKEY_DYN_DATA bitset (0,31) +6 & & -2147483642

Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-Nur-Lese-Schlüssel Datentypen: 1 - String, 3 - Binär-, 4 - Integer

# DEFINE REG_SZ 1
# DEFINE REG_BINARY 3
# REG_DWORD definieren 4

Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-read-only, wenn die folgenden API-Funktion 0 zurück, der Vorgang erfolgreich war.

DECLARE Integer RegOpenKey IN Win32API;
Integer nHKey, String @ cSubKey, Integer @ nResult

DECLARE Integer RegCreateKey IN Win32API;
Integer nHKey, String @ cSubKey, Integer @ nResult

DECLARE Integer RegSetValueEx IN Win32API;
Integer hKey, String lpszValueName, Integer dwReserved,;
Integer fdwType, String lpbData, Integer cbData

DECLARE Integer RegQueryValueEx IN Win32API;
Integer nHKey, String lpszValueName, Integer dwReserved,;
Integer @ lpdwType, string @ lpbData, Integer @ lpcbData

Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-read-only DECLARE Integer RegDeleteKey IN Win32API;
Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-Nur-Lese-Integer nHKey, String @ cSubKey

Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-read-only DECLARE Integer RegDeleteValue IN Win32API;
Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-Nur-Lese-Integer nHKey, String cSubKey

Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-read-only DECLARE Integer RegCloseKey IN Win32API;
Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-Nur-Lese-Integer nHKey

cSubKey =''''Softwarelytapp
nResult = 0
wenn RegOpenKey (HKEY_CURRENT_USER, @ cSubKey, @ nResult) # 0
RegCreateKey (HKEY_CURRENT_USER, cSubKey, @ nResult)
endif

Backup bin bin_old conf config crawler.tar.gz crawler_bin.tar.gz Daten eshow eshow_sitemap.html generate.sh google.html google.html.md5 Log maint Nachrichten: 10 Nachrichten: 11 News: 12 News: 13 News: 14 News:15 Nachrichten: 16 News: 17 News: 18 News: 2 News: 3 News: 4 News: 5 Nachrichten: 6 Nachrichten: 7 Nachrichten: 8 Nachrichten: 9 outboundLinksMgr.sql Samen sitemap.html svn Aufgaben tmp-xml2dict 2008,6-tar.gz xml2dict-Nur-Lese-Speicher in nResult einen Punkt in der Sub-Schlüssel "HKEY_CURRENT_USERSoftwarelytapp" Long Integer-Wert

lpdwtype = 0
lpbdata = Raum (256)
lpcbdata = len (lpbdata)
wenn RegQueryValueEx (nResult,''''TimesForUse, 0, @ lpdwtype, @ lpbdata, @ lpcbdata) = 0
dies bei
Fall lpdwtype REG_SZ =
lpbdata = links (lpbdata, lpcbdata-1)
wenn val (lpbdata) 12
lpbdata = ALLTRIM (str (val (lpbdata) +1))
! MessageBox ('', bis das Programm nicht registriert ist, können nur 12-mal''+ CHR (13) +'''' Du bist der +;
lpbdata +''-Anwendung dieses Verfahrens.'')
lpbdata = lpbdata + chr (0)
cbData = len (lpbdata)
RegSetValueEx (nResult,''''TimesForUse, 0, REG_SZ, lpbdata, cbData)
sonst
MessageBox ("Programm ist abgelaufen!" + CHR (13) + "bitte an die Registrierung.")
endif
Fall lpdwtype = REG_BINARY
MessageBox (''den Schlüssel als binäre Daten.'')
Fall lpdwtype = REG_DWORD
MessageBox (''Der Schlüssel zu einem langen ganzzahligen Daten nutzen Sie bitte den NN = 0''+ CHR (13) +''für i = 1 bis 4''+ CHR (13) +;
''NN = NN + VAL (SUBSTR (lpbdata, i, 1) * 16 ^ (2 * i-2)''+ CHR (13) +;
''EndFor lesen diesen Wert.'')
andernfalls
MessageBox (''Unbekanntes Daten!'')
endcase
sonst
lpbdata =''1''
MessageBox ('', bis das Programm nicht registriert ist, können nur 12-mal!''+ CHR (13) +''Sie sind der erste''+ +''lpbdata-Nutzung des Programms.'')
lpbdata = lpbdata + chr (0)
RegSetValueEx (nResult,''''TimesForUse, 0, REG_SZ, lpbdata, 2)
endif

* Achtung: wenn der Benutzer nicht vertraut ist mit der Registrierung am besten nicht auf den Inhalt zu ändern, andernfalls können zu Systemabstürzen führen.Will der Anwender auf die Registrierung bearbeiten, empfiehlt es sich, die Sicherung der Registrierung, bevor die besten modifizieren.