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

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

   

Maza_Faka



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

Цитата:
Перед выполнением нужно проверять наличие уже запущенного скрипта.

Можно так:

Код:
 
strComputer = "."
 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colProcesses = objWMIService.ExecQuery("select * from win32_process where Name = 'notepad.exe'")
 
For Each objProcess In colProcesses
   If objProcess.Name = "notepad.exe" Then WScript.Echo "Process Is Exist"
Next
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:33 08-04-2009
mihmig

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. А никто не пробовал ExeScript Thinstallo-м обрабатывать, просто мне нужно рядом со скриптом еще иметь wget.exe и wput.exe?
 
2. А кто чем отлаживает скрипты (интересуют реально работающие отладчики и субъективное мнение)

Всего записей: 276 | Зарегистр. 25-09-2007 | Отправлено: 13:38 08-04-2009
Integrity

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите плиз!
Мне нужно вычислить secondary sound device скриптом...
ОС: Vista. В конце скрипт должен делать запись в реестре (FriendlyName нужен).
Возможно кто-то сталкивался с такой проблемой

Всего записей: 3 | Зарегистр. 06-10-2008 | Отправлено: 16:35 08-04-2009
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема с зацикливанием(открывается стопицот калькуляторов и окон флэши) при открытии флэши с Autorun и использованием скрипта на открытие корневой папки где лежит скрипт
 
Происходит зацикливание так как в корне флэши нужен Autorun  

Код:
[AutoRun]
shellexecute=2moi.vbs
Action=Открыть калькулятор и флэш

 
 

Код:
set fso = createobject("scripting.filesystemobject")  
folder = fso.getfile(wscript.scriptfullname).parentfolder    
set shapp = createobject("shell.application")    
shapp.open(folder)    
' или    
shapp.explore(folder)  

 
 
 
 Вот этот скрипт работает почти идеально  
 

Код:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "calc.exe"  
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "explorer /root,""D:\"""

 
только как прописать не фиксированную букву диска "D:\",,. буква должна браться из пути к скрипту который лежит в корне флэши  
типа этого  
 

Код:
folder = fso.getfile(wscript.scriptfullname).parentfolder
 
 
 
но как его использовать для этого скрипта  
 

Код:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "calc.exe"  
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "explorer /root,""D:\"""

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 17:42 09-04-2009 | Исправлено: TYMAH3003, 17:43 09-04-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TYMAH3003

Код:
set fso = createobject("scripting.filesystemobject")  
folder = fso.getfile(wscript.scriptfullname).parentfolder
Set WshShell = CreateObject("WScript.Shell")  
WshShell.Run "calc.exe"    
WshShell.Run "explorer /root," & """" & folder & """"

 
 
Добавлено:
Хотя, если тебе обязательно надо открывать корень диска, то лучше так:

Код:
set fso = createobject("scripting.filesystemobject")  
drname = fso.GetDriveName(wscript.scriptfullname)
Set WshShell = CreateObject("WScript.Shell")  
WshShell.Run "calc.exe"  
WshShell.Run "explorer " & drname

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 18:14 09-04-2009 | Исправлено: Rush, 18:26 09-04-2009
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пасиб 2-ое,,, то что доктор прописал, респект Rush

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 19:22 09-04-2009
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужен такой вот скриптик с условием проверки на наличие файла D:\test.txt если файл есть
выскакивает сообщение "Файл существует" и на этом конец работы скрипта,,
если файл отсутствует выполняется запуск блокнота
Как выполнить проверку на наличие файла test.txt?
 

Код:
Set WshShell = CreateObject("WScript.Shell")  
    WshShell.Run "notepad.exe", 1, False  

 
И ещё,,, один пользователь просил написать скрипт рассылки файла reklama.txt по локальной сети ,,,.
то есть проверялся доступ на запись на локальном компе и если открыт то в корень диска копирывался файл reklama.txt,,. файл лежит D:\reklama.txt
 
Уже весь форум обрыл видел же а найти немогу мож кто помнит пост или заново восстановит скрипт

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 13:37 10-04-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
написать скрипт рассылки файла reklama.txt по локальной сети

Сразу скажу - сети нет, поэтому проверить не могу.  
Да и не мой это профиль. Поэтому наугад все написал.  

Код:
 
set objwmi = getobject("winmgmts:\\.\root\cimv2")
set ips = objwmi.execquery _
    ("select * from win32_networkadapterconfiguration where ipenabled=true")
    set fso = createobject("scripting.filesystemobject")
for each ip in ips
    if not isnull(ip.ipaddress) then  
        for i=lbound(ip.ipaddress) to ubound(ip.ipaddress)
            fso.copyfile "D:\reklama.txt", "\\" & ip.ipaddress(i) & "\c$\"
        next
    end if
next
 
 

Цитата:
Нужен такой вот скриптик с условием проверки на наличие файла D:\test.txt если файл есть  
выскакивает сообщение "Файл существует" и на этом конец работы скрипта,,  
если файл отсутствует выполняется запуск блокнота  


Код:
 
file = "D:\test.txt"
set fso = createobject("scripting.filesystemobject")
if fso.fileexists(file) then
    msgbox "Файл существует"
    wscript.quit
else
    set wshshell = createobject("wscript.shell")  
    wshshell.run "notepad.exe", 1, false  
end if
 

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 08:05 11-04-2009
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С этим всё ок!  

Код:
file = "D:\test.txt"  
set fso = createobject("scripting.filesystemobject")  
if fso.fileexists(file) then  
    msgbox "Файл существует"  
    wscript.quit  
else  
    set wshshell = createobject("wscript.shell")    
    wshshell.run "notepad.exe", 1, false    
end if

 
При запуске скрипта файл reklama.txt копируется на дист С и на этом работа скрипта заканчивается,. а сканирование сети и получение ип адреса,, работа долгая)),,  
 

Код:
set objwmi = getobject("winmgmts:\\.\root\cimv2")  
set ips = objwmi.execquery _  
    ("select * from win32_networkadapterconfiguration where ipenabled=true")  
    set fso = createobject("scripting.filesystemobject")  
for each ip in ips  
    if not isnull(ip.ipaddress) then  
        for i=lbound(ip.ipaddress) to ubound(ip.ipaddress)  
            fso.copyfile "D:\reklama.txt", "\\" & ip.ipaddress(i) & "\c$\"  
        next  
    end if  
next

 
 
Вот что нарыл  
 
Название темы звучало так  "Перебор компьютеров в лок. сети через "Сетевое окружение""
В конце работы скрипта появляются имена локальных компов "Comp1", "Comp2" домены их,,,,,,,может это возможно использывать ,,,,,,. скрипт работает около 40 сек то есть идёт сканирование! ,,,то есть домен есть осталось проверить диски на разрешение копирывания в данном домене,,,. или автоматом делать копирывание файла на диски и где есть доступ файл скопируется...  

Код:
Set Shell = CreateObject("Shell.Application")
'получение папки "Сетевое окружение"
Set objFolder = Shell.NameSpace("::{208D2C60-3AEA-1069-A2D7-08002B30309D}")
'получение папки "Вся сеть"
Set objFolder = objFolder.Items().Item("EntireNetwork").GetFolder
'получение папки "Microsoft Windows Network"
For Each objItem In objFolder.Items()
    If objItem.Name = "Microsoft Windows Network" Then
        Set objFolderNetwork = objItem.GetFolder
    End If
Next
'перебор доменов и рабочих групп
For Each objItem In objFolderNetwork.Items()
    If objItem.IsFolder Then
        Set objFolder = objItem.GetFolder
        'перебор компьютеров
        For Each objSubItem In objFolder.Items()
            WScript.Echo objSubItem.Name
        Next
    End If
Next

 

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 11:11 11-04-2009 | Исправлено: TYMAH3003, 11:15 11-04-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TYMAH3003
Ну попробуй заместо
Код:
WScript.Echo objSubItem.Name
написать
Код:
fso.copyfile "D:\reklama.txt", "\\" & objSubItem.Name & "\c$\"  
только в начале скрипта не забудь вставить
Код:
set fso = createobject("scripting.filesystemobject")


Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 12:20 11-04-2009
TYMAH3003

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

Код:
set fso = createobject("scripting.filesystemobject")
Set Shell = CreateObject("Shell.Application")
'получение папки "Сетевое окружение"
Set objFolder = Shell.NameSpace("::{208D2C60-3AEA-1069-A2D7-08002B30309D}")
'получение папки "Вся сеть"
Set objFolder = objFolder.Items().Item("EntireNetwork").GetFolder
'получение папки "Microsoft Windows Network"
For Each objItem In objFolder.Items()
    If objItem.Name = "Microsoft Windows Network" Then
        Set objFolderNetwork = objItem.GetFolder
    End If
Next
'перебор доменов и рабочих групп
For Each objItem In objFolderNetwork.Items()
    If objItem.IsFolder Then
        Set objFolder = objItem.GetFolder
        'перебор компьютеров
        For Each objSubItem In objFolder.Items()
fso.copyfile "D:\reklama.txt", "\\" & objSubItem.Name & "\c$\"     'Ругает "не найден путь строка 19 символ 1"
        Next
    End If
Next

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 12:56 11-04-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TYMAH3003

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

Ну значит неправильно...
Жди, кто-нибудь поможет, я же говорил, что это не мой профиль...

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:03 11-04-2009
TYMAH3003

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rush ясн,, ждёмс ViSiToR'a вродь это его профиль)))

Всего записей: 241 | Зарегистр. 15-03-2009 | Отправлено: 13:34 11-04-2009
batniki



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

Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 20:33 13-04-2009 | Исправлено: batniki, 20:37 13-04-2009
mosKaIop

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребят,а как написать скрипт,который будет обновлять изображение при наведении курсора...и другой,который меняет изображение через интервал времени?...теоретически я могу это сделать,но с vbs не знаком...
 
Добавлено:
я бы сделал это на голом хтмл,или на js, но задание именно на vbs...буду очень благодарен)

Всего записей: 1 | Зарегистр. 08-04-2008 | Отправлено: 00:29 14-04-2009
OnlyForYou

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста, как можно через 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 ("Принтеры подключены")
 

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

Всего записей: 2 | Зарегистр. 07-04-2009 | Отправлено: 10:12 05-05-2009 | Исправлено: OnlyForYou, 10:13 05-05-2009
Rush

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

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 14:40 05-05-2009
frolo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.  
 
Есть такой скриптик стягивающий файл по 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
 

 
Он работает. При создании файла c:\base.mdb дата ставится текущая на время создания понятно.  
Помогите пожалуйста дописать так, чтобы дата создаваемого файла была такой же как и у исходного.
 
Спасибо.

Всего записей: 8 | Зарегистр. 13-01-2006 | Отправлено: 12:59 07-05-2009
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
frolo 12:59 07-05-2009
Цитата:
чтобы дата создаваемого файла была такой же как и у исходного

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

Код:
LastModified = xml.GetResponseHeader("Last-Modified")

 
И уже потом (после полной закачки) задать файлу новую дату создания. Как сделать последнее я не уверен...

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 14:19 07-05-2009
ANTRAMABANAKAN



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет.
 
я исползую етот скрипт для копирования фаилов из сети.
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)
 
Есть ли возможность проверять дату файла перед копированием....

Всего записей: 114 | Зарегистр. 12-11-2008 | Отправлено: 15:35 07-05-2009
   

Страницы: 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