Как заставить метод или событие запускаться при первом запуске программы на C #? - PullRequest
0 голосов
/ 15 июня 2011

Мне было интересно, можно ли вызвать событие или метод при первом запуске программы и, очевидно, при первом запуске.Возможно ли это сделать в C #?Если так, может кто-нибудь показать некоторые примеры того, как это делается

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Вы можете записать файл на диск или значение в реестр при первом запуске программы.

Вы проверяете существование того, что вы установили - если оно не существует, вы запускаете свой метод, если оно существует, вы этого не делаете.

2 голосов
/ 15 июня 2011

Вы можете использовать собственный метод MoveFileEx , указав флаг DelayUntilReboot в некотором файле блокировки:

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");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...