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

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

Автор: mikolamkn
Дата сообщения: 31.05.2010 17:04
Привет всем, помогите с такой темой:
Нужно автоматизаровать вход на определенную страницу сайта и вытащить с этой страницы значение из таблицы.
Фишка в том, что страница на Java.

Логинюсь так:

url = "адрес"
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
Set omyIE = CreateObject("InternetExplorer.Application")
omyIE.Visible = True
omyIE.Navigate url
omyIE.StatusBar = True
wscript.sleep(1000)
Set objForm = omyIE.Document.forms(0)
objForm.elements(0).value = "логин"
objForm.elements(2).value = "пароль"
objForm.elements(3).click

Логинится и заходит нормально, дальше надо кликнуть по ссылке в выпадающем меню, которая имеет такой вид:
"javascript: DropDownMenuManager_105.itemClicked("1114")"
Каким образом скрестить java и VBS в данном случае?
Автор: magiogre
Дата сообщения: 02.06.2010 14:28
Доброго времени суток, уважаемые знатоки VBS!
Следующая задачка...

В локальной сети имеется куча компьютеров. В связи с миграцией на новый домен, необходимо массово поменять настройки на всех компьютерах следующим образом:

http://img594.imageshack.us/img594/8941/dns1.png

Пункты 1 и 2: Получать параметры автоматически;
Пункт 3: Необходимо вписать три DNS-суффикса;
Пункт 4: Необходимо вписан первый DNS-суффикс из пункта 3.
Пункты 5 и 6: Проставить галочки.

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


PS.
По книге намудрил следующий скрипт, который прописывает суффиксы и DNS-ы.
Как вариант, можно попробовать модифицировать его под данную задачку.


On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
arrDNSSuffixes = Array("dns1.local","dns2.local","dns3.local")
objNetworkSettings.SetDNSSuffixSearchOrder(arrDNSSuffixes)
For Each objNetCard in colNetCards
arrDNSServers = Array("192.168.1.1","192.168.1.2","10.14.11.1","10.14.11.2")
objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next

Заранее спасибо
Автор: Mark_Titov
Дата сообщения: 02.06.2010 18:31
...Приветствую всех знатоков.

Нужна ваша помощь в дописании скрипта одного -
Очень полезный скриптик, он позволяет по имени компа в домене определить залогиненного юзера!
Хорошо выручает в определенных задачах.
Но хотелось бы немного модернизировать его не много.
В этом варианте -


Код: strComputer = "Comp_name"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")

For Each objComputer in colComputer
Wscript.Echo "User Name = " & objComputer.UserName _
& VBNewLine & "Computer Name = " & objComputer.Name
WScript.Echo objComputer.UserName
Next
Автор: ViSiToR
Дата сообщения: 03.06.2010 01:37
Mark_Titov 19:31 02-06-2010
Цитата:
нужно что бы при запуске сразу выскакивало окошко с предложением ввести имя компа


Код: [no]Set objNetwork = CreateObject("WScript.Network")
strComputer = InputBox("Введите пожалуйста имя компьютера:", "Ввод имени компьютера", objNetwork.ComputerName)[/no]
Автор: Mark_Titov
Дата сообщения: 03.06.2010 03:11
ViSiToR - Огромнейшее тебе спасибо!
Работа просто супер!
Автор: galaxyMINSK
Дата сообщения: 03.06.2010 16:43
При первом срабатывании скрипта переименовываем рабочий стол, пусть будет на всякий случай и каждый последующий раз при входе просто удаляется рабочий стол, но ни как не могут придумать как можно установить запрещающей ntfs разрешения на запись текущему пользователю (CU) в домене (CUDomain), что бы не мог ничего сохранить. Помогите если кто знает. Спасибо.

Set FSO = CreateObject("Scripting.FileSystemObject")
set WSHShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")

FolderRS = WSHShell.SpecialFolders(4) ' Путь к пользователя (Рабочий стол)
CU= WshNetwork.UserName ' текущий пользователь
CUDomain= WshNetwork.UserDomain ' домен текущего пользователя

If FSO.FolderExists(FolderRS&".old") = false Then ' проверка если папка рабочий стол.old
    If FSO.FolderExists(FolderRs)= true Then ' проверка если папка рабочий стол
        FSO.MoveFolder FolderRs, FolderRS&".old" ' переименовываем рабочий стол в old
        FSO.CreateFolder FolderRs ' создаем рабочий стол, а то нету общих ярлыков
    End if
else
    FSO.DeleteFolder FolderRs, 1 ' удаляем рабочий стол
    FSO.CreateFolder FolderRs ' и создаем его
End if

P.S. Может сильно не красиво написал ну как смог ))
Автор: YURETS777
Дата сообщения: 04.06.2010 09:46
После перехода на вин7 перестала работать одна очень полезная удобняшка


Код:
Set ObjFSO = CreateObject("UserAccounts.CommonDialog")
ObjFSO.Filter = "Text Documents|*.txt|All Files|*.*"
ObjFSO.FilterIndex = 3
ObjFSO.InitialDir = "."

InitFSO = ObjFSO.ShowOpen
If InitFSO = False Then
Wscript.Echo "Script Error: Please select a file!"
Wscript.Quit
Else
InFile = ObjFSO.FileName
End If
Автор: mozers
Дата сообщения: 04.06.2010 19:24
YURETS777
Мой примерчик работает нормально (win7 32bit).
(Естественно, вначале comdlg32.ocx зарегистрировал в системе и лицензию в реестр добавил).
Автор: YURETS777
Дата сообщения: 04.06.2010 21:48
Ага, спасибо, заработало, а что означают следующие параметры:
.FilterIndex = 2
.Flags = 2621952

?
Автор: mozers
Дата сообщения: 04.06.2010 23:31
YURETS777
FilterIndex - какой по счету из заданных в параметре Filter фильтр будет выбран.
Flags - сумма констант-параметров.
Автор: SomeCherry
Дата сообщения: 09.06.2010 13:29
подскажите, пожалуйста, можно ли как-то с помощью vbscrip проверить равен ли password login'у?
(у пользователя в active directory)
Автор: wolf0425
Дата сообщения: 09.06.2010 21:37
можно ли как-то скриптом посчитать/проверить md5 или sha1 от файла (не ставя дополнительного софта)?
Автор: YURETS777
Дата сообщения: 10.06.2010 10:40
Как через ADO Connection подключиться к текстовому файлу (разделитель - табуляция)
что-то типа такого
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path_txt & ";Extended Properties=DIF;"
Автор: mugil_cephalus
Дата сообщения: 10.06.2010 12:43
wolf0425

Цитата:
можно ли как-то скриптом посчитать/проверить md5 или sha1 от файла (не ставя дополнительного софта)?

http://ru.wikipedia.org/wiki/MD5#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8
например, JavaScript: Реализация MD5 от Пола Джонсона
Автор: wolf0425
Дата сообщения: 10.06.2010 17:55
mugil_cephalus не, собственная реализация хэша на языке скрипта - неинтересна.
Хочется использования какой-то УЖЕ имеющейся в виндах реализации - в .net точно входит, осталось понять как добраться
Автор: vlth
Дата сообщения: 10.06.2010 18:52
YURETS777
Программирование "удобняшек" на VBScript, стр. 82
Автор: YURETS777
Дата сообщения: 10.06.2010 21:12
vlth

Спасибо, получилось, правда первую строку съедает хотя явно указано HDR=No

Код такой:

Код:
'---------------------------------------------------------------
Dim i
Dim cn,rs,astrValue
path_txt = "."
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & path_txt & ";Extended Properties='text;HDR=No'"
cn.Open
Set rs = cn.Execute("SELECT * FROM " & InFile)
i = 0
Do Until rs.EOF
If Not IsNull(rs(0)) Then
objTextFile2.WriteLine rs(0)
End If
rs.MoveNext
i = i + 1
Loop
cn.Close
Set cn = Nothing
Set rs = Nothing
'---------------------------------------------------------------
Автор: vlth
Дата сообщения: 10.06.2010 23:12

Цитата:
Set rs = cn.Execute("SELECT * FROM " & InFile & " ORDER BY SortField ASC") ' <-Ошибка

Если HDR=NO, то нужно задавать не имя поля, а F & Num_of_Field (вместо SortField - F1, F2 и т.д.)
Автор: mugil_cephalus
Дата сообщения: 11.06.2010 06:33
wolf0425

Цитата:
в .net точно входит,

может это - http://msdn.microsoft.com/en-us/library/9eat8fht(vs.71).aspx
или спроси - http://forum.ru-board.com/topic.cgi?forum=33&topic=3706#1
Автор: YURETS777
Дата сообщения: 11.06.2010 09:58
vlth

Та же ошибка


Код:
Set rs = cn.Execute("SELECT * FROM " & InFile & " ORDER BY F1 ASC")
Автор: vlth
Дата сообщения: 11.06.2010 22:52
YURETS777
За кадром остались содержащиеся в переменных path_txt и InFile значения. Может быть в них собака зарыта?


Добавлено:

Цитата:
path_txt = "."

Это неверно: должен быть полный путь к файлам, причём строка должна заканчиваться слэшем.
InFile должна содержать имя файла с расширением (у Вас, похоже, эта переменная вообще значения не получает)
Автор: YURETS777
Дата сообщения: 11.06.2010 23:22
vlth

InFile выбирается диалоговым окном, "." в пути работает
то что заремлено "'Set rs = cn.Execute("SELECT * FROM " & InFile)" прекрасно работает.
Как только я в запрос включаю ORDER вылетает ошибка.
Проблема именно в параметре ORDER
еще прокатывает так:
Set rs = cn.Execute("SELECT * FROM " & InFile & " ORDER BY 'F1' ASC")
но при таком запросе сортирует как-то хаотично те совсем не сортирует, но ошибки не выдает




Код:
Set objTextFile2 = objFSO.CreateTextFile(OutFile, True)
'---------------------------------------------------------------
Dim i
Dim cn,rs,astrValue
path_txt = "."
SortField = 0
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & path_txt & ";Extended Properties='text;HDR=NO;FMT=Delimited'"
cn.Open
Set rs = cn.Execute("SELECT * FROM " & InFile & " ORDER BY F1 ASC")
'Set rs = cn.Execute("SELECT * FROM " & InFile)
i = 0
rs.MoveFirst
Do Until rs.EOF
objTextFile2.WriteLine LCase(rs(0))
rs.MoveNext
i = i + 1
Loop
cn.Close
Set cn = Nothing
Set rs = Nothing
'---------------------------------------------------------------

Автор: kolyas
Дата сообщения: 11.06.2010 23:24
на VBS можно получить информацию из exif ?
Автор: vlth
Дата сообщения: 12.06.2010 11:31
YURETS777

Цитата:
"." в пути работает...

Проверил - да, Вы правы - работает.


И код в целом рабочий.
У меня аналогичный запрос работает как надо - данные сортируются.

Остаётся предположить, что в файле InFile имеется какое-то нарушение структуры полей...
Хотя, изменяя свой файл, я так и не смог добиться появления сообщения об ошибке,
поэтому утверждать этого не могу.

Попробуйте на всякий случай, если это позволяет система, изменить поставщика данных
(В строке подключения - Provider=Microsoft.ACE.OLEDB.12.0)
Автор: mugil_cephalus
Дата сообщения: 12.06.2010 11:56
kolyas

Цитата:
на VBS можно получить информацию из exif ?

не vbs , а консольная прога устроит?
Автор: vlth
Дата сообщения: 12.06.2010 11:56
YURETS777
Кстати, может быть, замена поставщика и поможет: я, наконец, используя уже Microsoft.ACE.OLEDB.12.0, получил Вашу ошибку.
Странно всё это...

С ACE.OLEDB.12.0 причину появления ошибки выяснил: FMT=Delimited он почему-то игнорирует, и в итоге рекордсет содержит одно поле (я пытался отсортировать набор по второму)...

С ACE.OLEDB.12.0... Заменил разделитель с точки с запятой на запятую: так он поля различает...
Автор: vlth
Дата сообщения: 12.06.2010 14:08
Если победить ошибку не удастся, можете выложит здесь фрагмент Вашего файла... посмотрим...
Автор: kolyas
Дата сообщения: 12.06.2010 15:23
mugil_cephalus
если эта прога умеет создавать папки по дате съемки из exif то подойдет =)
Автор: mugil_cephalus
Дата сообщения: 13.06.2010 09:01
kolyas

Цитата:
если эта прога умеет создавать папки по дате съемки из exif то подойдет =)

я ее не юзал - http://www.sno.phy.queensu.ca/~phil/exiftool/
Автор: Dasky
Дата сообщения: 18.06.2010 13:36
добрый...
ребят, подскажите скриптик для следующего:

в папке лежит куча txt и lst файлов...в каждом из них есть записи вида:

название1
название2
название3
и т.д.

как сделать, чтоб все они были просмотрены и если к примеру в файле имя1.txt есть строка название15, создать файл-репорт и в нем написать, что такое выражение встречается в файлах с именами:

file1.txt, file35.lst, file120.txt, file350.lst


хотелось бы, чтоб можно было задать что искать в етих файлах...
спс...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

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


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