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

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

   

Posochov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу управлять сервисом "Kaspersky Internet Security 7.0"
Беру пример:

Цитата:
Set objShellApp = CreateObject("Shell.Application")
ServiceName = """Kaspersky Internet Security 7.0"""
If objShellApp.IsServiceRunning(ServiceName) Then
    MsgBox "Сервис " & ServiceName & " запущен!", vbInformation
Else
    MsgBox "Сервис " & ServiceName & " НЕ запущен!", vbInformation
End If

 
Выяснилось, что в данном случае метод не понимает имя сервиса с пробелами.
Это можно побороть?

Всего записей: 1703 | Зарегистр. 30-04-2005 | Отправлено: 11:05 22-03-2008 | Исправлено: Posochov, 11:06 22-03-2008
The_gray_Cardinal

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Posochov
В чём именно выражается "непонимание" имени сервиса с пробелами?
У меня нет Kaspersky. Можешь привести пример более популярного "сервиса с пробелами", чтобы я мог проверить "непонимание" у себя?
 
Добавлено:
loplop777
Есть консольная утилита, которую вполне можно вызвать из VBS:

Код:
nircmd.exe monitor off|on|low

http://www.nirsoft.net/utils/nircmd.html

Всего записей: 12 | Зарегистр. 03-07-2006 | Отправлено: 11:12 22-03-2008
Posochov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
The_gray_Cardinal
Цитата:
В чём именно выражается "непонимание" имени сервиса с пробелами?  

Оно выражается в том, что все время выдает:

Цитата:
MsgBox "Сервис " & ServiceName & " НЕ запущен!", vbInformation

хотя сервис запущен.
 
А на примере сервиса "MySQL" - все работает.
Отсюда и вывод, что пробелы он не читает.
Если запускать сервис так:

Цитата:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("cmd.exe /c net start ""Kaspersky Internet Security 7.0""",0,True)

То здесь, заключение имени сервиса в кавычки помогает, но в таком способе мне нехватает некоторых функций, в частности нет аналога метода "CanStartStopService".

Цитата:
пример более популярного "сервиса с пробелами"

Уж не знаю о популярности - "Служба времени Windows", например.
А потом, посмотри сам в своих службах, какие у тебя там есть службы с пробелами.

Всего записей: 1703 | Зарегистр. 30-04-2005 | Отправлено: 11:31 22-03-2008
The_gray_Cardinal

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Posochov
Сейчас попробовал - имхо, дело не в пробелах. Надо брать не "Выводимое имя", а "Имя службы". Например, вместо "Служба времени Windows" надо указывать "W32Time" - тогда всё работает.

Всего записей: 12 | Зарегистр. 03-07-2006 | Отправлено: 12:40 22-03-2008 | Исправлено: The_gray_Cardinal, 12:43 22-03-2008
Posochov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
The_gray_Cardinal
Цитата:
имхо, дело не в пробелах. Надо брать не "Выводимое имя", а "Имя службы".

Ты молоток.
Спасибо большое.
 
PS
А дело все таки в пробелах.
Просто в "Имя службы" их нет.

Всего записей: 1703 | Зарегистр. 30-04-2005 | Отправлено: 13:03 22-03-2008 | Исправлено: Posochov, 13:11 22-03-2008
HW2yS

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

Всего записей: 87 | Зарегистр. 21-11-2006 | Отправлено: 21:22 22-03-2008 | Исправлено: HW2yS, 15:49 25-03-2008
Tadpole

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обращаюсь за помощью, в топике подобных примеров не нашел и искания по инету ни к чему не привели.
Необходимо написать скрипт, который будет определять свободное место на диске, отправлять его значение на указанный почтовый адрес, а так же сравнивать с эталонным значением, и если размер меньше эталона выполнять команду. (отправка сообщения на сервер HP Openview)
Сделать надо быстро, а я изучал в свое время VBA и сделал на нем, а в VBS теперь переделать что-то никак.  
 
кто что подскажет?

Всего записей: 18 | Зарегистр. 14-09-2005 | Отправлено: 10:57 24-03-2008
alroy

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tadpole
Вот лови а дальше сам делай  
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Set DriveC = FSO.GetDrive("C:")
Str = "Диск C:" & vbCrLf & _
"AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _
"DriveLetter: " & DriveC.DriveLetter & vbCrLf & _
"DriveType: " & DriveC.DriveType & vbCrLf & _
"FileSystem: " & DriveC.FileSystem & vbCrLf & _
"FreeSpace: " & DriveC.FreeSpace & vbCrLf & _
"IsReady: " & DriveC.IsReady & vbCrLf & _
"Path: " & DriveC.Path & vbCrLf & _
"RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _
"SerialNumber: " & DriveC.SerialNumber & vbCrLf & _
"ShareName: " & DriveC.ShareName & vbCrLf & _
"TotalSize: " & DriveC.TotalSize & vbCrLf & _
"VolumeName: " & DriveC.VolumeName
MsgBox Str
 
 

Всего записей: 59 | Зарегистр. 15-06-2005 | Отправлено: 10:53 27-03-2008
pazdak

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите кто знает, как в VBScript ПРАВИЛЬНО реализовать в Excel "Проверку данных" с условием проверки "Список"
Если сделать запись макроса, то получаем такой код:

Код:
With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=YESNO"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
 

 
Пытался это переписать на VBScript:
 
Создаем пространство имен YESNO:

Код:
 
objSheet.Range("H100").FormulaR1C1="NO"
objSheet.Range("H101").FormulaR1C1="YES"
objXlsApp.ActiveWorkbook.Names.Add "YESNO", "=" & objSheet.Name & "!$H$100:$H$101"
 

Собственно сама проверка данных:
3 - xlValidateList

Код:
 
   obrow = "A3"
   objSheet.Range(obrow).Validation.Delete
   objSheet.Range(obrow).Validation.Add 3,1,1,"=YESNO"
   objSheet.Range(obrow).Validation.IgnoreBlank = True
   objSheet.Range(obrow).Validation.InCellDropdown = True
   objSheet.Range(obrow).Validation.InputTitle = ""
   objSheet.Range(obrow).Validation.ErrorTitle = ""
   objSheet.Range(obrow).Validation.InputMessage = ""
   objSheet.Range(obrow).Validation.ErrorMessage = ""
   objSheet.Range(obrow).Validation.ShowInput = True
   objSheet.Range(obrow).Validation.ShowError = True
 

На строке:
objSheet.Range(obrow).Validation.Add 3,1,1,"=YESNO"
дает ошибку 1004 "Unknown error"
 
Бился по всякому, но не выходит каменный цветок
Прошу Вашей помощи
 
Добавлено:
Проблема решена, в скрипте строка:

Код:
objXlsApp.activewindow.WindowState = xlMinimized

Оказывается влияет пагубно на добавление проверки данных, после того как закоментировал ее, все наконец-то заработало

Всего записей: 376 | Зарегистр. 13-02-2003 | Отправлено: 16:44 31-03-2008 | Исправлено: pazdak, 15:23 14-04-2008
alexio



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите как скриптом візвать удаление приложение
в названии которого есть определенное слово
очень надобно

Всего записей: 530 | Зарегистр. 25-11-2003 | Отправлено: 20:21 31-03-2008
valerka78



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят подскажите скриптик на включение-отключение соединения из папки "Сетевые подключения", я нашел один подходящий но он на кнопку "Подключить", просто выводит диалоговое окно:
 
strNetConn = "Сетевые подключения" ' Network Connections для англ. версии ОС
strConn = "Relcom" ' имя или часть имени подключения
strEnable = "&Подключить" ' En&able для англ. версии ОС
strDisable = "&Отключить" ' Disa&ble для англ. версии ОС
 
Set objShell = CreateObject("Shell.Application")
Set objCP = objShell.Namespace(3) ' Панель управления
For Each elem in objCP.Items
    If elem.Name = strNetConn Then
        ' получение папки "Сетевые подключения"
        Set colNetwork = elem.GetFolder
        Exit For
    End If
Next
 
Set Conn = Nothing
For Each clsConn in colNetwork.Items
    If Instr(LCase(clsConn.name), LCase(strConn)) Then
        ' получение указанного подключения
        Set Conn = clsConn
        Exit For
    End If
Next
If Conn Is Nothing Then
    WScript.Echo "Network Connection not found"
    WScript.Quit
End If
 
bEnabled = True
Set objEnable = Nothing
Set objDisable = Nothing
For Each clsVerb in Conn.verbs
    ' если доступен глагол "Enable", подключение отключено
    If clsVerb.Name = strEnable Then
        Set objEnable = clsVerb
        bEnabled = False
    End If
    ' если доступен глагол "Disable", подключение подключено
    If clsVerb.name = strDisable Then
        Set objDisable = clsVerb
    End If
Next
 
If bEnabled Then
    objDisable.DoIt
    strStatus = "disabled."
Else
    objEnable.DoIt
    strStatus = "enabled."
End If
WScript.Sleep 1000

Всего записей: 248 | Зарегистр. 16-01-2006 | Отправлено: 22:00 31-03-2008
Nagual



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
valerka78
почему бы не заюзать утилиту cnic
cnic home-local -d &&cnic home-local -c
где
home-local — название подключения (желательно на инглише, ибо возможны глюки, если оно на русском)

Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 00:34 01-04-2008
loplop777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди это сос!вот что надо написать-При установке ПО, запись в файл на общем ресурсе: имя компьютера, пользователь, дата, время, название ПО!все через vbs надо!

Всего записей: 7 | Зарегистр. 21-03-2008 | Отправлено: 09:51 01-04-2008
valerka78



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

Всего записей: 248 | Зарегистр. 16-01-2006 | Отправлено: 16:06 01-04-2008
alexio



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос есть структура
произвольный диск----
                                 |  
                                 папка "А"-----
                                                     |
                                                     папка "В"
 
Скрипт находится в папке "В" а запускать *.exe нужно с папки "А"
 
Как єто реализовать не пойму ....

Всего записей: 530 | Зарегистр. 25-11-2003 | Отправлено: 11:16 02-04-2008
Nagual



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexio
vbs
..\*.exe
js
..\\*.exe
букву э как то в другую сторону написал)

Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 00:25 03-04-2008
alexio



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а как же путь определится ?
 ..\
 
Добавлено:
..\
насколько понимаю это текущая папка
а *.exe лежит на уровень вверх

Всего записей: 530 | Зарегистр. 25-11-2003 | Отправлено: 09:21 03-04-2008
Rush

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

Цитата:
..\  
насколько понимаю это текущая папка  
а *.exe лежит на уровень вверх

Нет, это папка на уровень вверх. Текущей она равна только когда оба файла лежат в корне диска...

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 10:01 03-04-2008
alexio



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а так тогда можно написать ?
 ..\progs\setup.exe
тоесть подняться наверх зайти в папку
и запустить файл?  

Всего записей: 530 | Зарегистр. 25-11-2003 | Отправлено: 14:42 03-04-2008
Rush

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

Цитата:
а так тогда можно написать ?  
 ..\progs\setup.exe  

Так чего спрашивать? Ты пробуй, да и все дела... Это значит - папки находятся на одном уровне иерархии.  
..\ - выход на 1 уровень вверх.  
..\..\ - на 2 уровня
и т.д. и т.п.
 
Добавлено:

Цитата:
тоесть подняться наверх зайти в папку  
и запустить файл?

Именно так...

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 15:24 03-04-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