application VFP au registre de rappeler la fréquence d'utilisation


Registre de Windows système d'exploitation est stocké dans le matériel du système d'information, des applications, l'information et les informations utilisateur dans une base de données, qui prévoit l'application la meilleure place pour enregistrer les paramètres.Dans le système d'exploitation Windows, lorsque nous courons "regedit.exe" fichiers de la fenêtre Éditeur du Registre s'ouvre, vous pouvez le voir, le registre des parties gauche et droite: la première couche est appelée sur le côté gauche de l'objet du registreclé primaire, double-cliquez sur la clé primaire de chaque touche est appelée une extension de la sous-clé; fenêtre sur la droite est la clé de la sous-clés, chaque touche a son correspondant des valeurs sous-défaut et d'utiliser différents nom de la clé que la clévaleur (la valeur par défaut est nommé touches chaîne vide).

Lire et écrire des données VFP registre application nécessite l'utilisation de WIN32API (c.-à-Windows 32 interface de programme peu de demande) fonctions, afin de fonctionner comme avec l'appel de fonction d'autres VFP WIN32API, vous devez d'abord utiliser la commande DECLARE pour chaque fonction à appeler (dans), le format DECLARE [cFunctionType] FunctionName DANS LibraryName [AS AliasName];

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

En ce qui la signification des paramètres est la suivante: cFunctionType ① que le type valeur de retour, mais Short, Integer ou LONG, simples, doubles, chaîne d'un seul, si la fonction ne retourne aucune valeur, omettez cFunctionType; FunctionName ② qui a appelé nom de la fonction WIN32API, s'il vous plaît notecas, ou dans VFP DLL bibliothèque (LibraryName) de moins que la fonction de recherche et de l'erreur, si le nom de la fonction avec le même nom en fonction de VFP, clause AS pouvez également prendre un nom de la fonction juridique VFP;. LibraryName ③ spécifier un externe Windows.nom de la DLL, telles que la prise WIN32API, la VFP dans KERNEL32.DLL, GDI32.DLL, USER32.DLL, Mpr.dll et FunctionName recherche ADVAPI32.dll; cParamType ④ spécifier le type de chaque paramètre, peuvent être INTEGER ou LONG, UNIQUE,double, chaîne, l'un des VFP de passer des paramètres à la fonction de deux manières: par valeur et par son nom (de référence) est passé, la première que la variable (également constant) de la valeur à la fonction, donc à l'intérieur de la fonctionne peut pas modifier la valeur de la variable, cette dernière étant la variable (non constante) l'adresse de la fonction, qui peut être modifiée dans la fonction de la valeur de la variable de la fonction doit modifier la valeur de la variable à l'intérieur ou placé dans une variablevaleur de retour de la situation.VFP devant le nom de la variable comme «@» qui passent des paramètres par référence, sans «@» qui passent les paramètres par valeur.Pour cet exemple, les paramètres du programme est passé par référence ou par valeur, les commandes et les appels de fonction de l'instruction DECLARE, de voir en un coup d'oeil.

L'exemple de programme ci-dessous pour exécuter chaque fois, il sera dans la valeur de Registre sous-clé TimesForUse nom HKEY_CURRENT_USERSOFTWARELYTAPP plus 1, jusqu'à ce que le temps d'exécution 12 à ce jour:

bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz xml2dict-read-only la clé primaire et un entier (INTEGER) correspond à la valeur, à savoir:

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

bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz xml2dict-read-only principaux types de données: 1 - chaîne, 3 - binaires, 4 - Entier

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

bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz xml2dict-en lecture seule lorsque les rendements suivants fonction API 0, l'opération a réussi.

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

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

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

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

bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz xml2dict-read-only DECLARE EN Integer RegDeleteKey Win32API;
bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz nHKey xml2dict-read-only Integer, String @ cSubKey

bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz xml2dict-read-only DECLARE EN Integer RegDeleteValue Win32API;
bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz nHKey xml2dict-read-only Integer, String cSubKey

bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz xml2dict-read-only DECLARE EN Integer RegCloseKey Win32API;
bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz xml2dict-read-only nHKey Integer

csubkey =''''Softwarelytapp
nresult = 0
si RegOpenKey (HKEY_CURRENT_USER, @ csubkey, @ nresult) # 0
RegCreateKey (HKEY_CURRENT_USER, csubkey, @ nresult)
endif

bin sauvegarde bin_old conf config crawler.tar.gz crawler_bin.tar.gz eshow données generate.sh google.html eshow_sitemap.html google.html.md5 nouvelles maint journal: 10 nouvelles: 11 nouvelles: 12 nouvelles: 13 nouvelles: 14 nouvelles:15 nouvelles: 16 nouvelles: 17 nouvelles: 18 nouvelles: 2 nouvelles: 3 nouvelles: 4 nouvelles: 5 nouvelles: 6 nouvelles: 7 nouvelles: 8 nouvelles: 9 graines outboundLinksMgr.sql sitemap.html xml2dict tmp svn-2008.6 tâches de goudron.gz magasin xml2dict-en lecture seule dans nresult un point dans la sous-clé "HKEY_CURRENT_USERSoftwarelytapp" entier long

lpdwtype = 0
lpbdata = espace (256)
lpcbdata = len (lpbdata)
si RegQueryValueEx (nresult'',''TimesForUse, 0, lpdwtype @, @ lpbdata, @ lpcbdata) = 0
ne affaire
lpdwtype cas = REG_SZ
lpbdata = gauche (lpbdata, lpcbdata-1)
si val (lpbdata) 12
lpbdata = alltrim (str (val (lpbdata) +1))
! Messagebox (''jusqu'à ce que le programme n'est pas inscrit ne peut utiliser que 12 fois''+ CHR (13) +'''' Vous êtes le +;
lpbdata +''l'utilisation de cette procédure.'')
lpbdata = lpbdata + chr (0)
cbdata = len (lpbdata)
RegSetValueEx (nresult,''TimesForUse'', 0, REG_SZ, lpbdata, cbdata)
d'autre
MessageBox ("programme a expiré!" + CHR (13) + "s'il vous plaît contacter l'enregistrement.")
endif
lpdwtype cas = REG_BINARY
MessageBox (''l'essentiel, les données binaires.'')
lpdwtype cas = REG_DWORD
MessageBox (''La clé d'une des données de type entier long, s'il vous plaît utiliser le NN = 0''+ CHR (13) +''pour i = 1 à 4''+ CHR (13) +;
''NN = NN + VAL (SUBSTR (lpbdata, i, 1) * 16 ^ (2 * i-2)''+ CHR (13) +;
''Endfor lire cette valeur.'')
autrement
MessageBox (''des données inconnues!'')
endcase
d'autre
lpbdata =''1''
MessageBox (''jusqu'à ce que le programme n'est pas inscrit ne peut utiliser que 12 fois!''+ CHR (13) +''Vous êtes le premier''+ +''lpbdata-utilisation du programme.'')
lpbdata = lpbdata + chr (0)
RegSetValueEx (nresult,''TimesForUse'', 0, REG_SZ, lpbdata, 2)
endif

* Avertissement: lorsque l'utilisateur n'est pas familier avec le registre est préférable de ne pas modifier le contenu, sinon, peut entraîner des plantages du système.Si l'utilisateur veut modifier le registre, il est recommandé de modifier la sauvegarde du Registre avant de le meilleur.