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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы, задачи и их решения по VBScript.

 
Мануал (english, 600 Кб). | Зеркало
MS Scripting 5.6 (700 КБ), включает последнюю версию VBS. Владельцам XP/2000(?) должен быть не нужен. | Зеркало
Немного на wikiпедии.
Предыдущие части: 1
 
Смежные темы:
Сценарии Windows
Командная строка, батники\сценарии (bat, cmd)
Скрипты KiXtart

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:12 12-07-2011 | Исправлено: Smitis, 23:28 26-02-2018
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Scaramanga
на какие именно файлы должны создаваться ярлыки? или это военная тайна, которую ты и при самых страшных пытках не откроешь?! чай телепатия и третий глаз нам не присущи, поэтому я могу лишь показать, как пинговать хост с указанным айпишником и метод создания ярлыка, - воедино то, наверное, уж сможешь все собрать самостоятельно. итак, пинг хоста по айпишнику:
Код:
strTarget = "192.168.1.1" 'запихиваем наш айпи в переменную типа string
 
Set WSHShell = CreateObject("WScript.Shell") 'получаем ссылку на системный шелл
Set objExec = WSHShell.Exec("ping -n 5 -w 1000 " & strTarget) 'собственно пинг айпишника
 
... 'далее код по обстоятельствам
а ярлыки создаются примерно так:
Код:
Set WSHShell = WScript.CreateObject("WScript.Shell")
DesktopPath = WSHShell.SpecialFolders("Desktop")
Set objShortcut = WSHShell.CreateShortcut(DesktopPath & "\" & "Figopad.lnk")
objShortcut.TargetPath = "C:\WINDOWS\notepad.exe"
objShortcut.Description = "Figopad"
objShortcut.Save

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:39 01-12-2011
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ComradG
Да нет тайны никакой нет.  
ярлык создается на файлы x:\photoshop.exe x:\corel.exe  
 

Цитата:
далее код по обстоятельствам

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

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 13:11 01-12-2011
AndVGri

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

Код:
 
Option Explicit
Const sHost = "192.168.1.1"
Const appPath = "\pathToCorel\"
Const CorelLink = "Corel.lnk"
Dim objShell, objShortCut, sPath, fso
 
Set objShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
 
sPath = objShell.SpecialFolders("Desktop") & "\"
If fso.FileExists(sPath & CorelLink) Then fso.DeleteFile(sPath & CorelLink)
If Avaible(sHost) Then
    Set objShortCut = objShell.CreateShortcut(sPath & CorelLink)
    objShortCut.TargetPath = "\\" & sHost & appPath & "CorelDRW.exe"
    objShortCut.Description = "Corel application"
    objShortCut.Save
End If
 
Function Avaible(thisComp) 'пингом проверяет доступность компьютера name в сети
    Dim objPing, objStatus, bResult
    On Error Resume Next
     
    bResult = False
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & thisComp & "'")
    For Each objStatus in objPing
        If Not (IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0) Then  
            bResult = True: Exit For
        End If
    Next
    Avaible = bResult
End Function
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 08:20 02-12-2011
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AndVGri
Скрипт срабатывает, но только в момент запуска. Т.е. запустили он выполнил свою работу и благополучно выключился. Мне же нужно чтобы он все время висел в процессах и мониторил доступность сервера  выполняя нужные перемещения ярлыка в случае доступности\недоступности последнего

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 09:42 02-12-2011
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Scaramanga
ну заключи всё тело скрипта в бесконечный цикл и используй слип.
 
do{
  -тело скрипта-
  WScript.Sleep(60000);
} while(true);
 
и кстати зачем было городить пинг, если тебе достаточно проверить существования файла:
 
var fso=new ActiveXObject("Scripting.FileSystemObject");
do{
  if (fso.FileExists(-файл на сервере-)) {-делаем ярлык-} else {-удаляем ярлык-};
  WScript.Sleep(60000);
} while(true);
 
 
 
 

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 09:48 02-12-2011 | Исправлено: megamozg13, 10:08 02-12-2011
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Пингуется wifi устройство которое лежит в ящике стола. Отключение устройства должно убрать ярлыки с рабочих столов пользователей на "нужное" ПО

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 10:16 02-12-2011
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
тогда ярлыки мало удалять, еще закрывать активные процессы нужно, и компы в ребут запускать =)

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 10:34 02-12-2011
Scaramanga



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

Цитата:
ну заключи всё тело скрипта в бесконечный цикл и используй слип.  
 
do{  
  -тело скрипта-  
  WScript.Sleep(60000);  
} while(true);  

Можешь полный текст скрипта дать? Выдает все время ошибку о недопустимом знаке(

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 10:37 02-12-2011
AndVGri

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

Код:
 
Do
'-----
Loop While True
 

Можешь ещё и в планировщик засунуть, без бесконечного цикла

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 10:42 02-12-2011
atomheart



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Есть одна программка для пульта ДУ - uICE. В ней есть возможность запускать скрипты JScript, VBscript. Хочу воспроизвести системный звук "звёздочка". В сети нашёл такой

Код:
 
Private Sub Form_Load()
Call MessageBeep(MB_ICONASTERISK)
End Sub
 

Скрипт исполняется без ошибок, но никакого звука не слышно.
Подскажите, как заставить его звучать?
Спасибо.

Всего записей: 130 | Зарегистр. 14-04-2008 | Отправлено: 23:12 07-12-2011
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
atomheart
А остальное, что нашёл?

Цитата:
Form_Load

В VBScript форм нет, написано, скорее всего, для VBA или VB6, там же (в тексте, где выдерал) есть и определение константы MB_ICONASTERISK и определение процедуры MessageBeep

Цитата:
Скрипт исполняется без ошибок

Без ошибок, потому что ничего и не делает
Если бы не ленился и искал, хотя бы "vbscrip воспроизведение звука", то нашёл бы что-то вроде этого
с Серого форума

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 06:52 08-12-2011 | Исправлено: AndVGri, 07:01 08-12-2011
atomheart



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndVGri
В данном случае я не ленивый, просто плохо искал. Серый форум - то, что нужно, спасибо. Для себя нашёл

Код:
 
Set oVoice = CreateObject("SAPI.SpVoice")
Set oSpFileStream = CreateObject("SAPI.SpFileStream")
oSpFileStream.Open "c:\Windows\Media\tada.wav"
oVoice.SpeakStream oSpFileStream
oSpFileStream.Close
 

Работает быстро и чётко.

Всего записей: 130 | Зарегистр. 14-04-2008 | Отправлено: 17:35 08-12-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
atomheart, AndVGri
вы чего? все гораздо проще делается, без всяких SAPI:
Код:
Set objShell = CreateObject("WScript.Shell")
 
strSound = "C:\WINDOWS\Media\tada.wav"
strCommand = "sndrec32 /play /close " & Chr(34) & strSound & Chr(34)
 
objShell.Run strCommand, 0, False

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:19 08-12-2011 | Исправлено: ComradG, 22:20 08-12-2011
atomheart



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Спасибо, так тоже работает, но с SAPI, субъективно, быстрее. На Сером есть похожий код через пакетный файл:

Код:
 
sndrec32 /embedding /play /close "C:\Windows\Media\Notify.wav"
 

Всего записей: 130 | Зарегистр. 14-04-2008 | Отправлено: 17:01 09-12-2011
ComradG



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

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 13:03 11-12-2011
mavritonec



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди помогите со скриптом, нужно что бы он допустим конкретный файл 123.xml, переименовал расширение на 123.txt... или ткните носом где уже это было. Буду очень вам благодарен !

Всего записей: 62 | Зарегистр. 12-04-2009 | Отправлено: 08:20 15-12-2011
ComradG



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

Код:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile("123.xml", "123.txt")
можно и через GetFile, но это уж на вкус и цвет, а фломастеры у всех разные. хотя лично бы я еще прикрутил валидатор на расширение и создал бы функуию для пакетной обработки файлов.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:01 15-12-2011
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
День добрый. Задача следующая. Нужен скрипт который в silent режиме  произведет поиск в реестре указанного значения и удалить все ключи\разделы\параметры содержавшие данное значение. Для примера пусть значение для поиска будет "test" Заранее спасибо

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 16:34 16-12-2011
lion shadow



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте кто-нибудь.)
Я с языками программирования в общем не очень знаком, разве что Turbo Pascal 7.0 или VBA чуть-чуть знаю.
Пару дней назад я узнал о существовании vbscrept-а и файлов *.vbs, создал пару приколов типо с мигающей клавиатурой, понял как копировать, создавать файлы, как запускать exe или другие *.vba, чуть понял msgbox..
Мне как-то понравился этот язык, хотелось бы узнать основы и про циклы и массивы и метки. Надо какую-нибудь супер простую книжку с подробными простыми примерами скачать и чтобы на русском языке, а то не пойму.. Посоветуйте что-нибудь.
Я пытался что-то найти, но похоже нормально искать я не умею.)

Всего записей: 2 | Зарегистр. 15-12-2011 | Отправлено: 17:00 16-12-2011
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lion shadow
Gunter Born "Microsoft Windows Script Host 2.0 Developer's Guide" - есть и на русском.
А. Попов, Е. Шикин "Администрирование Windows с помощью WMI и WMIC".
 
а вообще гуглим мануалы по яве "jsdoc.exe", вбс "vbsdoc.exe" и движку "wshdoc.exe" и в качестве примеров Microsoft "Script Center".
 
(мануалы могу в обменник закинуть http://rghost.ru/35030571)

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 17:19 16-12-2011 | Исправлено: megamozg13, 17:21 16-12-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru