Функция RestartDialog

Declare Function RestartDialog Lib "shell32" ( _
        ByVal hwParent As Long, _
        ByVal pszPrompt As String, _
        ByVal dwFlags As Long) As Long

Функция RestartDialog выводит диалоговое окно с запросом о перезагрузке, которое обычно мы видим во время инсталяции различных программ. Все строки, используемые функцией, должны быть в кодировке Unicode. Поэтому, строки, передаваемые функции нужно конвертировать в Unicode. Раньше эта функция официально не была задокументирована и находилась под номером #59
Declare Function RestartDialog Lib "shell32" Alias "#59" ( _
   ByVal hwndOwner As Long, _
   ByVal lpstrReason As String, _
   ByVal uFlags As Long) As Long

Возвращаемое значение

В успешном случае функция возвращает одно из двух значений

IDNO = 7
Пользователь выбрал кнопку "Нет"
IDYES = 6
Пользователь выбрал кнопку "Да"

Параметры

hwParent
Дескриптор родительского окна
pszPrompt
Текст, выводимый в начале сообщения. Данный текст должен заканчиваться либо пробелом, либо переводом на новую строку
dwFlags
Один из следующих флагов, определяющих вид операции:
EWX_LOGOFF = &H0
Предлагается перезагрузить компьютер. Текст, выводимый после pszPrompt : "Новые параметры вступят в силу только после перезагрузки системы. (Пустая строка) Произвести ее сейчас?"
EWX_REBOOT = &H2
Предлагается перезагрузить компьютер. Текст, выводимый после pszPrompt : "Новые параметры вступят в силу только после перезагрузки системы. (Пустая строка) Произвести ее сейчас?"
EWX_SHUTDOWN = &H1
Предлагается завершить работу. Текст, выводимый после pszPrompt : "Завершить работу?"

Пример

' Выводим окно о перезагрузке системы
Dim mystring As String  ' строчка в начале сообщения	
Dim lRet As Long
mystring = StrConv("Русский_Проект." & vbNewLine, vbUnicode)
lRet = RestartDialog(Form1.hWnd, mystring, EWX_REBOOT)

Смотри также

ExitWindowsDialog

Категория

Оболочка