Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] MsgBox как отобразить картинку, шрифт изменить и таймер установить (http://forum.oszone.net/showthread.php?t=245720)

boha 29-10-2012 14:49 2014300

MsgBox как отобразить картинку, шрифт изменить и таймер установить
 
Здравствуйте.
есть скрипт vbs, домен, win ХР и 7, (скрипт указан ниже)
Сам скрипт писать не умею.
Нужно сделать так, чтоб всем пришло сообщение на экран при логоне или же по другому методу. Некоторые сотрудники не выключают компьютера и логон не у всех сработает. пока у меня только метод логона.
этот скрипт выводит сообщение и хотелось бы чтоб были еще дополнительные функции. Помогите решить с этим:

1. Нужно чтоб в диалоговом окошке по мимо текста на всех следующих окошках отображался картинка (ссылку я могу указать на общий ресурс)
2. Нужно чтоб каждую окошку пользователь не мог закрыть в течении 1 минуты, после при нажатии ОК переходит на следующ. Это для того чтоб пользователь прочитал ). У меня просто текст не помещается и он состоит из 3000 символов, поэтому разделил на 3 страницы. Я не смог их поместить в одну страницу. Если есть возможность чтоб поместить 3 тыс символов в одной странице, то можно поставить лимит на окно в 5 минуты
3. Можно ли увеличить размер буквы? или жырными шрифтами.


спасибо.


Option Explicit
Dim objWMIService, objItem, colItems
Dim strComputer, strMbox
'On Error Resume Next
strMbox = "."

strMbox = MsgBox("Внимание!")
strMbox = MsgBox("Уважаемые коллеги! Сообщаем всем, что....!")
strMbox = MsgBox("Прошу учесть данную инфу...!")
If strMbox = 1 Then
strMbox ="."
End if

Iska 29-10-2012 18:34 2014460

boha, реализовать все Ваши хотелки на WSH не реально. Поменяйте тематику на PowerShell — там можно будет реализовать на форме.

Dr.DG 29-10-2012 22:28 2014651

boha, вот как можно управлять IE с помощью VBS. В качестве примера показываю страницу для ввода пароля. Вы можете создать свою страницу с нужным функционалом.
Код:

strPassword = GetPassword("User", "Domain")

Function GetPassword(strUser, strDomain)

    Dim objIE
   
    Set objIE = CreateObject("InternetExplorer.Application")

    With objIE
   
        .AddressBar = False
        .Menubar = False
        .Navigate "about:blank"
        .ToolBar = 0
        .Resizable = False
        .StatusBar = False
        .Width = 340
        .Height = 230
        .Left = (.Document.ParentWindow.Screen.AvailWidth - .Width) \ 2
        .Top = (.Document.ParentWindow.Screen.AvailHeight - .Height) \ 2

        Do While .Busy
          WScript.Sleep 200
        Loop

        .Document.title = "Logon"
        .Document.body.scroll = "no"
        .Document.body.innerHTML = "<font face=Arial>" & _
            "<h3>Logon to " & strDomain & " domain</h3>" & _
            "<table><tbody><tr><td>User name:</td><td>" & strUser & "</td></tr>" & _
            "<tr><td>Password:</td><td><input type=password id=txtPassword></td></tr>" & _
            "<tr><td><input type=hidden id=txtHidden value=0></td>" & _
            "<td><input type=submit value=OK onClick=vbscript:txtHidden.Value=1>" & _
            "</td></tr></tbody></table></font>"
       
        .Visible = True

        'wait for user input
        Do While .Document.all.txtHidden.value = "0"
            WScript.Sleep 200
        Loop

        GetPassword = .Document.all.txtPassword.value

        .Quit
       
    End With

    Set objIE = Nothing

End Function


Iska 29-10-2012 22:36 2014661

Dr.DG, Вы прочитали все пожелания автора
Цитата:

Цитата boha
Нужно чтоб каждую окошку пользователь не мог закрыть »


?!

boha 30-10-2012 07:36 2014835

Iska
а можно тогда сделать чтоб 3000 символов можно было отобразить в одной окошке?
и эту окошку пользователь не мог бы закрыть в течении 5 минут.

Iska 30-10-2012 08:23 2014846

boha, на PowerShell, думаю, можно.

P.S. Из опыта: не читали, и читать не будут. Хоть красными буквами пишите, хоть жирными, хоть аршинными. Не будут.

boha 30-10-2012 08:36 2014850

тема закрыта.
спасибо Iska.

Dr.DG 30-10-2012 23:33 2015429

Цитата:

Цитата Iska
Вы прочитали все пожелания автора »

Не понял, что мешает обрабатывать события окна браузера или после закрытия так же открывать новое окно скриптом?
Хотя зачем оно, если никто всё равно не читает... :-)

Iska 31-10-2012 00:55 2015501

Dr.DG, ничто не мешает. Но это будет ровно такой же выверт, как и здесь: Серый форум / vbscript: «незакрываемый» MsgBox на заданное время.

Цитата:

Цитата Dr.DG
Хотя зачем оно, если никто всё равно не читает... :-) »

И я про то же. Делал. Незакрываемое, непередвигаемое, неубиваемое, поверх всех… Если не хотят читать — не заставишь. Только организационные меры. Причём, это куда более действенный способ.

boha 20-11-2012 17:03 2029034

Я опять столкнулся с одни нюансом.
помогите решить если возможно.

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

Код:

Option Explicit

Dim objWshShell

Dim intTime4Show                                                              ' Заданное (оно же максимально возможное) время показа сообщения
Dim intMinimumTime                                                            ' Минимальное время показа сообщения
Dim intTimeStartShowing                                                        ' Время начала показа сообщения
Dim intRetValue                                                                ' Возвращаемое значение метода .Popup


Set objWshShell = WScript.CreateObject("WScript.Shell")

intTime4Show    = 60                                                          ' Заданное    время показа сообщения — 1 минута
intMinimumTime  = 5                                                          ' Минимальное время показа сообщения — 10 секунд

intTimeStartShowing = Timer                                                    ' Засекаем время

Do
    ' Выводим сообщение поверх всех окон [&H40000] на оставшееся на текущий момент,
    ' от заданного, время [intTime4Show - (Timer - intTimeStartShowing)]
    intRetValue = objWshShell.Popup( _
        "  УВАЖАЕМЫЕ КОЛЛЕГИ!" & Chr(13) & _
"Администратор домена сообщает, что....!", _
        intTime4Show - (Timer - intTimeStartShowing), _
        "СЛУЖБА СООБЩАЕТ!", _
        vbOKOnly + vbInformation + &H40000)
   
    ' Повторяем вывод сообщения, пока не будет выполнено одно из условий:
    ' 1. Истечёт отведённое время и сообщение будет закрыто по таймауту [intRetValue = -1]
    ' 2. Сообщение будет закрыто вручную и с момента первого показа
    '    сообщения до текущего момента пройдёт не менее минимального [intMinimumTime]
    '    времени [(Timer - intTimeStartShowing) > intMinimumTime]
Loop Until intRetValue = -1 Or (Timer - intTimeStartShowing) > intMinimumTime

Set objWshShell = Nothing

WScript.Quit 0


Iska 20-11-2012 18:07 2029076

Цитата:

Цитата boha
я запускаю его через планировщик задании на всех пользователей. »

Как именно? Приведите подробности созданного задания.

boha 21-11-2012 07:15 2029385

Цитата:

Цитата Iska
Цитата boha:
я запускаю его через планировщик задании на всех пользователей. »
Как именно? Приведите подробности созданного задания. »

В гурпповой политике домена создал политику для пользователей "user configuration\ preferences\ control panel settings\scheduled Tasks"
чтоб у них создавался планировщик на определенное время и запускал скрипт с общедоступной папки контроллера домена "\\domain\SYSVOL\scripts"

boha 22-11-2012 11:33 2030191

не кто не знает как решить?

Iska 22-11-2012 15:14 2030363

boha, задайте тот же вопрос в разделе по Windows Server 2008/2008 R2. Добавьте к вопросу детали отсюда. У меня нет в наличии домена этого уровня.

boha 07-12-2012 17:05 2040747

Цитата:

Цитата Iska
boha, задайте тот же вопрос в разделе по Windows Server 2008/2008 R2. Добавьте к вопросу детали отсюда. »

Все решили, помог один спец у нас. )
Проблема была в скрипте, в коде vbOKOnly + vbInformation + &H40000) нужно было поменять на 4096

Iska 07-12-2012 17:14 2040759

Перевожу на общечеловеческий: задали «MB_SYSTEMMODAL» вместо «MB_TOPMOST»: MessageBox function (Windows).


Время: 15:04.

Время: 15:04.
© OSzone.net 2001-