none
[VBS] Kак изменить шрифт в выводимом окне MsgBox ? RRS feed

Ответы

Все ответы

  • Штатно никак - это стандартная функция.
    Обходной путь http://www.trap17.com/index.php/Customize-Msgbox_t30397.html
    Сазонов Илья http://www.itcommunity.ru/blogs/sie/
    • Помечено в качестве ответа Gloft 20 июля 2009 г. 5:17
    14 июля 2009 г. 12:17
    Модератор
  • насколько я понял это для VB.
    14 июля 2009 г. 12:45
  • насколько я понял это для VB.

    Из VBS это практически нереально. На порядки проще будет просто создать собственное окно, впрочем делать его придётся на HTA :) PowerShell точно не пододёт? Там это займет около пяти строчек :)
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    15 июля 2009 г. 14:28
    Модератор
  • В моей ситуации PowerShell не подойдет.
    Но может в будущем пригодится, напиши как это сделать PowerShell.
    17 июля 2009 г. 5:20
  • Нужно использовать класс Windows.Forms.MessageBox

    http://bartdesmet.net/blogs/bart/archive/2006/09/16/4429.aspx

    Сазонов Илья http://www.itcommunity.ru/blogs/sie/
    17 июля 2009 г. 7:01
    Модератор
  • Илья, messageBox предоставит лишь возможности стандартного MessageBox, где изменения шрифта не предусмотрено.
    В PowerShell можно использовать функции Win32 API из первого ответа (вот в помощь http://xaegr.wordpress.com/2009/02/11/powershell1-api/, http://pinvoke.net/). Но гораздо проще просто создать диалоговое окно самостоятельно:

    $form = New-Object system.windows.forms.form
    $label = New-Object system.windows.forms.label
    $button = New-Object system.windows.forms.button
    $font = New-Object System.Drawing.Font("Arial", 30)
    $form.controls.AddRange(($label,$button))
    $label.Dock = "Fill"
    $label.Font = $font
    $label.AutoSize = $true
    $button.left = ($label.Width - $button.Width) /2
    $button.text = "OK"
    $button.DialogResult = "OK"
    $button.left = ($label.Width - $button.Width) / 2 + $label.left
    $form.Height = $button.Height + $button.top + 30
    $form.Showdialog()

    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    18 июля 2009 г. 16:53
    Модератор
  • Да Windows.Forms.MessageBox цельный класс и не модифицируется.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie/
    20 июля 2009 г. 4:43
    Модератор