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

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

   

DonkeyHottt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ViSiToR
Супер! Спасибо! Буду думать теперь как притулить к моей задаче. У меня скрипт запускает некую программу окно которой появляется на экране. Потом он крутит там всякие ручки, нажимает кнопки и в конце должен переместить окно в нужное мне место экрана. Всегда постоянное. Вот теперь буду пробовать это осуществить.

Всего записей: 104 | Зарегистр. 26-12-2004 | Отправлено: 00:44 05-10-2008
constant125

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите доработать скрипт.
Скриптом получаю название операционной системы, а далее мне надо запустить файл1 если это семейство vista или файл2 если семейство ХР.
На данном этапе я могу вывести окно с информацией об операционной системе, а как перенаправить вывод я не могу понять.

Всего записей: 8 | Зарегистр. 06-10-2008 | Отправлено: 16:48 06-10-2008
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
constant125 16:48 06-10-2008
Цитата:
 как перенаправить вывод я не могу понять

Куда перенаправить? если имеется в виду просто запустить какое то приложение с этими данными, то можно так:
 

Код:
Set oOSSet = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
 
Set WshShell = WScript.CreateObject("WScript.Shell")
 
For Each oSystem in oOSSet
    os_name = oSystem.Caption
Next
 
If InStr(1, os_name, "Vista", 1) >= 1 Then
    WshShell.Exec "Файл1.exe """ & os_name & """"
ElseIf InStr(1, os_name, "Windows XP", 1) >= 1 Then
    WshShell.Exec "Файл2.exe """ & os_name & """"
End If



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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 21:10 06-10-2008
constant125

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, совершенно верно, Вы правильно меня поняли
Спасибо!
 
 
Добавлено:
А можно ещё вопрос?
Как устроить проверку наличия принтера и в соответствии с наличием того или другого выполнять определённые действия (удаление или установка)

Всего записей: 8 | Зарегистр. 06-10-2008 | Отправлено: 10:30 07-10-2008
alroy

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
constant125
Объект WshNetwork
Методы
EnumPrinterConnections
Синтаксис:  
 
EnumPrinterConnections  
 
Назначение:  
 
Возвращает коллекцию сетевых принтеров. Нечётные элементы содержат сетевые имена принтеров, чётные - названия локальных портов.  
 
Параметры:  
 
Нет.  
 
Описание:  
 
Без комментариев.  
 
Пример:  
 
Set WshNetwork = CreateObject("WScript.Network")
Set Printers = WshNetwork.EnumPrinterConnections
i = 0
While i <= Printers.Count-1
    MsgBox Printers.Item(i) & " - " & Printers.Item(i+1)
    i = i+2
Wend
 
 

Всего записей: 59 | Зарегистр. 15-06-2005 | Отправлено: 14:08 07-10-2008
constant125

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

Всего записей: 8 | Зарегистр. 06-10-2008 | Отправлено: 17:34 07-10-2008
lichnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Сталкнулся с такой задачей:
Есть екселевские  файлы А, Б и С. В 1-м столбце файла Б необходимо найти (допустим) содежимое первой ячейки файла А и если оно там (в Б) есть , то скопировать всю строку файла Б в С.  
 
 
Буду очень благодарен. Уже лет 8-мь не имел дел c WbA. Спасибо!

Всего записей: 120 | Зарегистр. 09-10-2007 | Отправлено: 18:05 08-10-2008 | Исправлено: lichnik, 18:06 08-10-2008
Flame2000

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос как сделать вот в этом скрипте чтобы при запуске вместо "__" ставилось текущее время компа
 
dim a
a = inputbox ("Browse","!")
if a = "__" then
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.Run("c:\test.txt")
end if
 
 
Добавлено:
и еще вопросик как сделать в появившемся окне больше кнопок?
 
Добавлено:
заранее благодарен

Всего записей: 1 | Зарегистр. 13-10-2008 | Отправлено: 09:42 13-10-2008
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Flame2000 09:42 13-10-2008
Цитата:
как сделать вот в этом скрипте чтобы при запуске вместо "__" ставилось текущее время компа

Другими словами, как получить текущее системное время?
 

Код:
If a=Time Then
....
End If

 

 

Цитата:
как сделать в появившемся окне больше кнопок?

В VBS скриптах не предусмотрена работа с GUI. См. в сторону AutoIt'а.

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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:20 13-10-2008
Nikkolo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужен простейший скрипт, который бы просто открывал определенную ссылку (и всё!).  
 
Думаю засунуть его в z-cron и запускать его с периодичностью в 5 минут. Ссылка - php-код, который записывает в файл IP. (или можно периодичность срабатывания задать в самом скрипте?)
Плз промогите . Нету сил уже искать, хотя понимаю, что задача - простейшая. Уже несколько дней прошло а я ничего не нашел готового.

Всего записей: 134 | Зарегистр. 14-12-2006 | Отправлено: 08:07 17-10-2008
Ramilcheq



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как можно запустить из скрипта командную строку?
Например, если время 12:00, то шлем сообщение net send 192.168.0.1 obednah
А вообще хочу написать скрипт, который сравнивает свободное место на диске с эталонным и шлет сообщение, если оно меньше эталонного. Проблема осталась только с посылкой сообщения.

Всего записей: 55 | Зарегистр. 08-07-2008 | Отправлено: 10:05 17-10-2008 | Исправлено: Ramilcheq, 10:11 17-10-2008
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Nikkolo 08:07 17-10-2008
Цитата:
Нужен простейший скрипт, который бы просто открывал определенную ссылку

 

Код:
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.Run("тут:/адрес/ссылки")

 

Цитата:
или можно периодичность срабатывания задать в самом скрипте?

Можно:
 

Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
 
iPeriod = 5
sLink = "тут:/адрес/ссылки"
 
iTimer = Timer
 
While 1
    WScript.Sleep 1000
    
    If (Timer - iTimer) >= (iPeriod * 60) Then
        WshShell.Run(sLink)
        iTimer = Timer
    End If
WEnd

 

Цитата:
Ссылка - php-код, который записывает в файл IP

И это можно через скрипт записывать:
 

Код:
Set WshShell     = WScript.CreateObject("WScript.Shell")
Set oFS         = CreateObject("Scripting.FileSystemObject")
 
 
iPeriod         = 5
sIPsFile        = "C:\IPs.txt"
 
iTimer             = Timer
 
 
While 1
    WScript.Sleep 1000
    
    If (Timer - iTimer) >= (iPeriod * 60) Then
        PeriodExpired_Event()
        iTimer = Timer
    End If
WEnd
 
Function PeriodExpired_Event()
    Set hOpenFile = oFS.OpenTextFile(sIPsFile,8, True)
    aIP = GetIPs()
    
    hOpenFile.WriteLine aIP(0)
    hOpenFile.Close
End Function
 
Function GetIPs()
    strcomputer = "."
    sIPAddress = ""
    
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    
    For Each objitem In colitems
        sIPAddress = Join(objitem.IPAddress, ",") & "|" & sIPAddress
    Next
    
    GetIPs = Split(Mid(sIPAddress, 1, Len(sIPAddress)-1), "|")
End Function

 


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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 10:57 17-10-2008
Nikkolo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ух ты спасибо.
А sleep не будет грузить комп?
 
Самое главное - ссылка-то открывается в браузере .
А мне надо чтобы она "открывалась" где-нибудь там в фоне.  
 
Почему.
Дело в том, что по ссылке лежит php-скрипт который _там на сервере_ записывает IP. Мне это нужно чтобы я из любого места мог через интернет IP человека не утруждая его разговорами о том куда зайти и что сказать.
 
На ХР это решилось легко. Я запустил там nncron и на встроенном языке прописал скриптик, который якобы хочет что-то загрузить состраницы такой-то и подставил туда свой УРЛ (естественно ничего не гружу, но релоад ссылки получается нормально - php-скрипт работает нормально и сервер там прописывает IP зашедшего у себя в отдельный файл).
На Vista nncron не работает.
 
P.S.
Кстати а как этот скрипт остановить теперь? А то мне комп перезагружать нельзя а скрипт плодит окна IExplorer'a

Всего записей: 134 | Зарегистр. 14-12-2006 | Отправлено: 13:48 17-10-2008 | Исправлено: Nikkolo, 13:57 17-10-2008
garniv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nikkolo
В диспетчере задач заверши wscript.exe

Всего записей: 1102 | Зарегистр. 23-12-2004 | Отправлено: 17:17 17-10-2008
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Nikkolo 13:48 17-10-2008
Цитата:
А sleep не будет грузить комп?

Нет, это как раз и для того чтобы цикл не нагружал процессор.
 

Цитата:
надо чтобы она "открывалась" где-нибудь там в фоне.  

Можно создать объект Internet.Explorer:
 

Код:
iPeriod         = 5
sURL            = "тут://адрес/ссылки/на/скрипт.php"
 
iTimer             = Timer
 
 
While 1
    WScript.Sleep 1000
    
    If (Timer - iTimer) >= (iPeriod * 60) Then
        PeriodExpired_Event()
        iTimer = Timer
    End If
WEnd
 
Function PeriodExpired_Event()
    IECreate(sURL, 0, 1, 1)
End Function
 
Function IECreate(sURL, iShow, iWait, iCloseIE)
    Set oIE = WScript.CreateObject("InternetExplorer.Application")
    
    oIE.Visible = iShow
    oIE.Navigate(sURL)
    
    If iWait Then
        While StrComp(oIE.ReadyState, "complete") <> 0 And oIE.ReadyState <> 4
            WScript.Sleep 100
        WEnd
    End If
    
    If iCloseIE Then oIE.Quit
End Function

 
Не тестировал.
 


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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 20:25 17-10-2008
piratiK

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите возможно ли на VBScript организовать ввод из конслоли?
Если да то как?
Спасибо.

Всего записей: 29 | Зарегистр. 03-10-2004 | Отправлено: 02:34 18-10-2008
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
piratiK 02:34 18-10-2008
Цитата:
возможно ли на VBScript организовать ввод из конслоли?

Разве что только(?) через cmd. А зачем?

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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 12:39 18-10-2008
piratiK

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт выдает большой вывод в консоль,  окно не очень удобно если например вывод надо скопировать, а ввод через inputbox, что немного раздражает потому что надо по нескольку раз вводить какие то данные. Поэтому хотел только с консоли вводить. Кстати вот нашел в инете код который переключает выполнение скрипта всегда в  CScript
Dim WshShell
If StrComp(Right(WScript.FullName, 11), "wscript.exe", vbTextCompare) = 0 Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cscript.exe " & Chr(34) & WScript.ScriptFullName & Chr(34)
WScript.Quit
End If
WScript.Interactive = True

Всего записей: 29 | Зарегистр. 03-10-2004 | Отправлено: 12:52 18-10-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
piratiK
И всегда в cscript и ввод в консоли
http://blog.throbs.net/2005/06/13/My+Code++InputLine+Function+For+WSH++Inputbox+For+CScript.aspx
 
Добавлено:
Вернее - если сценарий запущен через cscript, то ввод из консоли, если wscript - то ввод в InputBox

Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 13:53 18-10-2008 | Исправлено: igor_andreev, 13:57 18-10-2008
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
piratiK
Я сразу не понял что требуется... Вот пример работы через консоль:
 

Код:
ReStartInConsoleMode()
 
WScript.Echo "Are you sure? (YES = 1 / NO = 2)" & vbCRLF
 
Do While Not WScript.StdIn.AtEndOfLine
    sInput = sInput & WScript.StdIn.Read(1)
Loop
 
sInput = Replace(sInput, 1, "YES")
sInput = Replace(sInput, 2, "NO")
 
If StrComp(sInput, "YES", vbTextCompare) = 0 oR StrComp(sInput, "NO", vbTextCompare) = 0 Then
    MsgBox "User answer: " & sInput, 64, "Answer"
Else
    MsgBox "Wrong User answer: " & sInput, 48, "Answer"
End If
 
Function ReStartInConsoleMode()
    If StrComp(Right(WScript.FullName, 11), "wscript.exe", vbTextCompare) = 0 Then
        Set WshShell = CreateObject("WScript.Shell")
        WshShell.Run "cscript.exe " & Chr(34) & WScript.ScriptFullName & Chr(34)
        WScript.Quit
    End If
    
    WScript.Interactive = True
End Function


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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 14:18 18-10-2008
   

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