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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
generator324

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

Цитата:
сделал бы ты вот так  

Пожалуй, так и сделаю - Благодарю!

Цитата:
а если искать в реестре  

Я не "выклянчиваю" готовое решение , хотя хотелось бы иметь нечто подобное в своём арсенале. На будущее, для других задач.
Просто, насколько я понял (возможно, ошибочно?), задача (поиск в произвольном месте реестра) не столь тревиальна?

Всего записей: 1090 | Зарегистр. 11-01-2019 | Отправлено: 19:58 19-11-2019 | Исправлено: generator324, 19:59 19-11-2019
a929151



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

Цитата:
не столь тривиальна

Это не логично в данном случае.
И универсальное решение не будет рациональным в 99,9%.
Мы же за скорость

Всего записей: 1359 | Зарегистр. 30-03-2016 | Отправлено: 20:06 19-11-2019
generator324

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

Цитата:
Это не логично в данном случае.

В данном случае - да, не спорю

Цитата:
И универсальное решение не будет рациональным в 99,9%.
Мы же за скорость



Всего записей: 1090 | Зарегистр. 11-01-2019 | Отправлено: 20:11 19-11-2019
generator324

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

Всего записей: 1090 | Зарегистр. 11-01-2019 | Отправлено: 10:41 21-11-2019 | Исправлено: generator324, 16:42 05-02-2020
Stone_01



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть батник для интернет соединения.
 
@Echo Off
rasdial "Имя соединения" логин пароль
exit
 
Подскажите пожалуйста как написать аналогичный скрипт на базе vbs.

Всего записей: 352 | Зарегистр. 22-12-2017 | Отправлено: 21:38 22-12-2019
vasyosuol_24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stone_01
http://forum.ru-board.com/topic.cgi?forum=33&topic=11963&start=960#2
 
Добавлено:

Код:
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\system32\rasdial.exe ""Internet"" ""login"" ""pass""", 2, true  

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 21:46 22-12-2019
Stone_01



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol_24
Спасибо большое, работает.
 
В сети нашел обсуждение другого скрипта vbs с похожей задачей, тоже через rasdial. Там по другому сделано оформление, и сначала прописываются исходные данные.
Подскажите кто знает как правильно прописать в этом случае строку "vbConnectWith =  с rasdial".  
 
Вот начало скрипта:
 
Set WshShell = WScript.CreateObject(WScript.Shell)
 
vbConnectionName = "имя интернет соединения"
vbConnectionUser = "логин"
vbConnectionPassword = "пароль"
 
vbConnectWith =  .......???.......

Всего записей: 352 | Зарегистр. 22-12-2017 | Отправлено: 23:07 22-12-2019
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stone_01
Вы просто запускаете встроенное в ОС приложение с параметрами, соответственно неважно как, т.е. через ярлык или другими средствами (cmd, js, vbs, powerShell...).
В том смысле, что подойдёт любой скрипт запуска приложения с параметрами, ну и нужными правами.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 02:32 23-12-2019 | Исправлено: VVL99, 02:55 29-07-2020
a929151



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

Всего записей: 1359 | Зарегистр. 30-03-2016 | Отправлено: 04:20 23-12-2019
Alecs962



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

Код:
@echo off  
 setlocal  
 cd /d %~dp0  
 Call :UnZipFile "%~dp0Update" "%~dp0nirsoft_package_enc_1.23.6.zip"  
 exit /b  
   
 :UnZipFile <ExtractTo> <newzipfile>  
 set vbs="%temp%\_.vbs"  
 if exist %vbs% del /f /q %vbs%  
 >%vbs%  echo Set fso = CreateObject("Scripting.FileSystemObject")  
 >>%vbs% echo If NOT fso.FolderExists(%1) Then  
 >>%vbs% echo fso.CreateFolder(%1)  
 >>%vbs% echo End If  
 >>%vbs% echo set objShell = CreateObject("Shell.Application")  
 >>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items  
 >>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)  
 >>%vbs% echo Set fso = Nothing  
 >>%vbs% echo Set objShell = Nothing  
 cscript //nologo %vbs%  
 if exist %vbs% del /f /q %vbs%

Батник с выводом окна проводника набора пароля. Можно ли обработать файлы по маске в папке Update *.zip (с подставкой паролей для разных архивов), а не один указанный архив?

Всего записей: 215 | Зарегистр. 26-05-2011 | Отправлено: 08:28 23-12-2019 | Исправлено: Alecs962, 08:38 23-12-2019
Stone_01



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99
Спасибо, я это понимаю что можно разными способами соединиться.
 
a929151
Спасибо большое за тематическую ссылку. Подошел вариант, работает.
Только заметил один недостаток в этом варианте скрипта всплывает окно консоли.  
Можно ли от него избавиться здесь?

Всего записей: 352 | Зарегистр. 22-12-2017 | Отправлено: 17:10 23-12-2019
a929151



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

Код:
Run
Синтаксис:
 
Run(<Command>,<WindowStyle>,<WaitOnReturn>)
Назначение: создаёт новый независимый процесс, который запускает заданное приложение.
 
Параметры:
 
<Command> - строка, командная строка запуска приложения.
<WindowStyle> - необязательный, число. Определяет вид окна запускаемого приложения. Некоторые возможные значения:
0 - Не отображает окно.
1 - Активизирует и отображает окно.
2 - Активизирует окно и отображает его в свёрнутом виде.
3 - Активизирует окно и отображает его в максимизированном виде.
<WaitOnReturn> - необязательный, булево (число). True - сценарий возобновит работу только после завершения вызванного процесса. False (по умолчанию) - управление передаётся сразу обратно в сценарий.
Описание: если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль.
 
Пример:
 
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "explorer /e,/root,""C:\Program Files"""
Другой пример:
 
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode

Всего записей: 1359 | Зарегистр. 30-03-2016 | Отправлено: 17:14 23-12-2019
Stone_01



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Спасибо большое. Получилось, сделал.
 
По ссылке которую вы приводили есть еще короткий код для разъединения соединения "disconnect".
Я попробовал его, не срабатывает. Ошибок нет, когда активируешь то ничего не происходит.
Посмотрите пожалуйста, может быть там чего-то не хватает в скрипте или есть другой вариант как это сделать?  
 

Всего записей: 352 | Зарегистр. 22-12-2017 | Отправлено: 19:58 23-12-2019 | Исправлено: Stone_01, 20:00 23-12-2019
a929151



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

Код:
Set WSHShell = WScript.CreateObject("WScript.Shell")
vbConnectionName = "VPN-Verbindung"
vbDisconnect = "rasdial" & " """ & vbConnectionName & """  /DISCONNECT"
WSHShell.Run vbDisconnect

так попробуйте.

Всего записей: 1359 | Зарегистр. 30-03-2016 | Отправлено: 20:05 23-12-2019 | Исправлено: a929151, 20:29 23-12-2019
Stone_01



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Благодарствую, получилось.

Всего записей: 352 | Зарегистр. 22-12-2017 | Отправлено: 21:09 23-12-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возникла необходимость перезапускать "заболевший" сервис, который по каким-либо причинам почему-то не стартует.
Нашёл здесь вроде бы требуемый вариант, немного поправил под свои условия (запуск RServer3.exe, в просторечии Radmin Server 3).  
Но почему-то не работает . Причём не работает концептуально: ошибок никаких не выдаётся, но скрипт каждый раз "дёргает" (стартует) Сервис, который уже запущен - получается полная фигня...
Вот сам код:
Код:
 
On error resume next
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
'WshShell.Run "ds.bat", 0
do
WScript.Sleep 30000
Running = False
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objItem in colItems
If objItem.Name = "RServer3.exe" Then
Running = True
Exit For
End If
Next
If Not Running Then
WshShell.Run """C:\Windows\SysWOW64\rserver30\rserver3.exe"" /start"
End if
Loop

И ещё вопрос: можно ли как-нибудь по-изящнее рестартовать RServer?
Дело в том, что в зависимости от разрядности системы, RServer ставится либо в System32, либо SysWOW64. Хотелось бы, чтобы скрипт учитывал это...

Всего записей: 1090 | Зарегистр. 11-01-2019 | Отправлено: 16:43 05-02-2020
Sergey_AV



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
generator324
Возможно, вам будет вполне достаточно ЭТОГО:

Код:
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "Sc failure RServer3 reset= INFINITE actions= restart/1/restart/1/restart/1", 2, true

Потому, как в случае более серьёзных сбоев, и меры надо принимать более серьёзные.
Ну, а если этого будет всё-таки недостаточно, то у меня на одном древнем и тормозном серваке, работает это:

Код:
strComputer = "."  
strSvcName = "RServer3"  
set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
set objService = objWMI.Get("Win32_Service.Name='" & strSvcName & "'")
If objService.State= "Stopped" Then
    objService.StartService()
End If

Не мониторинг, конечно, но... Можно прописать в планировщик, например запускаться каждый час. Более часто - не вижу смысла: говорю же с серьёзными проблемами борются по-другому.

Всего записей: 2336 | Зарегистр. 05-03-2002 | Отправлено: 16:23 06-02-2020
VidelSamogO



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите создать скрипт для открытия по F4 последовательно в mplayer всех видео, отмеченных в главной панели total commander. Файл-список открываемых файлов total создает во временном  каталоге, и путь к нему прописывает как переменную %L.
P.S. Наверяка понадобится многим.

Всего записей: 765 | Зарегистр. 16-08-2008 | Отправлено: 06:08 13-02-2020 | Исправлено: VidelSamogO, 09:58 13-02-2020
Retro222

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VidelSamogO, скрипт там зачем?
Он и так открывает. Только лучше пользоваться %P%S, чем %L.
И будет спокойно работать без всяких списков.
Единственное, так это есть небольшие ограничения, зависящие от длины путей.
Если полные пути слишком длинные, то более 400 файлов открыть не получится.
А так, более 500 файлов можно открыть за один раз.
Только надо правильно параметры прописать.
Команда - полный путь к плееру.
Параметры.  Сначала идут параметры самому плееру, а в конце %P%S.
Путь %P.
И без всяких временных файлов.
Если будут сложности с параметрами, то я могу показать какие у меня параметры.
И это работает в любых режимах.
Хоть так с панели, хоть из результатов поиска, хоть файлы без каталогов.
 

Всего записей: 260 | Зарегистр. 21-09-2018 | Отправлено: 09:54 13-02-2020 | Исправлено: Retro222, 10:12 13-02-2020
VidelSamogO



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Retro222
Если бы я все это не перепробовал, я бы не писал на форум. За двадцать лет так никто и не нашел решение. Хотя задача для скрипта элементарная. Предложенное вами открывает сто копий процесса, вешает комп, и отправляет его в ребут. Нужен скрипт с ожиданием завершения процесса. То есть с проверкой и постановкой в очередь.

Всего записей: 765 | Зарегистр. 16-08-2008 | Отправлено: 12:35 13-02-2020 | Исправлено: VidelSamogO, 13:30 13-02-2020
Открыть новую тему     Написать ответ в эту тему

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