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

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

Ответить
Настройки темы
VBS/WSH/JS - [решено] Текстовая константа

Пользователь


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


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

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


Код: Выделить весь код
Const AnyHere = InputBox("Сообщение", "Заголовок")
Ошибка
Предполагается наличие текстовой константы (литерала)

Исправьте пожалуйста

Отправлено: 20:05, 01-09-2012

 

Ветеран


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

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


Ragnazar, ключевое слово «Const», описывающее последующую за ним константу, не предполагает наличия каких-либо выражений в определяющей части инструкции (после знака равенства).

Так что, используйте «Dim». Тем паче, что, в данном случае, сие и по смыслу должно быть так.
Код: Выделить весь код
Dim AnyHere

AnyHere = InputBox("Сообщение", "Заголовок")

Отправлено: 05:13, 02-09-2012 | #2



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

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


Пользователь


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

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


Просто пытаюсь сделать, что-бы пользователь определял функцию
CDO.Message.Configuration.Fields.Item
Обычная переменная не работает.

Точнее не эту функцию а
CDO.Message.From

Отправлено: 10:17, 02-09-2012 | #3


Ветеран


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

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


Ragnazar, ничего не понятно. Покажите код, который должен работать, но не работает.

Отправлено: 10:58, 02-09-2012 | #4


Пользователь


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

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


Код: Выделить весь код
Const EmailFrom = "От кого"
Const EmailPassword = InputBox "Пароль"
Const strSmtpServer = InputBox "smtp server"
Const EmailTo = InputBox "Кому"
Set objEmail = CreateObject("CDO.Message")  
objEmail.From = EmailFrom 
objEmail.To = EmailTo 
objEmail.Subject = InputBox "Тема"
objEmail.Textbody = InputBox "Сообщение"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = EmailFrom 
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = EmailPassword 
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmtpServer 
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
objEmail.Configuration.Fields.Update 
objEmail.Send 
WScript.Quit
Заменить константы DIMом и SETом не получилось

Отправлено: 19:09, 06-09-2012 | #5


Ветеран


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

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


Это называется «смешались в кучу кони, люди». Исправлять не стал.

Не проверялось:
Код: Выделить весь код
Option Explicit

Dim EmailFrom
Dim EmailPassword
Dim strSmtpServer
Dim EmailTo
Dim objEmail

EmailFrom     = "От кого"
EmailPassword = InputBox("Пароль")
strSmtpServer = InputBox("smtp server")
EmailTo       = InputBox("Кому")

Set objEmail = CreateObject("CDO.Message")

With objEmail
	.From     = EmailFrom
	.To       = EmailTo
	.Subject  = InputBox("Тема")
	.Textbody = InputBox("Сообщение")
	
	With .Configuration.Fields
		.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")        = 2
		.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
		.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")     = EmailFrom
		.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")     = EmailPassword
		.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")       = strSmtpServer
		.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")   = 25
		
		.Update
	End With
	
	.Send
End With

Set objEmail = Nothing

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

Отправлено: 20:17, 06-09-2012 | #6


Пользователь


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

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


Узнал много нового про With
А Set ObjEmail = Nothing обязательно?
И что такое option explicit?

Отправлено: 20:24, 06-09-2012 | #7


Ветеран


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

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


Цитата Ragnazar:
А Set ObjEmail = Nothing обязательно? »
Старайтесь сразу привыкать освобождать объектные переменные, когда они более не требуются. В данном конкретном случае скрипт всё одно завершает свою работу, так что большой разницы нет. Но в других случаях сие может стать критичным. Так что, как я уже говорил, лучше привыкать делать сие сразу. Привычка — вторая натура.

Вы как бы «говорите», что объектная переменная более не ссылается на область памяти, занятую созданным ранее экземпляром объекта «CDO.Message», и сборщик мусора (Сборка мусора — Википедия) во время очередного прохода сможет освободить эту память и вернуть её в распоряжение системы.

Цитата Ragnazar:
И что такое option explicit? »
Это инструкция, декларирующая, что все переменные, содержащиеся в коде, должны быть предварительно объявлены (например, при помощи оператора Dim). Использование данной инструкции позволяет избегать глупых ошибок, возникающих при ошибках написания имён переменных.

Отправлено: 08:07, 07-09-2012 | #8


Пользователь


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

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


А вот вопрос
Почему
CDO.Message.subject и .textbody
Могут использовать InputBox
А .From .To
Нет? (Сообщалась ошибка "Нужно заполнить хотя-бы одно поле From или To)

Отправлено: 08:21, 07-09-2012 | #9


Ветеран


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

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


Цитата Ragnazar:
Почему CDO.Message.subject и .textbody могут использовать InputBox а .From .To нет? (Сообщалась ошибка "Нужно заполнить хотя-бы одно поле From или To) »
«.From» и «.To» тоже могут.

Отправлено: 08:31, 07-09-2012 | #10



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

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




 
Переход