static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
WriteRegName();
DateTime dt0 = SelectRegName();
DateTime dt1 = new DateTime(2011,11,10,16,30,30);
int count = DateTime.Compare(dt0,dt1);
//dt0<dt1程序运行,dt0>dt1程序停止
if (count == -1 || count==0)
{
Application.Run(new Form1());
}
else
{
Application.Exit();
}
}
/// <summary>
/// 判断启动项目录是否存在
/// </summary>
/// <param name="dirName"></param>
/// <returns></returns>
static bool RegeditDirIsExist(string dirName)
{
RegistryKey key;
RegistryKey subkey;
key = Registry.LocalMachine;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
subkey = key.OpenSubKey(fullDir, true);
foreach (string keys in subkey.GetSubKeyNames())
{
if (keys.ToLower() == dirName.ToLower())
{
return true;
}
}
return false;
}
/// <summary>
/// 写键值
/// </summary>
static void WriteRegName()
{
string DirectoryName = Directory.GetCurrentDirectory(); //获取当前目录
string regName = "WFText.exe"; //加入启动项里的节点名
RegistryKey key;
RegistryKey subkey;
RegistryKey mainkey;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
string dir = "run"; ///注册表目录
string filePath = DirectoryName + "\\" + regName; //此处注意是系统程序(如:xp下的C:\windows\system32)的话,直接写文件名即可,否则要完整的路径
key = Registry.LocalMachine; //初始化subkey,操作HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\子项
subkey = key.OpenSubKey(fullDir, true);
//目录不存在则创建该目录
if (!RegeditDirIsExist(dir))
{
subkey.CreateSubKey(dir);
}
//以可写的方式打开目录
mainkey = key.OpenSubKey(fullDir + dir, true);
if (mainkey.GetValue(regName) == null)
{
mainkey.SetValue(regName, DateTime.Now);
}
RegistryKey key;
RegistryKey subkey;
RegistryKey mainkey;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
string dir = "run"; ///注册表目录
string regName = "WFText.exe";
key = Registry.LocalMachine; ///初始化subkey,操作HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\子项
subkey = key.OpenSubKey(fullDir, true);
mainkey = key.OpenSubKey(fullDir + dir, true);
DateTime dt = DateTime.Parse((string)mainkey.GetValue(regName));
return dt;
}
/// <summary>
/// 删除键值
/// </summary>
static void DeleteRegName()
{
RegistryKey key;
RegistryKey subkey;
RegistryKey mainkey;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
string dir = "run"; ///注册表目录
string regName = "WFText.exe";
key = Registry.LocalMachine; ///初始化subkey,操作HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\子项
subkey = key.OpenSubKey(fullDir, true);
mainkey = key.OpenSubKey(fullDir + dir, true);
try
{
mainkey.DeleteValue(regName);
}
catch { }
}
}
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
WriteRegName();
DateTime dt0 = SelectRegName();
DateTime dt1 = new DateTime(2011,11,10,16,30,30);
int count = DateTime.Compare(dt0,dt1);
//dt0<dt1程序运行,dt0>dt1程序停止
if (count == -1 || count==0)
{
Application.Run(new Form1());
}
else
{
Application.Exit();
}
}
/// <summary>
/// 判断启动项目录是否存在
/// </summary>
/// <param name="dirName"></param>
/// <returns></returns>
static bool RegeditDirIsExist(string dirName)
{
RegistryKey key;
RegistryKey subkey;
key = Registry.LocalMachine;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
subkey = key.OpenSubKey(fullDir, true);
foreach (string keys in subkey.GetSubKeyNames())
{
if (keys.ToLower() == dirName.ToLower())
{
return true;
}
}
return false;
}
/// <summary>
/// 写键值
/// </summary>
static void WriteRegName()
{
string DirectoryName = Directory.GetCurrentDirectory(); //获取当前目录
string regName = "WFText.exe"; //加入启动项里的节点名
RegistryKey key;
RegistryKey subkey;
RegistryKey mainkey;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
string dir = "run"; ///注册表目录
string filePath = DirectoryName + "\\" + regName; //此处注意是系统程序(如:xp下的C:\windows\system32)的话,直接写文件名即可,否则要完整的路径
key = Registry.LocalMachine; //初始化subkey,操作HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\子项
subkey = key.OpenSubKey(fullDir, true);
//目录不存在则创建该目录
if (!RegeditDirIsExist(dir))
{
subkey.CreateSubKey(dir);
}
//以可写的方式打开目录
mainkey = key.OpenSubKey(fullDir + dir, true);
if (mainkey.GetValue(regName) == null)
{
mainkey.SetValue(regName, DateTime.Now);
}
}
/// <summary>
/// 根据键查询值
/// </summary>
static DateTime SelectRegName()
RegistryKey key;
RegistryKey subkey;
RegistryKey mainkey;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
string dir = "run"; ///注册表目录
string regName = "WFText.exe";
key = Registry.LocalMachine; ///初始化subkey,操作HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\子项
subkey = key.OpenSubKey(fullDir, true);
mainkey = key.OpenSubKey(fullDir + dir, true);
DateTime dt = DateTime.Parse((string)mainkey.GetValue(regName));
return dt;
}
/// <summary>
/// 删除键值
/// </summary>
static void DeleteRegName()
{
RegistryKey key;
RegistryKey subkey;
RegistryKey mainkey;
string fullDir = "software\\microsoft\\windows\\currentVersion\\";
string dir = "run"; ///注册表目录
string regName = "WFText.exe";
key = Registry.LocalMachine; ///初始化subkey,操作HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\子项
subkey = key.OpenSubKey(fullDir, true);
mainkey = key.OpenSubKey(fullDir + dir, true);
try
{
mainkey.DeleteValue(regName);
}
catch { }
}
}