One option is to use a value in the user's program settings. Initially true, you can set it to false, like so:
if (Properties.Settings.Default.IsFirstTime)
{
Properties.Settings.Default.IsFirstTime = false;
}
I also suggest adding a "UpgradeRequired" boolean to the settings which is by default true. When the user installs a newer version of the program, you need to call
Properties.Settings.Default.Upgrade();
and set
Properties.Settings.Default.UpgradeRequired = false;
and then save the settings:
Properties.Settings.Default.Save();
The reason for this is that if you install a new version, the IsFirstTime
will be reset to its default value (unless you take up the current value, using Upgrade()
).
This way, you don't need to worry about the registry, and you don't need to worry about file permissions.
Here it is, put all together:
// this must happen as soon as your program starts, before
// you do anything else with the settings
if (Properties.Settings.Default.UpgradeRequired)
{
// upgrade FIRST, before doing anything else with the settings
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeRequired = false;
Properties.Settings.Default.Save();
}
if (Properties.Settings.Default.IsFirstTime)
{
// this is the first time running the program
Properties.Settings.Default.IsFirstTime = false;
Properties.Settings.Default.Save();
}
This has worked just fine for our customers.