功能簡介:
在登錄檔HKEY_CURRENT_USER\SOFTWARE下,如果沒有則新建MyRegDataApp項,在MyRegDataApp項下面,如果沒有則新建array值,並設定引數為 int UseCount次,
當軟體執行一次程式,登錄檔次數減一,當引數為0時,每次啟動都會提示並自動退出軟體,程式碼如下:
一、包含名稱空間
using Microsoft.Win32;
二、編寫方法
private void UseCount(int usageCount,string valueName) { // 檢查HKEY_CURRENT_USER\SOFTWARE下是否存在MyRegDataApp鍵 RegistryKey softwareKey = Registry.CurrentUser.OpenSubKey("SOFTWARE", true); RegistryKey myRegDataAppKey = softwareKey.OpenSubKey("MyRegDataApp", true); if (myRegDataAppKey == null) { // 如果不存在,則建立MyRegDataApp鍵 myRegDataAppKey = softwareKey.CreateSubKey("MyRegDataApp"); } // 檢查MyRegDataApp下是否存在array項 if (myRegDataAppKey.GetValue(valueName) == null) { // 如果不存在,則建立array項 myRegDataAppKey.SetValue(valueName, usageCount); MessageBox.Show("您可以免費使用本軟體" + usageCount + "次!", "感謝您首次使用"); // 關閉登錄檔鍵 myRegDataAppKey.Close(); softwareKey.Close(); return; } try { object usetime = myRegDataAppKey.GetValue(valueName);//讀取鍵值,可使用次數 int newtime = Int32.Parse(usetime.ToString()) - 1; if (newtime < 0) { if (MessageBox.Show("如需繼續使用,請聯絡軟體開發者!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK) { // 關閉登錄檔鍵 myRegDataAppKey.Close(); softwareKey.Close(); Application.Exit(); } } else { MessageBox.Show("你還可以使用本軟體 :" + usetime.ToString() + "次!", "確認", MessageBoxButtons.OK, MessageBoxIcon.Information); myRegDataAppKey.SetValue(valueName, (object)newtime);//更新鍵值,可使用次數減1 } } catch { //RegKey.SetValue(valueName, (object)10); //建立鍵值,儲存可使用次數 //MessageBox.Show("您可以免費使用本軟體10次!", "感謝您首次使用"); //return; } // 關閉登錄檔鍵 myRegDataAppKey.Close(); softwareKey.Close(); }
三、呼叫方法
UseCount(250, "array");//使用次數限制