Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование "удобняшек" на VBScript

Автор: GRom V
Дата сообщения: 06.07.2009 15:17
Можно ли как нить отправить сообщение например "Привет" на хост? Если можно то как это сделать...
Заранее Спасибо....
Автор: volser
Дата сообщения: 06.07.2009 15:20
GRom V
Воспользуйтесь командой net send.
Автор: V0lt
Дата сообщения: 06.07.2009 17:36
mozers

Цитата:
Добавить в сам скрипт проверку движка, и если он отличается от CScript перезапустить скрипт:

а на бейсике можно?
Автор: mozers
Дата сообщения: 06.07.2009 19:01
V0lt
my_script.vbs :
Код: Set WshShell = CreateObject("WScript.Shell")

If InStr(
WScript.FullName, "cscript.exe") = 0 Then
WshShell.Run "cmd /f:on /t:1b /k title=My Super Script & cscript /nologo """ & WScript.ScriptFullName & """"
WScript.Quit
End If

WScript.Echo "go.. go.. go.."
' далее - весь остальной код...
Автор: V0lt
Дата сообщения: 06.07.2009 20:02
mozers
Большое спасибо!
Автор: Grisha_Tamashi_SAN
Дата сообщения: 07.07.2009 13:02
Так что Environ никто не использует в скриптах?
Автор: volser
Дата сообщения: 07.07.2009 13:15
Grisha_Tamashi_SAN
А что вы хотите получить от функции Environ?
Автор: mihmig
Дата сообщения: 07.07.2009 14:31
Пытаюсь решить следующую задачу:
нужно автоматизировать вход на https-страничку поддержки провайдера и провести там действия. (В частности автоматическая смена пароля на PPPoE в зависимости от времени суток - ограничение для ребенка)
Пишу скрипт:

Код: Dim ie
Set ie = WScript.CreateObject("InternetExplorer.Application")
ie.visible = True
ie.navigate("https://support.atknet.ru:443/")
Do While IE.Busy
WScript.Sleep(100)
Loop
Dim form
set form=ie.document.forms(0)
form.username.value="11111111"
form.password.value="22222222"
form.submit
Автор: mozers
Дата сообщения: 07.07.2009 22:58
mihmig
Незачем грузить рекламу. Открывай сразу https://support.atknet.ru/webuser.phtml?username=1001111&password=111&authform
Подробности - в ПМ.
Автор: Postscriptum
Дата сообщения: 08.07.2009 03:51
Помогите, плиз - никак не могу разобраться - как на VBScript получить список терминальных (RDP) сессий на сервере?
Автор: Grisha_Tamashi_SAN
Дата сообщения: 08.07.2009 11:30
volser
14:15 07-07-2009
Хотел использовать в скрипте см. выше.
Grisha_Tamashi_SAN
12:04 06-07-2009
Цитата:
Хай, Олл.
---hid_exec.vbs
Код:
Option Explicit
On Error Resume Next

Dim WshShell
Set WshShell = WScript.CreateObject ("WScript.Shell")

'Число в скобках равно "количество дисков минус единица"
Dim TrueCryptCommands(2), TrueCryptCommand

TrueCryptCommands(0) = Chr(34) & "C:\Program Files\TrueCrypt\TrueCrypt.exe" & Chr(34) & " /v \Device\Harddisk1\Partition1 /lS /q background" 'Монтируем том
TrueCryptCommands(1) = "net share Music$=s:\music /remark:" & """My Misic""" 'Создаем шары
TrueCryptCommands(2) = "net share dist$=s:\dist /remark:" & """My distribution""" 'Создаем шары
TrueCryptCommands(3) = WshShell.ExpandEnvironMentStrings("%SystemDrive%") & "\del_temp.bat" 'Удаляем временные файлы

For Each TrueCryptCommand in TrueCryptCommands
MSGbOX TrueCryptCommand
WshShell.Run TrueCryptCommand, 0, vbTrue
Next
----hid_exec.vbs
Автор: volser
Дата сообщения: 08.07.2009 11:39
Grisha_Tamashi_SAN
Вот в нете нашел, может поможет.
[more]
В Бэйсике есть одна ОЧЕНЬ полезная, но многими забытая функция Environ! Она возвращает имена и содержание всех переменных среды операционной системы!!! Так, например, чтобы получить директорию Windows, совсем не надо прибегать к API-функции GetWindowsDirectory!!!!!! А получить её можно так:

ABC = Environ ("windir")

И ВСЁ!
Но и это ещё не всё! Также можно получить следующие перменные:

ABC = Environ ("TMP") 'директория временных файлов TEMP
ABC = Environ ("BLASTER") 'координаты звуковой карты
ABC = Environ ("PATH") 'пути, объявленные в autoexec.bat

НО И ЭТО ВСЁ ЕЩЁ НЕ ВСЁ!!!!
Чтобы получить имя и значение перменной, в скобках вместо строки надо поставить номер переменной (или индекс?).

Вставьте следуюшую процедуру в окно Code, запустите проект, кликните на форме увидите список всех переменных и их значений!

Private Sub Form_Click()
'берём перменную и присваеваем ей единицу
m = 1
'запускаем цикл, который увеличивает переменную m каждый
'раз на единицу и подсовывает её функции Environ
Do
'присваеваем перменной EnvString возвращаемую перменную,
'соответсвующую номеру m
EnvString = Environ(m)
'печатаем перменную, соответсвующую номеру m
Print Environ(m)
'перменную m увеличиваем на один
m = m + 1
'если перменная EnvString всё ещё не пустая - крутим дальше...
Loop Until EnvString = ""
End Sub
[/more]
Автор: Grisha_Tamashi_SAN
Дата сообщения: 10.07.2009 10:45
volser
Читал я про эту функцию, но применить не получилось, вот например данный код выдает
Ошибку о "не соответствии типа 'Environ' "


Код: EnvString = Environ("Temp")
MsgBox EnvString
Автор: TiR
Дата сообщения: 11.07.2009 09:27
Есть у меня скрипт на VBS, который вызывает команду ROUTE ADD с параметрами, чтобы добавить в таблицу маршрутизации определенные IP, которые определяются в этом же VBS. Ну не суть. Суть в том что в Windows 7 (в Vista наврное тоже) команда ROUTE требует чтобы ее запустили от имени администратора иначе ничего не добавляет.

Пользователь, который запускает скрипт, естественно в группе администраторов и сам администратор, но W7 этого мало. Нужно чтобы ROUTE было вызвано от Администратора.

Если отключить UAC - то все работает и так. Но хотелось бы при влюченном UAC чтобы вплывало предупреждение и при согласии - выполнялась ROUTE.

W7 не предлагает возможности поставить для ROUTE или wscript - запускать всегда от имени Админа.

Есть идеи?
Автор: mozers
Дата сообщения: 12.07.2009 12:40
Grisha_Tamashi_SAN volser
Цитата:
Environ
Нет такой функции в WSH.
Используйте свойство WshShell.Environment (если метод ExpandEnvironmentStrings чем то не устраивает).
И почитайте справку.

TiR
runas
Автор: TiR
Дата сообщения: 12.07.2009 14:51
mozers
А чем мне поможет RunAs? RunAs позволяет запустить что-то от имени другого пользователя, а мне надо от имени этого же, но с правами администратора и чтобы пароль не спрашивал - только чтобы UAC окно выдал
Автор: GRom V
Дата сообщения: 14.07.2009 06:58
Есть такая весЧ...обьясните ктонить - вместо 1мег закачивается 177кб и сообщение что файл закачан! Можно ли как то это исправить?

Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'подключение
oXMLHTTP.Open "GET", "http://www.script-coding.info/ocs_last.dos.zip", 0
'получение файла
oXMLHTTP.Send
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3 'разрешение на чтение и запись
oADOStream.Type = 1 'тип данных - Binary
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
'сохранение (с перезаписью файла при необходимости)
oADOStream.SaveToFile "D:\Temp\ocs_last.dos.zip", 2
MsgBox "Файл D:\Temp\ocs_last.dos.zip сохранён."
Автор: Grisha_Tamashi_SAN
Дата сообщения: 14.07.2009 14:11
mozers
Спасибо, дружище.
Автор: NOwlar
Дата сообщения: 14.07.2009 14:48
GRom V
Походу недокачанный файлик у тебя в кэше IE засел. Удали оттудова, а так код рабочий.
Автор: Grisha_Tamashi_SAN
Дата сообщения: 14.07.2009 15:36
TiR
IMHO если идти по аналогии с Вистой, то Вам поможет это
ElevateWSHScript.inf - Установить inf из архива, в результате получите


Добавлено:
TiR
Либо (вариант 2) создать ярлык, например wscript.exe c:\_test.vbs, там этот пункт меню будет активным.
Автор: TiR
Дата сообщения: 14.07.2009 20:33
Grisha_Tamashi_SAN
спасибо. попробую
Автор: mozers
Дата сообщения: 15.07.2009 20:13
GRom V NOwlar
Цитата:
в кэше IE засел. Удали оттудова, а так код рабочий.
C диагнозом - согласен. Но код, в котором напрочь отсутсвует проверка и который выдает "сохранён" при любом результате "рабочим" назвать сложно. Обычно проверку вешают на эвент onreadystatechange и когда readyState будет равно 4, а status = 200 запускают сохранение данных.
Автор: NOwlar
Дата сообщения: 15.07.2009 20:22
mozers
Это имеет смысл, если выбран асинхронный метод работы. А тут он вернётся из send(), когда запрос уже будет завершён. Но, статус, согласен, перед записью проверить будет не лишним.

Добавлено:
Кстати, файл по коду сохраняется всегда, так что последний мессэдж "Сохранён..." вполне оправдан. Правда, что будет внутри файла - вещь неопределённая
Автор: mozers
Дата сообщения: 16.07.2009 16:49
NOwlar
Цитата:
Это имеет смысл, если выбран асинхронный метод работы. А тут он вернётся из send(), когда запрос уже будет завершён
Логично, согласен.
Кстати, чтобы из кеша не тянул можно добавить к запросу заголовок
Код: req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
Автор: x52deus
Дата сообщения: 20.07.2009 13:36
Каким образом можно получить версию файла, используя VBS?

Автор: violant
Дата сообщения: 20.07.2009 15:04
Подскажите как получить время с домен контроллера Windows 2003 из Vbscript?
Автор: igor_andreev
Дата сообщения: 20.07.2009 15:08

Цитата:
Каким образом можно получить версию файла, используя VBS?



Код:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo objFSO.GetFileVersion("c:\windows\system32\shell32.dll")
Автор: Serhi84
Дата сообщения: 22.07.2009 06:54

Код: set fso = createobject("scripting.filesystemobject")
set sha = createobject("shell.application")
set dir = sha.namespace("C:\Backup")
set arr = dir.items
arr.filter 192, "*.txt"
for i = 0 to arr.count - 1
if i = 0 then
set fnewest = fso.getfile(arr.item(i).path)
else
if fnewest.datecreated < fso.getfile(arr.item(i).path).datecreated then
set fnewest = fso.getfile(arr.item(i).path)
end if
end if
next
Автор: lorents
Дата сообщения: 24.07.2009 00:23
Помогите пожалуйста, как создать *.txt файл с кодировкой UTF-16LE?
Автор: Victor_Dobrov
Дата сообщения: 24.07.2009 03:01
ToAlls

Использую в скриптах (например для Total Commander) всплывающие хинты в качестве сообщений юзеру о выполненной работе.
Но есть неудобство - позиция хинта привязана к стрелке мыши и подсказки выходят за края экрана, если мышь не там, где надо.
Есть ли возможность показывать хинты по другому или как-то устанавливать позицию вывода для Internet.HHCtrl.TextPopup?

Set WshShell = CreateObject("WScript.Shell")
Hint = "Заголовок группы"+ VbCrLf +" Сообщения о выполненных действиях..."
CreateObject("Internet.HHCtrl").TextPopup VbCrLf & Hint & VbCrLf, "Arial,10",12,1,1,1
WshShell.Run "share", 0, 1 : WScript.Sleep 10000 'время показа сообщения

P.S. знаю, что курсор можно поставить, используя NirCmd, но не хотелось бы тащить вместе со скриптом ещё и программу...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

Предыдущая тема: Работа в Delphi c CryptoApi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.