我想知道是否可以在程序第一次启动时调用事件或方法,显然是第一次。这可能在C#中做到吗?如果是这样,有人可以展示一些如何实现这一目标的例子
答案 0 :(得分:3)
第一次运行程序时,可以将文件写入磁盘或将值写入注册表。
你检查你设置的是否存在 - 如果它不存在,你运行你的方法,如果它存在,你没有。
答案 1 :(得分:2)
您可以通过在某个锁定文件上指定DelayUntilReboot
标志来使用MoveFileEx本机方法:
class Program
{
[Flags]
enum MoveFileFlags
{
None = 0,
ReplaceExisting = 1,
CopyAllowed = 2,
DelayUntilReboot = 4,
WriteThrough = 8,
CreateHardlink = 16,
FailIfNotTrackable = 32,
}
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
static extern bool MoveFileEx(
string lpExistingFileName,
string lpNewFileName,
MoveFileFlags dwFlags
);
static void Main()
{
string lockFile = "foo.dat";
if (!File.Exists(lockFile))
{
// that's a first run after the reboot => create the file
File.WriteAllText(lockFile, "");
// Mark the file for deletion after reboot
MoveFileEx(lockFile, null, MoveFileFlags.DelayUntilReboot);
Console.WriteLine("it's a first run");
}
else
{
// that's a consecutive run
Console.WriteLine("it's a consecutive run");
}
}
}