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

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

Автор: Rush
Дата сообщения: 11.04.2009 12:03
TYMAH3003

Цитата:
'Ругает "не найден путь строка 19 символ 1"

Ну значит неправильно...
Жди, кто-нибудь поможет, я же говорил, что это не мой профиль...
Автор: TYMAH3003
Дата сообщения: 11.04.2009 12:34
Rush ясн,, ждёмс ViSiToR'a вродь это его профиль)))
Автор: batniki
Дата сообщения: 13.04.2009 19:33
Помогите, как сделать, чтобы отслеживались несколько значений strHive, strKeyPath, strValueName
и вместо Wscript.Echo Now записывалось в файл с новой строки, вдобавок запоминало измененный параметр и выводило диалог, согласившись на который можно было вернуть измененный параметр:


Код: ' Скрипт отслеживает изменение значения указанного ключа в реестре

strComputer = "."
strHive = "HKEY_LOCAL_MACHINE"
strKeyPath = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\"
strValueName = "Userinit"

'====================================================================
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\DEFAULT")
Set objEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM RegistryValueChangeEvent WHERE " & _
"Hive = '" & strHive & "'" & _
" AND KeyPath = '" & strKeyPath & "'" & _
" AND ValueName = '" & strValueName & "'")

Do While(True)
Set objReceivedEvent = objEvents.NextEvent
Wscript.Echo Now & " изменён ключ: " & strHive & "\" & Replace(strKeyPath, "\\", "\") & strValueName
Loop
Автор: mosKaIop
Дата сообщения: 13.04.2009 23:29
ребят,а как написать скрипт,который будет обновлять изображение при наведении курсора...и другой,который меняет изображение через интервал времени?...теоретически я могу это сделать,но с vbs не знаком...

Добавлено:
я бы сделал это на голом хтмл,или на js, но задание именно на vbs...буду очень благодарен)
Автор: OnlyForYou
Дата сообщения: 05.05.2009 09:12
Подскажите пожалуйста, как можно через VBS подключить Сетевой принтер.
Сеть не имеет домена, принтер расшарен на компе.
Пробывал вот так.

Код:
Set WshNetwork = CreateObject("WScript.Network")

WshNetwork.AddWindowsPrinterConnection "\\192.168.0.204\HP LaserJet 1020"
WshNetwork.AddWindowsPrinterConnection "\\192.168.0.205\HP Color LaserJet CP1215"
WshNetwork.SetDefaultPrinter "\\192.168.0.204\HP LaserJet 1020"

MsgBox ("Принтеры подключены")
Автор: Rush
Дата сообщения: 05.05.2009 13:40
OnlyForYou
Сразу оговорюсь - с сетью не работаю, поэтому только эмпирическим путем. С твоей стороны.
Есть метод AddPrinterConnection. В нем можно вводить логин и пароль.
AddPrinterConnection(<LocalName>,<RemoteName>,<UpdateProfile>, <User>,<Password>)

<LocalName> - локальное имя принтера.
<RemoteName> - сетевое имя принтера.
<UpdateProfile> - необязательный. Если указано True, подключение будет сохранено в профиле пользователя.
<User> - необязательный. Имя пользователя,.
<Password> - необязательный. Пароль пользователя.

Попробуй что-нибудь типа такого:
WshNetwork.AddPrinterConnection "LPT1", "\\192.168.0.204\HP LaserJet 1020", true, "login", "password"
Автор: frolo
Дата сообщения: 07.05.2009 11:59
Добрый день.

Есть такой скриптик стягивающий файл по http


Код:
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Const adSaveCreateNotExist = 1

Dim objArgument
Set objArgument = Wscript.Arguments

URL=objArgument(0) ' http://adress.com/base.mdb
Dest=objArgument(1) ' c:\base.mdb

Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", URL, False, "Login", "Pass"
xml.Send

set oStream = createobject("Adodb.Stream")
oStream.type = adTypeBinary

oStream.open
oStream.write xml.responseBody
oStream.savetofile Dest, adSaveCreateNotExist
oStream.close
set oStream = nothing
Set xml = Nothing
Автор: ViSiToR
Дата сообщения: 07.05.2009 13:19
frolo 12:59 07-05-2009
Цитата:
чтобы дата создаваемого файла была такой же как и у исходного

Тут нужно получить заголовок «Last-Modified»:


Код: LastModified = xml.GetResponseHeader("Last-Modified")
Автор: ANTRAMABANAKAN
Дата сообщения: 07.05.2009 14:35
Привет.

я исползую етот скрипт для копирования фаилов из сети.
var WshShell = WScript.CreateObject("WScript.Shell") ;
fso = WScript.CreateObject ("Scripting.FileSystemObject") ;
fso.CopyFile ("\\\\serv\\new_ver\\*.exe", "D:\\prog\\")
WshShell.Popup(" prog - message",5,"prog",64)

Есть ли возможность проверять дату файла перед копированием....
Автор: alur2005
Дата сообщения: 07.05.2009 14:52
подскажите каким способом можно экспортировать значения реестра в reg файл

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"ProductId"
Автор: ViSiToR
Дата сообщения: 07.05.2009 15:45
ANTRAMABANAKAN 15:35 07-05-2009
Цитата:
Есть ли возможность проверять дату файла перед копированием



Код: sFile = "File.exe"

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile(sFile)

sInfo = _
    "Информация для файла <" & sFile & ">" & vbCRLF & vbCRLF & _
    "Файл создан:        " & oFile.DateCreated & vbCRLF & _
    "Файл был изменен:    " & oFile.DateLastModified & vbCRLF & _
    "Файл был открыт:        " & oFile.DateLastAccessed & vbCRLF


MsgBox sInfo, 64, "File Info"
Автор: alur2005
Дата сообщения: 07.05.2009 16:34
ViSiToR

чего то скрипт не пашет ошибку дает RegKeyExport недопустимое число аргументов
Автор: Taran2ul
Дата сообщения: 07.05.2009 16:48
Приветствую вас форумчане.
Подскажите как реализовать скрипт.
Есть папка на 2 компах
С:\Program Files\папка\
и
D:\Program Files\папка\
Нужно содержимое этой папок с подпапками скопировать в папку со скриптом.
И чтобы скрипт имел относительный путь.
Пробовал %ProgramFiles% но результата не получил.
Автор: Rush
Дата сообщения: 07.05.2009 16:52
alur2005

Цитата:
чего то скрипт не пашет ошибку дает RegKeyExport недопустимое число аргументов

Перепиши первую строчку

Код: RegKeyExport "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductId", ".\ProductId.reg"
Автор: alur2005
Дата сообщения: 07.05.2009 16:57
Rush
ViSiToR

спасибо выручили

а если значение REG_BINARY нужно из реестра считать , что в скрипте нужно подправить ???
Автор: Rush
Дата сообщения: 07.05.2009 17:13
Taran2ul

Код: set wshshell = createobject("wscript.shell")
progfiles = wshshell.expandenvironmentstrings("%ProgramFiles%")
set fso = createobject("scripting.filesystemobject")
fso.copyfolder progfiles & "\папка", fso.getfile(wscript.scriptfullname).parentfolder
Автор: alur2005
Дата сообщения: 07.05.2009 19:34
удалил
Автор: Taran2ul
Дата сообщения: 08.05.2009 00:22
Rush
Спасибо. Работает.
А еще такой вопрос как в этом коде указать целевую папку (на будущее)
Автор: Rush
Дата сообщения: 08.05.2009 01:50
Taran2ul

Цитата:
А еще такой вопрос как в этом коде указать целевую папку (на будущее)


Код: fso.copyfolder "исходная папка", "целевая папка"
Автор: Rush
Дата сообщения: 08.05.2009 04:47
alur2005

Цитата:
а если значение REG_BINARY нужно из реестра считать , что в скрипте нужно подправить ???

Ну тут довольно значительно надо доделывать.
Синим выделено новое, красным исправленное.
В принципе, можно сделать универсальный по типам данных скрипт. Только не очень охота шевелиться.

Код: RegKeyExport "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "DigitalProductId", ".\ProductId.reg"

Function RegKeyExport(sRegPath, sRegKey, sRegFile)
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

sRegKeyValue = WshShell.RegRead(sRegPath & "\" & sRegKey)

sRegContent = _
"Windows Registry Editor Version 5.00" & vbCRLF & vbCRLF & _
"[" & sRegPath & "]" & vbCRLF & _
"""" & sRegKey & """=" & BinValueF(sRegKeyValue)

If Not oFSO.FileExists(sRegFile) Then
Set oTextStream = oFSO.CreateTextFile(sRegFile)
Else
Set oFile = oFSO.GetFile(sRegFile)
Set oTextStream = oFile.OpenAsTextStream(2)
End If

oTextStream.Write(sRegContent)
oTextStream.Close
End Function

function BinValueF(binvalue)
ubvalue = ubound(binvalue)
for i = lbound(binvalue) to ubvalue
binval = hex(binvalue(i))
if len(binval) < 2 then binval = "0" & binval
line = (i+1) mod 20
if i <> ubvalue then
if line = 0 then
strval = strval & "\" & vbcrlf & space(2) & binval & ","
else
strval = strval & binval & ","
end if
else
strval = strval & binval
end if
next
BinValueF = "hex:" & strval
end function
Автор: alur2005
Дата сообщения: 08.05.2009 05:42
Rush

спасибо
Автор: AntoshAReal
Дата сообщения: 08.05.2009 12:32
Здравствуйте!

Подскажите, пожалуйста, имеется скрипт на VBS, вроде работает как надо, но надо реализовать пару функций:

1.
const Nname = "sInsp & "_" & sInspTo & "_BDK_" & sDate & "_" & sTime & "_" & sEtap & "_" & sVer & "_" & sINN"

как можно это осуществить, т.к. пишет что ошибка в символах.

2.
Set oRequest = oDataBase.ExecuteWithResults("select dbo.GetSafeVer()")
sVer = Trim(oRequest.GetColumnString(1, 1))

из SQL таблицы берутся значения вида: 2.2.4.600
необходимо что бы бралось только 600
Автор: ViSiToR
Дата сообщения: 08.05.2009 14:32
AntoshAReal
1.


Код: Const Nname = sInsp & "_" & sInspTo & "_BDK_" & sDate & "_" & sTime & "_" & sEtap & "_" & sVer & "_" & sINN
Автор: AntoshAReal
Дата сообщения: 08.05.2009 15:30
1.
А без кавычек скрипт возникает на последний символ коца строки.
Похоже выразился неправильно

Вот в каком контексте это используется:

Код:
if sRemote then
'переместить готовый архив в текущую папку (!help!)

strBat = "move " & sPathNet & sArjFile & " " & Nname &
objFile.Write(strBat)
objFile.WriteBlankLines 1
else
Автор: ViSiToR
Дата сообщения: 08.05.2009 16:15
AntoshAReal 16:30 08-05-2009
Цитата:
скрипт возникает на последний символ коца строки

А зачем он там нужен?
Автор: AntoshAReal
Дата сообщения: 08.05.2009 17:06

вот что он пишет, ссылаясь на конец строки:

Код:
const Nname = sInsp & "_" & sInspTo & "_BDK_" & sDate & "_" & sTime & "_" & sEtap & "_" & sVer & "_" & sINN
Автор: ViSiToR
Дата сообщения: 08.05.2009 18:20
AntoshAReal 18:06 08-05-2009
Цитата:
вот что он пишет, ссылаясь на конец строки

Ну ссылается оно тут не на конец строки, а на ошибку в построени константы, видимо ей нужно только литеральное (прямое) значение, без переменных и соединяющих элементов.
Автор: AntoshAReal
Дата сообщения: 08.05.2009 18:37
Просто пытаюсь добиться того, что бы файло переименовывалось по этому шаблону (переменные отрабатывают), потом выполнялось его архивирование (в скрипте это указано и работает).


P.S.
Спасибо за помощь, вроде разобрался, я эту переменную Nname просто не определил.
Автор: ViSiToR
Дата сообщения: 08.05.2009 18:46
AntoshAReal 19:37 08-05-2009
Цитата:
я эту переменную Nname просто не определил

Const не определяет (не объявляет?) переменную, оно задаёт постоянную/константу.

Для объявления переменной используется Dim:


Код: Dim Nname
Nname = sInsp & "_" & sInspTo & "_BDK_" & sDate & "_" & sTime & "_" & sEtap & "_" & sVer & "_" & sINN
Автор: AntoshAReal
Дата сообщения: 08.05.2009 19:02
Премного благодарен, только проверить смогу во вторник

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

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


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