2013-06-07 2 views
1

Этот ответ объясняет, как сделать заставку, которую я сделал уже: How to build splash screen in windows forms application?Как я могу показать экран справки на первом запуске программы?

Но я хочу кое-что, в первый раз, что пользователь запускает программу, он получит окно с explantion внутри как командных клавиш, что делать, как использовать программу и затем нажмите «ОК».

Когда он снова запускает программу, он не получает окно справки, и он просто переходит прямо в приложение.

Я не совсем уверен, что мне нужно делать здесь, может ли кто-нибудь мне помочь?

+0

Подсказка: реестр, файлы. Они оба существуют;) –

+0

ОК, мы знаем, чего вы хотите, но в чем ваш вопрос? – I4V

+0

Вы можете сохранить простой bool или строку в [Параметры приложения] (http://msdn.microsoft.com/en-us/library/aa730869 (v = vs.80) .aspx) ... это довольно просто. –

ответ

1

Оставьте что-то постоянное на компьютере, когда программа запускается в первый раз. Наиболее очевидными являются файлы или записи реестра.

Для ключа реестра, в псевдокоде, при запуске сделать это:

If (registry key not present) 
{ 
    show instruction dialog 
    add registry key 
} 

Для файла:

If (file '%APPDATA%\myApp\file' does not exist) 
{ 
    Show instruction dialog 
    Create file '%APPDATA%\myApp\file' 
} 

реализации, ключ реестра:

protected override void OnShown(EventArgs e) 
{ 
    var key = Registry.CurrentUser.CreateSubKey(@"Software\TestCompany\TestApp\"); 
    if (key.GetValue("FirstRun") == null) 
    { 
     ShowDialog(new HelpDialogForm()); 
     key.SetValue("FirstRun", "false"); 
    }   
} 

Как обычно , добавьте к нему необходимую обработку ошибок. Вышеуказанный метод переопределяет OnShown, то есть предполагается, что он объявлен в вашей основной/стартовой форме.

+0

Downvoter хочет прокомментировать? Я предполагаю, что фактическая реализация достаточно проста, чтобы найти простой веб-поиск. Ответ будет загроможден, если я буду думать о реальной реализации. –

+0

Я предполагаю, что -1 - это потому, что должно быть немного больше инструкции. Не совсем понятно, как реестр полезен для этого. – IAbstract

+0

Ответ будет значительно улучшен **, если будет дана фактическая реализация. :) – IAbstract

0

Вариант 1: Возможно, вы захотите использовать флажок «Не показывать это окно снова» в нижней части окна справки. Вам нужно сохранить это значение в качестве параметра в базе данных или в качестве переменной среды, которая будет использоваться для определения того, показывать или нет при следующем входе пользователя в систему.

Вариант 2: Вам придется сохраните что-то вроде «IsFirstEntryToApp», которое будет истинным по умолчанию и будет установлено в false сразу после входа пользователя в приложение. Это будет ваш намек, чтобы показать окно справки.

Большинство приложений идут с опцией 1.

EDIT: Вы также можете сохранить состояние как Enviroment переменной для простых сценариев См How do I get and set Environment variables in C#?

  var alreadyLoggedInAtleastOnce = System.Environment.GetEnvironmentVariable("HasUserLoggedInIntoMyAppAtleastOnce",EnvironmentVariableTarget.User); 

     if (alreadyLoggedInAtleastOnce != "True") 
     { 
      //This is the first login. Set the variable so that it is available the next time user logs in 
      System.Environment.SetEnvironmentVariable("HasUserLoggedInIntoMyAppAtleastOnce", "True", EnvironmentVariableTarget.User); 

      MessageBox.Show("This is your help window"); 
     } 
+0

Нужно ли OP использовать * базу данных * только для этого простого требования? – I4V

+0

@ I4V хорошо пункт. См. Править. – SKG

Смежные вопросы