все что связано с моей работой
Главная » Учебник WiX » Управление контролами

Управление контролами

То, что мы только что сделали, было не совсем изящно. На самом деле, мы должны проверить ключ, который пользователь вводит, и в случае ошибки вывести на экран предупреждение и дать пользователю шанс еще раз ввести ключ вместо того, чтобы прервать установку. Давайте посмотрим, как это можно сделать.

Мы можем связать пользовательские действия с двумя видами средств управления пользовательским интерфейсом, кнопками и флажками. Для этого мы можем использовать тег Publish. Атрибут Value носит имя действия:


  1

Это заставит пользовательское действие вызвать нашу DLL, когда пользователь нажмет кнопку Next страницы информации о Пользователе. Пользовательское действие будет связано этим событием с UI, таким образом мы больше не должны указывать его в теге InstallExecuteSequence. Однако, определение пользовательского действия остается в источнике:

Чтобы предупредить пользователя, нам нужно окно сообщения. Только это другое диалоговое окно, похожее на нашу страницу информации о Пользователе, которую мы делали раньше. Мы можем поместить его в отдельный исходный файл как фрагмент и обратиться к нему используя тег DialogRef, как ранее. Но, чтобы проиллюстрировать другое решение, мы определим его непосредственно в нашем основном исходном файле, прямо в разделе UI.


  
  
    1
  
  
    
      The user key you entered is invalid. Please, enter the key printed on the label
      of the jewel case of the installation CD.
    
  

Также надо обновить страницу информации о Пользователе, потому что мы должны связать наше пользовательское действие и новое окно:


  1
  PIDACCEPTED = "0"
  PIDACCEPTED = "1"

Теперь, когда пользователь нажимает кнопку Next, вызывается функция из DLL (каждый раз, потому что условие всегда истина). Функция в нашей DLL проверит свойство PIDKEY и установит PIDACCEPTED, чтобы сигнализировать, верен ли ключ. Если все хорошо, то мы продолжаем (SetupTypeDlg). Если все не хорошо – то, мы выводим на экран наше сообщение об ошибке.

Есть еще один маленький элемент, поскольку мы упоминали про значок в окне сообщения, нам надо указать установщику его:

Готовый исходный код можно загрузить тут — SampleAsKey.

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

Комментариев нет

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.