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

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

Автор: AndVGri
Дата сообщения: 07.04.2011 15:13
phandorin
shellExec.Terminate
Автор: phandorin
Дата сообщения: 07.04.2011 15:31
Спасибо! Пошел путем Run

WshShell.Run ftp.exe -s:ftp.txt ,0 , true
Автор: cRYSMAS
Дата сообщения: 11.04.2011 15:47
strComputer ="192.168.0.14"
strCommand = "wscript.exe c:\off-4.vbs"
Set locator = CreateObject("wbemscripting.swbemlocator")
set objwmiservice = locator.connectserver(strComputer,"\\windows\root\cimv2","","")
Set objScheduledJob = objWMIService.Get("Win32_ScheduledJob")
tyear = mid(now(),7,4)
for i = 1 to 31
datex = i & ".03." & tyear & " 01:00:00"
datey = i & ".10." & tyear & " 01:00:00"
if weekday (datex,2)="7" then martdate=datex
if weekday (datey,2)="7" then octoberdate=datey
next
CurrTimePlusOneMin = Replace(Left(Right(dateadd ("n",1,Now()), 8), 5), ":", "")
if now() > martdate and now() < octoberdate then
RunTime = "********" & CurrTimePlusOneMin & "00.000000+240"
else
RunTime = "********" & CurrTimePlusOneMin & "00.000000+180"
end if
Res = objScheduledJob.Create(strCommand, RunTime, False, 2^(Weekday(Now(), 2)-1), 0, True, intJobID)
Вот такой скриптик запускает заданый скрипт(off-4.vbs) на локальной машине, при запуске скрипта ругаеться на: сервер RPC недоступен, службы RPC Dcom запущены в авто режиме. Тоже самое делаю но клиен изменяю на айпи сервера выдает отказ в доступе
В чем может быть причина? на клинтах маш. ОС Вин ХП проф. СП1
Если ли другая альтернатива запуска удаленного скрипта по локальной сети
Автор: LacettiRED
Дата сообщения: 13.04.2011 16:23
Автоматизация мониторинга; Подскажите, как автоматизировать мониторинг инфы в инете?
Уточняю вопрос: на сайте Ген консульства Финляндии для получения визы надо сначала записаться на приём; для этого надо зайти сюда https://www.visaservices.co.in/Finland-visa-application/AppScheduling/AppScheduling.aspx?P=PcqAqEGdf4OMbJ1CZgKHSUN3Je9Uumiy6NGhvmhMab7phBf7hKlWsBQNrNze6jyj+86S93yLA0yGdiqvwB5yZg%3d%3d
там выбрать регион (Питер), в следующем окне, выбрать количество заявителей и вид визы и "отправить"; обычно в ответ видим сообщение об отсутствии свободных мест для записи; и потом всё повторяется снова и так в течение дня периодически надо мониторить : а не появилась ли вакансия? Можно ли автоматизировать эту рутину?
1) полностью : т.е. ват файл сам периодически выполняет всю эту последовательность действий и в случае положительного ответа открывал бы окно для записи на приём
2) частично , т.е. кликнул по ярлыку и вся эта последовательность команд тупо выполнилась и сам смотришь на результат.
Т.е. максимально автоматизировать мониторинг вакансий на запись в Ген консульство на визу. Буду очень благодарен за ответ и любые отзывы на этот вопрос! )
Автор: Black_Lung
Дата сообщения: 13.04.2011 16:43
это можно сделать в vbs

Цитата:

url="http://..."
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlHTTP.Open "GET",url, false
xmlHTTP.Send
if (xmlhttp.Status<>200) then
...
текст на странице будет скачан в xmlhttp.ResponseText в котором можно поиском найти нужные слова.
...
end if



только не знаю будет ли это работать с HTTPS
Автор: Scaramanga
Дата сообщения: 21.04.2011 11:00
Доброго времени суток.

Задача.

Отслеживание процесса, если процесс закрылся то запустить, и чтобы после этого запуска продолжалось отслеживание
Заранее спасибо
Автор: quakerock
Дата сообщения: 21.04.2011 12:23
Получилось так...


Код:
do
Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
myProc = False
For Each Proc In myProcEnum
If Proc.Name = "qip.exe" Then
myProc = True
End If
Next
If Not myProc Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\Progra~1\QIP\qip.exe", 1
End If
WScript.Sleep 15000
Loop
Автор: Sempai1976
Дата сообщения: 25.04.2011 06:28
Добрый день! Хотелось бы автоматизировать вход на IP камеру, надоело постоянно прописывать ручками юзера и пароль.
С началом кода пролем не возникло, теперь как ему скормить юзера и пароль.....

Код: Dim ie
Set ie = WScript.CreateObject("InternetExplorer.Application")
ie.visible = True
ie.navigate("http://myftp.org")
Do While IE.Busy
WScript.Sleep(500)
Loop
Автор: ComradG
Дата сообщения: 25.04.2011 18:24
Sempai1976

Цитата:
как ему скормить юзера и пароль?
Очевидно стоит смотреть в сторону SendKeys:
Код: Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys("PASSWORD")
Автор: Sempai1976
Дата сообщения: 25.04.2011 21:14
Спасибо, SendKeys работает, единственное окно появляется не активным, приходится тыкать в него, после чего происходит заполнение...
Не подскажите как при открытии сделать окно IE активным, желательно в развернутом виде!
Автор: smirnvlad
Дата сообщения: 25.04.2011 22:19
Sempai1976

Код:
Dim ie
Set ie = WScript.CreateObject("InternetExplorer.Application")
ie.visible = True
ie.navigate("myftp.org")
Do While IE.Busy
WScript.Sleep(500)
Loop

ie.Document.All.user.Value = "username"
ie.Document.All.pass.Value = "12345678"
ie.Document.All.login.Click

Автор: Sempai1976
Дата сообщения: 25.04.2011 23:20

Цитата:
ie.Document.All.user.Value = "username"
ie.Document.All.pass.Value = "12345678"
ie.Document.All.login.Click


К сожалению выскакивает ошибка, о не поддержке данного метода, поля ввода конечно же менял на свои.

Думаю все таки нужно копать в сторону SendKeys, так как при активации окна мышью, поля прекрасно заполняются!

Добавлено:
Всем спасибо, в итоге сделал вот так:


Код: Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "iexplore.exe http://myftp.org" , 3

WScript.Sleep(20000)

WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "{tab}"
WshShell.SendKeys "USER{tab}"
WshShell.SendKeys "PASSWORD{tab}"
WshShell.SendKeys "{enter}"
Автор: Sempai1976
Дата сообщения: 04.05.2011 00:42
Снова прошу у знатоков помощи в написании скрипта.

Задача, при запуске проверять размер фолдера (IP Cam), если размер больше заданной переменной (скажем 100гб), закрывать указанную программу (Internet Explorer), переименовывать этот фолдер (доавлять к названию порядковый номер, начиная с 1), было IP Cam стало IP Cam 1, если папка с таким номером уже имеется, то присваивать следующий. По окончании сего действия создавать пустую папку с первоначальным названием IP Cam, и перезапустить Internet Explorer!

Прошу прощения если написал слишком ветиевато.
Автор: quakerock
Дата сообщения: 05.05.2011 13:46
1. Не знаю, как переименовать папку не перемещая ее, поэтому сделал с перемещением.
2. Не знаю, как к папке добавить 1, 2, 3, чтобы сделать ее уникальной, поэтому при меремещении к имени папки добавлятся системная дата, системное время.
Знающие люди подскажу в остальном, если так не прокатит=)


Код: Dim fso, folder, SourceF, DestF, mm, hh, ss
'=======================================================
SourceF= "D:\...\IP Cam" 'Путь до проверяемой папки
DestF= "D:\...\" 'Путь, куда будет перемещаться папка
'=======================================================
d= day(date)
m= month(date)
y= year(date)
sd = y & "." & m & "." & d 'Формат даты
'=======================================================
mm= minute(time)
hh= hour(time)
ss= second(time)
st= hh & "'" & mm & "'" & ss 'Формат фремени
'=======================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
set folder = fso.Getfolder("D:\...\IP Cam")

if folder.size > 1073741824 then '1073741824 байт = 1Гбайт
Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
For Each Proc In myProcEnum
If Proc.Name = "iexplore.exe" Then
Proc.Terminate
End If
next
'=======================================================
if folder.size > 1073741824 then
Rname= Right(SourceF, 0)
NewName= fso.GetBaseName(SourceF) & " " & sd & "_" & st
fso.MoveFolder SourceF, DestF & NewName
fso.CreateFolder "" & DestF & "IP Cam" 'Перемещаем и переименовываем папку (IP Cam Формат даты_Формат времени)
else
end if
end if
wsh.sleep 5000
'=======================================================
Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
For Each Proc In myProcEnum
If Proc.Name = "iexplore.exe" Then
myProc = True
End If
Next
If Not myProc Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "iexplore"
End If
Автор: AndVGri
Дата сообщения: 05.05.2011 14:38
quakerock

Цитата:
1. Не знаю, как переименовать папку


Код:
Option Explicit
Dim fso, pFolder
Set fso = CreateObject("Scripting.FileSystemObject")
set pFolder = fso.GetFolder("c:\QQQ")
pFolder.Name = "NewQQQ"
Автор: quakerock
Дата сообщения: 05.05.2011 15:22
AndVGri

Спасибо за бесценную информацию.
Автор: Sempai1976
Дата сообщения: 07.05.2011 08:26
Блин, отказанно в доступе, не дает переименовать, и удалить исходную папку. Придется копировать все содержимое, а в источнике все подтирать....
Автор: quakerock
Дата сообщения: 10.05.2011 07:26
У меня тоже такое было=) Надо выйти из папки и усе будет нормалек.
Автор: stawros
Дата сообщения: 15.05.2011 15:38
Добрый день!) Товарищи помогите написать скрипт VBS.
Суть проблемы такова, что есть компьютер на рабочем столе которого, хранятся N-ое количество txt файлов с отчетами. Как средствами VBS их все можно отправить на почту?
Автор: ForeverRED66
Дата сообщения: 17.05.2011 12:11
Что бы из 1С 7.7 выгружались данные по:
Отчет-реестр документов-сформировать
Справочник-фирмы-отчет по фирмам-сформировать
Сохранить в html ну , просто потом эти выгруженные файлы будут подгружаться на сайте.

Проще говоря что бы запустилась1с выбрались эти пункты меню какие написал и сохранились результаты и все.
Автор: effo
Дата сообщения: 19.05.2011 02:17
Здравствуйте.
Как проверить нажатость клавиши?
Например, если нажата CapsLock, то вывести сообщение "не рычи" и отжать клавишу.
И закинуть данный скрипт в задания )
Автор: ComradG
Дата сообщения: 19.05.2011 20:56
effo

Цитата:
Как проверить нажатость клавиши?
WinAPI - вот как. что-то не припомню в vbs'ках такого, чтобы можно было проканать то, какая пимпа удерживается (или была нажата) в данный момент. а понажимать пимпы с помощью скриптов можно так, как писалось неоднократно выше - SendKeys:
Код: Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.SendKeys("{CAPSLOCK}")
Автор: stawros
Дата сообщения: 20.05.2011 15:52
ComradG

К сожалению не очень опытен c VBS.

Есть скрипт для отправки сообщения с одним вложенным файлом!


Код:
Set S = CreateObject("Wscript.Shell")
set FSO=createobject("scripting.filesystemobject")
Call SendPost("smtp.mail.ru","login1@mail.ru","login2@mail.ru","Отчет","Последний месяц")
Function SendPost(strSMTP_Server,strTo,strFrom,strSubject,strBody)
Set iMsg=CreateObject("CDO.Message")
Set iConf=CreateObject("CDO.Configuration")
Set Flds=iConf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="login"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="password"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.mail.ru"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25
Flds.Update
iMsg.Configuration=iConf
iMsg.To=strTo
iMsg.From=strFrom
iMsg.Subject=strSubject
iMsg.TextBody=strBody
iMsg.AddAttachment "C:\Users\%userprofile%\Desktop\otchet_15_05_2011.txt"
iMsg.Send
End Function
Set iMsg=Nothing
Set iConf=Nothing
Set Flds=Nothing
Автор: ComradG
Дата сообщения: 20.05.2011 17:54
stawros

Цитата:
Есть скрипт для отправки сообщения с одним вложенным файлом!
хм, нужно готовое решение или все же вы, комрад, хотите разобраться самостоятельно, чтобы потом было проще? если второе, то я уже вроде понятно написал, что для отправки писем в "пакетном" режиме используется конструкция
Код: For Each
...
Next
Автор: stawros
Дата сообщения: 20.05.2011 18:14
А можно набросать черновой вариант скрипта? А то мои познания в VBS не так хороши(
Автор: ComradG
Дата сообщения: 21.05.2011 21:17
черновой? да как-то так:
Код: Const COMMON_DESKTOP = &H19&
Const TEXT_FILE = "Текстовый документ"

Set objShell = CreateObject("Shell.Application")
Set objItems = objShell.Namespace(COMMON_DESKTOP).Items
Set objEmail = CreateObject("CDO.Message")

For Each objItem In objItems
If objItem.Type = TEXT_FILE Then
objEmail.From = "my_soap@mail.ru"
objEmail.To = "soap@mail.ru"
objEmail.Subject = "Logs"
objEmail.Textbody = "Look attacment, please."
objEmail.AddAttachment objItem.Path

objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.ru"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fileds.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fileds.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "login"
objEmail.Configuration.Fileds.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
objEmail.Configuration.Fileds.Update

objEmail.Send
End If
Next

Set objEmail = Nothing
Set objItems = Nothing
Set objShell = Nothing
Автор: fire4x
Дата сообщения: 02.06.2011 18:12
Что прописать в vbs-скрипте для самоудаления?
Автор: kazavo4ka
Дата сообщения: 02.06.2011 18:31
fire4x
Set oFso = CreateObject("Scripting.FileSystemObject")
oFso.DeleteFile "C:\myscript.vbs", True
Автор: OSADJAN
Дата сообщения: 02.06.2011 20:42

Цитата:
Что прописать в vbs-скрипте для самоудаления?

Вирусняк пишешь?

Код:
Set mFSO = CreateObject("Scripting.FileSystemObject")
Call mFSO.DeleteFile(WScript.ScriptFullName, True)
'Дописать в конце нужного скрипта.
Автор: fire4x
Дата сообщения: 02.06.2011 20:50

Цитата:
fire4x
Set oFso = CreateObject("Scripting.FileSystemObject")
oFso.DeleteFile "C:\myscript.vbs", True


Спасибо.
А скрипт без указания в нем своего названия возможно создать?

OSADJAN, спасибо за варианты.


Цитата:
Вирусняк пишешь?

Я VBS не знаю...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

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


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