Показать полную графическую версию : [решено] 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
boha, реализовать все Ваши хотелки на WSH не реально. Поменяйте тематику на PowerShell — там можно будет реализовать на форме.
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
Dr.DG, Вы прочитали все пожелания автора
Нужно чтоб каждую окошку пользователь не мог закрыть »
?!
Iska
а можно тогда сделать чтоб 3000 символов можно было отобразить в одной окошке?
и эту окошку пользователь не мог бы закрыть в течении 5 минут.
boha, на PowerShell, думаю, можно.
P.S. Из опыта: не читали, и читать не будут. Хоть красными буквами пишите, хоть жирными, хоть аршинными. Не будут.
тема закрыта.
спасибо Iska.
Вы прочитали все пожелания автора »Не понял, что мешает обрабатывать события окна браузера или после закрытия так же открывать новое окно скриптом?
Хотя зачем оно, если никто всё равно не читает... :-)
Dr.DG, ничто не мешает. Но это будет ровно такой же выверт, как и здесь: Серый форум / VBScript: «незакрываемый» MsgBox на заданное время (http://forum.script-coding.com/viewtopic.php?id=2801).
Хотя зачем оно, если никто всё равно не читает... :-) »
И я про то же. Делал. Незакрываемое, непередвигаемое, неубиваемое, поверх всех… Если не хотят читать — не заставишь. Только организационные меры. Причём, это куда более действенный способ.
Я опять столкнулся с одни нюансом.
помогите решить если возможно.
ниже скрипт, я запускаю его через планировщик задании на всех пользователей.
окошко с сообщение выскакивает на монитор даже тогда, когда компьютер заблокирован.
Нужно чтоб не выходила сообщение по верх блокировки, Чтоб пользователь видел окошко только при входе в сеанс.
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
я запускаю его через планировщик задании на всех пользователей. »
Как именно? Приведите подробности созданного задания.
Цитата boha:
я запускаю его через планировщик задании на всех пользователей. »
Как именно? Приведите подробности созданного задания. »
В гурпповой политике домена создал политику для пользователей "user configuration\ preferences\ control panel settings\scheduled Tasks"
чтоб у них создавался планировщик на определенное время и запускал скрипт с общедоступной папки контроллера домена "\\domain\SYSVOL\scripts"
не кто не знает как решить?
boha, задайте тот же вопрос (http://forum.oszone.net/post-2029034.html#post2029034) в разделе по Windows Server 2008/2008 R2. Добавьте к вопросу детали отсюда (http://forum.oszone.net/post-2029385.html#post2029385). У меня нет в наличии домена этого уровня.
boha, задайте тот же вопрос в разделе по Windows Server 2008/2008 R2. Добавьте к вопросу детали отсюда. »
Все решили, помог один спец у нас. )
Проблема была в скрипте, в коде vbOKOnly + vbInformation + &H40000) нужно было поменять на 4096
Перевожу на общечеловеческий: задали «MB_SYSTEMMODAL» вместо «MB_TOPMOST»: MessageBox function (Windows) (http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.