Выйдите из приложения с помощью Application.Exit без отображения графического интерфейса. - PullRequest
1 голос
/ 27 апреля 2011

Резюме: Когда приложение не запускается с указанной учетной записью пользователя, приложение закрывается, но все еще создает графический интерфейс. Я хочу, чтобы он полностью вышел

Подробнее: Я бы подумал, что приведенный ниже код будет работать. Он проверяет наличие определенного атрибута имени пользователя, если его нет, приложение закрывается. Просто. Проблема в том, что приложение по-прежнему создает графический интерфейс, даже если имя пользователя не содержит этот атрибут. Есть идеи?

Этот код в моем основном методе. Это форма окна.

Код:

public ProgramMain()
{
    String runningUser = Environment.UserName;
    if (!runningUser.Contains("asdf"))
    {
        MessageBox.Show("You must run this application with your asdf account.");
        Application.Exit();
    }
    else
    {
        InitializeComponent();
    }
}

Ответы [ 4 ]

5 голосов
/ 27 апреля 2011

В файле Program.cs в Main вы увидите Application.Run () Если вы выполните проверку до того, как эта строка кода попадет Тогда, если пользователь не прав, просто пропустите строку.

Application.Run () - строка для запуска цикла выполнения приложения.

Если Run Loop никогда не срабатывает и происходит выход из главного. приложение закроется.

5 голосов
/ 27 апреля 2011

Вы кодируете в форме, а не в событии Main () в program.cs. Если вы выйдете до фактического создания формы, вы не получите графический интерфейс.

1 голос
/ 27 апреля 2011

Вы слишком далеко.InitializeComponent выглядит так, как будто вы уже находитесь в форме Windows.Тогда вы уже создали окно.Поставьте свой чек в методе main перед созданием формы, тогда ничего не отображается.Вы можете взломать отладчик и проверить стек вызовов.Найдите первый метод, где код взят из вашего проекта.Поставьте в этом методе чек, и у вас все будет хорошо.

Ваш, Алоис Краус

0 голосов
/ 27 апреля 2011

Кажется, что вы делаете это в вызове конструктора вашего элемента управления. Попробуйте выполнить эту проверку в методе Main класса Program.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...