Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Lodoss
Цитата:
третий пункт не выполняется
Что значит не выполняется? не выводится сообщение?

Вот немного изменил - добавил проверку (отдельную) на проавильность ввода пароля (это при условии что пароль заранее известен):

Код: Выделить весь код
#include <GUIConstants.au3>
Opt("RunErrorsFatal",0)
;что запускать
$what_to_run="setup.exe"

If Not IsAdmin() Then
    ;запуск программы
    Run($what_to_run)
Else
    ;если не админ, то "рисуем" GUI
    _GUI()
EndIf

Func _GUI()
    GUICreate("Авторизация", 198, 125)
     ;фон окна
    GUISetBkColor (0x00E0FFFF)
    ;лейблы
    GUICtrlCreateLabel("Имя администратора", 25, 5)
    GUICtrlCreateLabel("Пароль администратора", 25, 50)
    ;запуск и отмена скрипта
    $ok = GUICtrlCreateButton("Ok", 25, 98, 70,20)
    $cancel = GuiCtrlCreateButton ("Cancel",105,98,70,20)
    ;ввод имени
    $us = @UserName
    $in1 =GUICtrlCreateCombo ($us, 25, 25, 150, 20)
    GUICtrlSetData($in1, "admin|qwerty|Администратор|Винни-Пух")
    GUICtrlSetTip(-1,"введите имя любой учётной записи" & @CRLF & "имеюшей права Администратора")
    ;ввод пароля
    $in2 = GUICtrlCreateInput ("solo11",  25, 70, 150, 20, 0x20)
    GUICtrlSetTip(-1,"введите пароль")
    GUISetState(@SW_SHOW)

    While 1
        $msg = GUIGetMsg()
        ;считываем введённые данные
        $out1 = GUICtrlRead($in1)
        $out2 = GUICtrlRead($in2)
        Global $user = $out1, $pass = $out2

                Select
            Case $msg = $ok
                ;инициализация запуска от имени админа
                RunAsSet($user, "", $pass)
                ;проверка верны ли введённые записи на право обладания правами админа
                If IsAdmin() Then
                    ;проверка правильноти пароля
                    If $pass <> "solo11" Then
                        MsgBox(16, "Ошибка", "Введен неправильный пароль"&@LF&@LF&"Попробуйте еще раз.",5)
                        ContinueLoop
                    EndIf
                    ;запуск программы
                    Run($what_to_run)
                    If @error Then
                        MsgBox(16, "Ошибка", "Отсутствует файл "&$what_to_run&@LF&@LF&"Попробуйте еще раз.",5)
                        ContinueLoop
                    EndIf
                EndIf
            ;закрытие окна
            Case $msg = $cancel or $msg = $GUI_EVENT_CLOSE
            ExitLoop
        EndSelect
    WEnd
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 16-11-2006 в 21:08. Причина: Косметика кода ;)


Отправлено: 19:57, 16-11-2006 | #477