レジストリにVFPのアプリケーションでは、使用頻度を記憶する


Windowsオペレーティングシステムのレジストリは、アプリケーションのパラメータ設定を保存するのに最適な場所を提供する、データベース内のシステムのハードウェア情報、アプリケーション、情報およびユーザ情報に格納されている。最初の層は、レジストリの目的の左側と呼ばれています:Windowsオペレーティングシステムでは、我々は、レジストリエディタのウィンドウから"Regedit.exeの"ファイルを使用すると、左と右の部分から、レジストリを見ることができますが開きます実行すると、主キーは、ダブル各キーの主キーがサブキーの拡張子と呼ばれるクリックして、右側のウィンドウには、サブキーのキーであり、各キーは、対応するサブのデフォルト値を持ち、異なるキーの名前を使用してそのキー値(これは空の文字列のキーの名前はデフォルト値)。

読み取りとVFPアプリケーションのレジストリデータの書き込みWin32APIの(すなわち、Windows 32ビットアプリケーションプログラムインターフェイス)関数を使用する必要があります、ために、他のVFPのコールWin32APIの関数を使用して同じように機能するには、最初に(内に呼び出される各関数のDECLAREコマンドを使用する必要があります。)、LibraryNameは[としてaliasnameは]で形式のDECLARE [のcFunctionType] FunctionNameが。

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

どのパラメータの意味は:戻り値の型として①cFunctionTypeが、ショートは、INTEGERまたはLONG、シングル、ダブル、文字列一、この関数は戻り値がある場合は、cFunctionTypeを省略;に注意してください、Win32APIの関数名と呼ばれる②関数名場合、またはVFPのDLLライブラリ(LibraryNameは)検索機能とエラーVFPの関数と同じ名前を持つ関数名は、AS句は、法的VFPの関数名を取ることができる場合よりも少なく;③LibraryNameは外部のWindowsを指定してください。DLL名は、そのようなKERNEL32.DLLは、gdi32.dllの、User32.dllの、MPR.DLLとのAdvapi32.dll検索関数名でWin32APIのは、VFPを取るように、④cParamTypeは、各パラメータの型を指定し、整数またはLONG、シングルすることができますダブル、文字列は、VFPのいずれか2つの方法で関数にパラメータを渡すために:値で、名前で(参照)関数はその内部には、関数に(また、定数)値を元にのみ変数を渡される変数の値を変更することはできませんが、後者は変数(定数ではありません)関数内で関数の変数の値を変更することができる関数にアドレスされている変数に格納内の変数の値をまたは変更する必要があります状況の戻り値を設定します。のように変数名の前でVFP"@"は"@"という値でパラメータを渡すことなく、参照によってパラメータを渡します。この例では、プログラムのパラメータは、参照渡しまたは値、コマンド、およびDECLAREステートメントからの関数呼び出しによって渡される一目で参照してください。

たびに実行するには、次のサンプルプログラムでは、これまでのところ、実行12回までには、レジストリサブキーTimesForUse HKEY_CURRENT_USERSOFTWARELYTAPP名の値に1を加えたになります:

バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。gzでxml2dict -主キーのみと整数(整数)の値、すなわちに対応して読み取り:

#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

バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。gzのxml2dict読み取り専用キーのデータ型:1 - 文字列、3 - バイナリ、4 - 整数

#REG_SZ値を定義する1
#REG_BINARY 3を定義します。
#4をREG_DWORDでのDEFINE

バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。gzのxml2dict読み取り専用次のAPI関数は0を返し、操作が成功したとき。

Win32APIののDeclare整数RegOpenKey;
整数nHKey、文字列@ cSubKey、整数@ nResult

Win32APIののDeclare整数RegCreateKey;
整数nHKey、文字列@ cSubKey、整数@ nResult

Win32APIののDeclare整数RegSetValueEx;
整数します。HKEYは、文字列lpszValueName、整数、dwReserved;
整数fdwType、文字列lpbData、整数cbDataを

Win32APIののDeclare整数RegQueryValueEx;
整数nHKeyは、文字列lpszValueName、整数、dwReserved;
整数@ lpdwType、文字列@ lpbData、整数@ lpcbData

バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。Win32APIのでgzでxml2dict読み取り専用のDECLARE整数RegDeleteKey;
バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。gzのxml2dict読み取り専用整数nHKey、文字列@ cSubKey

バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。Win32APIのでgzでxml2dict読み取り専用のDECLARE整数RegDeleteValue;
バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。gzのxml2dict読み取り専用整数nHKey、文字列cSubKey

バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。Win32APIのでgzでxml2dict読み取り専用のDECLARE整数RegCloseKey;
バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。gzのxml2dict読み取り専用の整数nHKey

csubkey = '' Softwarelytapp ''
nresult = 0
regopenkey(HKEY_CURRENT_USERの、@ csubkey、@ nresult)#0の場合
RegCreateKey(HKEY_CURRENT_USERの、csubkey @ nresult)
endifの

バックアップbinに設定crawler.tar.gz crawler_bin.tar.gzデータeshow eshow_sitemap.html generate.shのgoogle.html google.html.md5ログのmaintニュースconfをbin_old:10ニュース:11ニュース:12ニュース:13ニュース:14ニュース:15のニュース:16ニュース:17ニュース:18ニュース:2ニュース:3つのニュース:4ニュース:5ニュース:6ニュース:7ニュース:8ニュース:9 outboundLinksMgr.sql種子sitemap.htmlのsvnタスクのtmp xml2dict - 2008.6 -タール。サブキー"HKEY_CURRENT_USERSoftwarelytapp"long型の整数値でnresult点でgzでxml2dict読み取り専用ストア

lpdwtype = 0
lpbdata =スペース(256)
lpcbdata = lenは(lpbdata)
RegQueryValueEx(nresult、'' TimesForUseの''、0、@ lpdwtype、@ lpbdata、@ lpcbdata)= 0の場合
ケースを行う
ケースlpdwtype = REG_SZ値
lpbdata =(lpbdata、lpcbdata - 1)左
ヴァル(lpbdata) 12場合
lpbdata = alltrim(文字列(valが(lpbdata)+1))
!メッセージボックス(''プログラムは、12回を使用することができます'' +(13)のCHR登録されていないまで+''''あなたは+;
この手順のlpbdata + ''使用。'')
lpbdata = lpbdata +のchr(0)
cbDataを= lenは(lpbdata)
RegSetValueEx(nresult、'' TimesForUse ''、0、REG_SZ値、lpbdataは、cbData)

メッセージボックスは、("プログラムの有効期限が切れています!"+ Chr(13)は+"登録をご連絡ください。")
endifの
ケースlpdwtype = REG_BINARY
メッセージボックス(''バイナリデータとしてキーを押します。'')
ケースlpdwtype = REG_DWORD値
メッセージボックスは、(''長整数型のデータへの鍵、i = 1から4 '' +のCHR(13)+ + ''のNNの= 0 '' +のCHR(13)を使用してください。
''ここでnn = NNの+ヴァル(SUBSTRは(lpbdata、私は、1)* 16 ^(2 * iの- 2)'' +のCHR(13)+;
'' Endforは、この値を参照してください。'')
それ以外の場合は
メッセージボックス(''不明なデータ!'')
endcase

lpbdata = '' 1 ''
メッセージボックスは、(''プログラムは、12回を使用することができます登録されていないまで!'' +のCHR(13)+ ''最初に、'' + lpbdata +プログラムの''使用されます。'')
lpbdata = lpbdata +のchr(0)
RegSetValueEx(nresult、'' TimesForUse ''、0、REG_SZ値、lpbdata、2)
endifの

*警告:ユーザは、レジストリの内容を変更するための最良されていないに精通していない場合には、それ以外の場合は、システムがクラッシュする可能性があります。ユーザーがレジストリを変更したい場合は、それが最良の前にレジストリのバックアップを変更することをお勧めします。