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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сообщение MsgBox

Ответить
Настройки темы
CMD/BAT - [решено] Сообщение MsgBox

Ветеран


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


Конфигурация

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


Подскажите, как вывести сообщение MsgBox в несколько строчек?
Код: Выделить весь код
@echo off &chcp 1251 >nul
echo WScript.Quit(MsgBox(WScript.Arguments(0),vbYesNo+vbDefaultButton2,WScript.Arguments(1)))>"%temp%\MsgBox.vbs"
WScript "%temp%\MsgBox.vbs" "Для успешной работы скрипта необходимо закрыть Word" "Внимание!"
If %ERRORLEVEL% equ 6 (chcp 866 >nul &echo  Word закрыт.) else (
chcp 866 >nul &echo  Word не закрыт.)
del /q "%temp%\MsgBox.vbs"

pause>nul
п.с. Поправьте меня, если есть ошибки в написании скрипта

Отправлено: 11:24, 23-11-2011

 

Ветеран


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

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


Цитата sov44:
А можно сделать так, чтобы отображался свой значок? »
Для приведённого кода — нет.

Цитата sov44:
Не хочется делать exe для выполнения тривиальной задачи вывода сообщения. »
Можете взять один из десятков готовых. Тот же msg.exe, тот же nircmd.exe, тот же WinMsg.exe из комплекта Bill Stewart's Site - Windows Admin Script Tools и т.п. А можете написать свой, бо компиляторы .Net VB и C идут в комплекте поставки ОС, начиная с XP.

Я вообще не вижу смысла заморачиваться такими мелочами. Чем Вам значок не угодил?
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:32, 18-04-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


Можно-ли создать сообщение с задержкой, по аналогии popup, но без кнопок? Аналог этого:
Код: Выделить весь код
cscript //nologo "%~dp0msg1.vbs" "текст1 \n текст2" "шапка"
msg1.vbs
Код: Выделить весь код
wscript.createobject("wscript.shell").popup replace(wscript.arguments(0),"\n",vbCrLf), 6, wscript.arguments(1), vbokonly + vbinformation

Отправлено: 09:21, 13-05-2017 | #12


Ветеран


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

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


sov44, на WSH без кнопок — нет: MessageBox function (Windows) всегда будет содержать хотя бы одну кнопку. Напрямую, разумеется — варианты с сабклассингом мы не рассматриваем, не тот уровень.

Вы хотите что-то наподобие всплывающего уведомления? Так nircmd.exe же — команда trayballoon:
Код: Выделить весь код
"C:\Program Files (x86)\NirSoft\x64\nircmd.exe" trayballoon "шапка" "текст1~nтекст2" "shell32.dll,-154" 10000
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:00, 13-05-2017 | #13


Ветеран


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

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


Цитата Iska:
Вы хотите что-то наподобие всплывающего уведомления? »
Хотелось-бы... Вариант с треем тоже не плох, подумаю над этим.

Отправлено: 10:46, 13-05-2017 | #14


Ветеран


Contributor


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

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


Немного не в тему, но всё же написал батник с js. Достоинство: не делается дополнительный файл по сравнению с vbs. В js использую Popup, в аргументах конфигурация кнопок, время ожидания, строки сообщения. В %ErrorLevel% батнику передаётся инфа о том, какая кнопка нажата.
Гибрид bat и js
Код: Выделить весь код
@set @E=1; /*

@Echo Off
cls

Set Msg="Варкалось." "Хливкие шорьки" "Пырялись по наве"

cscript //NoLogo /E:jscript "%~dpnx0" 65 5 %Msg%

Echo %ErrorLevel%


pause
GoTo :Eof

*/
// Первый аргумент oArg(0) -способ использования Popup
// Второй аргумент oArg(1) -время ожидания сек
// Остальные - строки сообщения
// Возвращает %ErrorLevel% в соответствии с нажатием клавиши Popup

var Out=-222;
var oArg = WScript.Arguments;

var NCount=oArg.Count()-1;
var i, j, w, Msg;

if (NCount>0) {
	var WshS = WScript.CreateObject("WScript.Shell");

	Msg = "";
	for (i=2; i<=NCount; i++) {
		if (i != 1) Msg+="\n";
		Msg+=oArg(i);
	}
	Out=WshS.Popup(Msg,oArg(1),"",oArg(0));
}
WScript.Quit(Out);
Спасибо Serguei Kouzmine в теме

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 14-05-2017 в 09:29. Причина: Доработан %ErrorLevel%

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:45, 13-05-2017 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сообщение MsgBox

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSGBOX с отсчетом на кнопке по умолчанию Smokie_id11243755 AutoIt 10 17-01-2012 22:38
Изменить текст кнопки MSGBOX'a sashadeg AutoIt 13 20-11-2009 18:00
[решено] Абзац в MsgBox teverus AutoIt 5 13-08-2009 15:05
V. 5.5/2000/2003 - [решено] Сообщение еще не доставлено. Microsoft Exchange продолжит попытки доставить сообщение exo Microsoft Exchange Server 1 28-05-2009 23:23
Использование кнопок MsgBox'a sashadeg AutoIt 4 15-05-2009 19:29




 
Переход