Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript

Модерирует : ShIvADeSt

ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

   

ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
Сейчас посмотрю...
Scaramanga
Вроде все правильно Хотя может я чего пропустил, но вполне возможно, что в сценарии попадаются переменные с одними и теми же именами. Лучше, чтоб не искать иглу в стоге сена, разбей сценарий на несколько, и напиши к ним ланчуру: во-первых, легче искать ошибки, во-вторых, можно оперативно вносить исправления.
 
Free_Soft
Накидал пример с мессадж-боксом, все работает, проверил трижды.

Код:
strSoundFile = "C:\windows\Media\Notify.wav"
Set objShell = CreateObject("Wscript.Shell")
strCommand = "sndrec32 /play /close " & chr(34) & strSoundFile & chr(34)
objShell.Run strCommand, 0, False
Wscript.Sleep 500
MsgBox "It's just playing soud..." & Chr(10) & "And you what thought about?"

Запуск:

Код:
wscript //nologo name.vbs

В случае с эхом код будет выглядеть так:

Код:
WScript.Echo "It's just playing soud..." & Chr(10) & "And you what thought about?"

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:13 09-09-2010 | Исправлено: ComradG, 21:34 09-09-2010
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
и напиши к ним ланчуру

Для меня это пока темный лес)

Цитата:
что в сценарии попадаются переменные с одними и теми же именами

 
В куске архивирования файла только одна переменная ZipFileHeader, в коде больше она нигде не втстречается, а без куска архивирования, скрипт отрабатывает полностью и без ошибок

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 21:35 09-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Scaramanga

Цитата:
Для меня это пока темный лес)

Хм, а что тут сложного?! Если скрипт планируется запускать через консоль, то можно навалять батник в качестве ланчуры.

Цитата:
В куске архивирования файла только одна переменная

Да, я уже заметил, так что пересматриваю твой сценарий заново. Найду ошибку свистну. А если нет, то ушел на боковую )

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:41 09-09-2010 | Исправлено: ComradG, 21:47 09-09-2010
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Scaramanga
Плохо, когда все делается копипастом, без понимания.
Уж не буду говорить, что там много лишнего, объекты инициализируются по нескольку раз и т.п. - черт с ним.
Но все таки элементарное понятие надо иметь.
Если стоит параметр Option Explicit, то надо все переменные объявлять. А у тебя необъявленных целая куча.
Ну и поскольку стоит On Error Resume Next - обошибках тебе ничего не говорится и тихо завершает работу, не сделав нужное.
Припиши к скрипту

Код:
Dim SourceFilePath, DestFilePath, Zip, WsriptShell, strMailBody, FileSytemObject

и он отработает нормально.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 21:46 09-09-2010 | Исправлено: Rush, 21:47 09-09-2010
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
ммм.. тот код сам месседжбоксом является. я просто хочу отказаться от екзешной утилиты и заменить ее скриптом. Синтаксис приведенного мной сценария:
message.vbs "текст" "заголовок окна" <символ, обозначающий иконку в сообщении> <кнопки> <таймаут>
например:
Код:
message.vbs "Чтобы закрыть это окно, нажмите Ок." "Мой скрипт" I OK 30

Единственное, что в нем не хватает, возможности перенести строку.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:48 09-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rush
Про мусор я уже говорил. Прошу прощения за дерзость, но ты бы лучше еще пояснил Scaramanga куда именно этот кусок вставлять заранее
Free_Soft
КАКУЮ ИМЕННО?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:50 09-09-2010 | Исправлено: ComradG, 21:51 09-09-2010
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
ну в тексте выводимого сообщения. Скрипт широко применяется, текст подставляется из консоли, а не прописывается в самом сценарии

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:03 09-09-2010
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG

Цитата:
ты бы лучше еще пояснил Scaramanga куда именно этот кусок вставлять заранее

Разберется.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 22:08 09-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
В смсысле должен браться текст уже выведенный в консоль и после выводиться в мессагубокс? Эээ... По-моему, это просто извра, нежели необходимость.
Rush
Посмоторим

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:09 09-09-2010 | Исправлено: ComradG, 22:10 09-09-2010
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
ну а что тут извращенного? в консольной программе с помощью этого сценария организован интерфейс, в зависимости от выполняемых функций в сообщение выводится разный текст. Текст НЕ ВВОДИТСЯ  в консоль (в смысле я не набиваю его руками в окно консоли и не хочу, чтобы он потом появился в окне сообщения) - cmd сценарий лишь задает его для vbs скрипта. Извини, если туманно выражаюсь

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:15 09-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft

Цитата:
Извини, если туманно выражаюсь

Да нет, не очень. Просто представить пока никак не могу подобное. По-моему лучше не заморачиваться и сделать в vbs'ке отдельную секцию с набором сообщений. А то, если я тебя правильно понимаю, придется дрюкаться с буфером.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:24 09-09-2010
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Да зачем с буфером-то? код рабочий, все отлично работает, просто строку перенести надо. Извини снова, если опять друг друга не поняли. Msgbox.exe кстати умеет строки переносить, но у нее плохая совместимость с антивирусами. отсюда и пляски. А все сообщения в сценарий.... можно конечно. Только в скриптах я полный профан

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:28 09-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft

Цитата:
можно конечно

Дык, в чем тогда дело? В случае с cscript'ом сообщения выводятся через echo, а в wscript - через msgbox. Я ж тебе привел пример.

Цитата:
 Только в скриптах я полный профан

Все когда-то были такими.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:38 09-09-2010
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Плохо, когда все делается копипастом, без понимания.

Вчера первый раз взялся за VB да и вообще за програмироние.
 
Основа скрипта была взята с мелкософтовского сайта, там он выполнял функцию скана по сети и отправку на мыло, что разобрался за несколько часов - вырезал. Аналогично с остальными кусками кодов.  
 
Добавлено:

Цитата:
Припиши к скрипту  
 
Код:Dim SourceFilePath, DestFilePath, Zip, WsriptShell, strMailBody, FileSytemObject  
 
 
и он отработает нормально.

спасибо все работает)

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 22:44 09-09-2010
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Все таки еще спрошу: с приведенным мной кодом можно такое проделать или нет?

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:52 09-09-2010 | Исправлено: Free_Soft, 09:47 10-09-2010
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос снят, уже сам сделал

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 09:47 10-09-2010
travian

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 19 | Зарегистр. 15-04-2010 | Отправлено: 19:36 10-09-2010 | Исправлено: travian, 20:04 10-09-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
travian
да сделал я тебе уже без окон. все работает

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:41 10-09-2010
cetael

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет.  
 
Есть  скрипт для удаленно отключения компьютеров.  Но требуется что до отключения компьютеров скрипт предупреждал пользователей например вот так: "Power failure. The computer will be automaticaly shutting down after 3 min. Please save your work" и через 3 минут отключал компьютеры.  
 
-----------------------------------------------------------------------------  
Dim strComputer, OperationMode, strUsername, strPassword  
 
'Remote computername or IP  
strComputer="172.5.5.155"  
 
'Specify the OperationMode (0 = Restart, 1 = Logoff, 2 = Shutdown)  
OperationMode = 0  
 
'Credentials  
strUsername = "Administrator"  
strPassword = "password"  
 
'put computername into uppercase  
strComputer = UCase(strComputer)  
 
'Perform the operation on remote PC  
Call OperationAction  
 
Sub OperationAction  
    On Error GoTo 0  
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")  
 Set objSWbemServices = objSWbemLocator.ConnectServer _  
      (strComputer, "root\cimv2", strUsername, strPassword)  
 objSWbemServices.Security_.ImpersonationLevel = 3  
 
'Call WMI query to collect parameters for reboot action  
    'Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//"_  
     '& strComputer & "/root/cimv2").ExecQuery("select * from Win32_OperatingSystem"_  
     '& " where Primary=true")  
 
Set OpSysSet = objSWbemServices.ExecQuery("select * from Win32_OperatingSystem"_  
    & " where Primary=true")  
 
Dim OpSysSet, OpSys  
 
'Set PC to reboot  
If OperationMode = 0 Then  
        For each OpSys in OpSysSet  
            opSys.Reboot()  
        Next  
 
'Set PC to logoff  
ElseIf OperationMode = 1 Then  
 
        Const EWX_LOGOFF = 0  
        For each OpSys in OpSysSet  
            opSys.win32shutdown EWX_LOGOFF  
        Next  
 
'Set PC to shutdown  
ElseIf OperationMode = 2 Then  
        For each OpSys in OpSysSet  
            opSys.Shutdown()  
        Next  
 
    End If  
End Sub

Всего записей: 4 | Зарегистр. 01-03-2008 | Отправлено: 14:42 15-09-2010
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cetael
Нужно добавить что-то вроде:

Код:
WScript.Echo "Power failure. The computer will be automaticaly _
                   shutting down after 3 min. Please save your work"
WScript.Sleep время в миллисекундах

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 15:17 15-09-2010 | Исправлено: ComradG, 15:18 15-09-2010
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript
ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru