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

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

   

Black_Lung



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это можно сделать в 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

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 17:43 13-04-2011
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток.  
 
Задача.
 
Отслеживание процесса, если процесс закрылся то запустить, и чтобы после этого запуска продолжалось отслеживание
Заранее спасибо

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 12:00 21-04-2011
quakerock



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

Код:
 
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  
 

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 13:23 21-04-2011
Sempai1976

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день! Хотелось бы автоматизировать вход на 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

Всего записей: 6 | Зарегистр. 08-12-2005 | Отправлено: 07:28 25-04-2011 | Исправлено: Sempai1976, 05:53 26-04-2011
ComradG



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

Цитата:
как ему скормить юзера и пароль?
Очевидно стоит смотреть в сторону SendKeys:
Код:
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys("PASSWORD")

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 19:24 25-04-2011 | Исправлено: ComradG, 19:26 25-04-2011
Sempai1976

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, SendKeys  работает, единственное окно появляется не активным, приходится тыкать в него, после чего происходит заполнение...
Не подскажите как при открытии сделать окно IE активным, желательно в развернутом виде!

Всего записей: 6 | Зарегистр. 08-12-2005 | Отправлено: 22:14 25-04-2011
smirnvlad

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 
 

user и pass заменить на названия полей ввода имени и пароля
login название кнопки которую надо нажать

Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 23:19 25-04-2011 | Исправлено: smirnvlad, 08:25 26-04-2011
Sempai1976

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

Цитата:
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}"

Всего записей: 6 | Зарегистр. 08-12-2005 | Отправлено: 00:20 26-04-2011 | Исправлено: Sempai1976, 05:54 26-04-2011
Sempai1976

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

Всего записей: 6 | Зарегистр. 08-12-2005 | Отправлено: 01:42 04-05-2011
quakerock



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 14:46 05-05-2011 | Исправлено: quakerock, 15:20 05-05-2011
AndVGri

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

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


Код:
 
Option Explicit
Dim fso, pFolder
Set fso = CreateObject("Scripting.FileSystemObject")
set pFolder = fso.GetFolder("c:\QQQ")
pFolder.Name = "NewQQQ"
 


Цитата:
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")  

можно заменить, для уменьшения перебора на

Код:
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process Where Name = 'iexplorer.exe'")  


Цитата:
чтобы сделать ее уникальной

Почитай про Scripting.Dictionary - можно занести в него список имён всех папок и проверять потом нет ли в таком списке желаемого имени для переименовываемой папки

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 15:38 05-05-2011 | Исправлено: AndVGri, 15:47 05-05-2011
quakerock



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndVGri
 
Спасибо за бесценную информацию.

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 16:22 05-05-2011 | Исправлено: quakerock, 16:23 05-05-2011
Sempai1976

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Блин, отказанно в доступе, не дает переименовать, и удалить исходную папку. Придется копировать все содержимое, а в источнике все подтирать....

Всего записей: 6 | Зарегистр. 08-12-2005 | Отправлено: 09:26 07-05-2011
quakerock



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня тоже такое было=) Надо выйти из папки и усе будет нормалек.

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 08:26 10-05-2011
stawros

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!) Товарищи помогите написать скрипт  VBS.  
Суть проблемы такова, что есть компьютер на рабочем столе которого, хранятся N-ое количество txt файлов с отчетами. Как средствами VBS их все можно  отправить на почту?

Всего записей: 3 | Зарегистр. 15-05-2011 | Отправлено: 16:38 15-05-2011
ForeverRED66

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что бы из 1С 7.7 выгружались данные по:  
Отчет-реестр документов-сформировать  
Справочник-фирмы-отчет по фирмам-сформировать
Сохранить в  html ну , просто потом эти выгруженные файлы будут подгружаться на сайте.
 
Проще говоря что бы запустилась1с выбрались эти пункты меню какие написал и сохранились результаты и все.

Всего записей: 58 | Зарегистр. 04-03-2007 | Отправлено: 13:11 17-05-2011 | Исправлено: ForeverRED66, 16:04 17-05-2011
effo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Как проверить нажатость клавиши?
Например, если нажата CapsLock, то вывести сообщение "не рычи" и отжать клавишу.
И закинуть данный скрипт в задания )

Всего записей: 16 | Зарегистр. 02-02-2011 | Отправлено: 03:17 19-05-2011
ComradG



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

Цитата:
Как проверить нажатость клавиши?
WinAPI - вот как. что-то не припомню в vbs'ках такого, чтобы можно было проканать то, какая пимпа удерживается (или была нажата) в данный момент. а понажимать пимпы с помощью скриптов можно так, как писалось неоднократно выше - SendKeys:
Код:
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.SendKeys("{CAPSLOCK}")
если мне не изменяет память, то SendKeys возвращает булевы значения, т.е. теоретически должно сработать:
Код:
...
boolValue = WSHShell.SendKeys("{CAPSLOCK}")
 
If boolValue = True Then
  WScript.Echo "Не рычи!"
End If

stawros
получить список объектов рабочего стола можно примерно так:
Код:
Set objShell = CreateObject("Shell.Application")
'будем считать, что общий десктоп
Set objPath = objShell.Namespace(&H19&).Self.Path
далее через For Each по заданной маске (*.txt) пересылаем письма примерно таким образом, как это показано здесь

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:56 19-05-2011 | Исправлено: ComradG, 21:59 19-05-2011
stawros

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 

 
1. Как отправить сразу несколько текстовых файлов?
2. Что делать если имеется несколько компьютеров..и у них разные пути к рабочему столу?

Всего записей: 3 | Зарегистр. 15-05-2011 | Отправлено: 16:52 20-05-2011
ComradG



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

Цитата:
Есть скрипт для отправки  сообщения с одним вложенным файлом!
хм, нужно готовое решение или все же вы, комрад, хотите разобраться самостоятельно, чтобы потом было проще? если второе, то я уже вроде понятно написал, что для отправки писем в "пакетном" режиме используется конструкция
Код:
For Each
...
Next
по сути это - цикл, который перебирает последовательно все (или указанные) объекты (в данном случае - это txt файлы) и отсылает их куда нужно. а чтобы не заморачиваться и не прописывать полный путь до десктопа, используется метод Namespace. вот список некоторых его значений:
Код:
 #ALTSTARTUP         = 0x1d
 #APPDATA            = 0x1a
 #BITBUCKET          = 0x0a
 #COMMONALTSTARTUP   = 0x1e
 #COMMONAPPDATA      = 0x23
 #COMMONDESKTOPDIR   = 0x19
 #COMMONFAVORITES    = 0x1f
 #COMMONPROGRAMS     = 0x17
 #COMMONSTARTMENU    = 0x16
 #COMMONSTARTUP      = 0x18
 #CONTROLS           = 0x03
 #COOKIES            = 0x21
 #DESKTOP            = 0x00
 #DESKTOPDIRECTORY   = 0x10
 #DRIVES             = 0x11
 #FAVORITES          = 0x06
 #FONTS              = 0x14
 #HISTORY            = 0x22
 #INTERNETCACHE      = 0x20
 #LOCALAPPDATA       = 0x1c
 #MYPICTURES         = 0x27
 #NETHOOD            = 0x13
 #NETWORK            = 0x12
 #PERSONAL           = 0x05
 #PRINTERS           = 0x04
 #PRINTHOOD          = 0x1b
 #PROFILE            = 0x28
 #PROGRAMFILES       = 0x26
 #PROGRAMFILESx86    = 0x30
 #PROGRAMS           = 0x02
 #RECENT             = 0x08
 #SENDTO             = 0x09
 #STARTMENU          = 0x0b
 #STARTUP            = 0x07
 #SYSTEM             = 0x25
 #SYSTEMx86          = 0x29
 #TEMPLATES          = 0x15
 #WINDOWS            = 0x24
описание самого метода можно посмотреть на msdn

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 18:54 20-05-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 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