Как предотвратить отъезд Значка в Системном лотке на выходе?

Чтобы быть немного более конкретным о том, как RSA использует свойства простых чисел, алгоритм RSA зависит критически от Теорема Euler's , который указывает, что для относительно простых чисел "a" и "N", a^e является конгруэнтным 1 по модулю Н, где e функция тотиента Euler's из N.

, Где начала входят в это? Вычислить функцию тотиента Euler's N эффективно требует знания главной факторизации N. В случае алгоритма RSA, где N = pq для некоторых начал "p" и "q", тогда e = (p - 1) (q - 1) = N - p - q + 1. Но не зная p и q, вычисление e является очень трудным.

более абстрактно, много crypotgraphic протоколов используют различный функции лазейки , функции, которые легко вычислить, но трудный инвертировать. Теория чисел является богатым источником таких функций лазейки (таких как умножение больших простых чисел), и простые числа являются абсолютно центральными к теории чисел.

14
задан Jon Seigel 12 March 2010 в 20:14
поделиться

4 ответа

Нет способа сделать это. Windows не опрашивает вашу программу, чтобы узнать, жива ли она. Таким образом, ваш значок будет оставаться на панели задач, пока вы не скажете ему уйти (обычный выход), или пока пользователь не сделает что-то, что инициирует вызов вашей программы (например, наведение курсора мыши). Только тогда оболочка узнает, что ваша программа умерла и ей необходимо очистить ваш значок.

21
ответ дан 1 December 2019 в 09:01
поделиться

У вас есть несколько вариантов:

1) Написать корневой структурированный обработчик исключений, который обеспечивает уничтожение значка перед выходом. Это требует некоторых усилий - но вы можете в основном добавить в Windows свой собственный обработчик необработанных исключений, который будет вызываться в случае многих форм "бума", что даст вам некоторую последнюю возможность очистки.

2) Напишите приложение монитора, которое спит на вашем дескрипторе основных процессов и убивает значок, когда просыпается (основное приложение умерло). Чтобы этот последний сценарий работал хорошо, вы

4
ответ дан 1 December 2019 в 09:01
поделиться

Вам нужно вызвать Dispose для NotifyIcon, чтобы он покинул лоток.

РЕДАКТИРОВАТЬ: В вашем Program.cs есть событие, к которому вы можете подключиться. Для всех приложений Windows у вас будет что-то вроде этого:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }

Класс Application имеет несколько событий, которые вы можете использовать, чтобы узнать, когда ваше приложение умирает:

        Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
        Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
3
ответ дан 1 December 2019 в 09:01
поделиться

Перед выходом установите для свойства NotifyIcon Visible значение false.

3
ответ дан 1 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: