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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы, задачи и их решения по VBScript.

 
Мануал (english, 600 Кб). | Зеркало
MS Scripting 5.6 (700 КБ), включает последнюю версию VBS. Владельцам XP/2000(?) должен быть не нужен. | Зеркало
Немного на wikiпедии.
Предыдущие части: 1
 
Смежные темы:
Сценарии Windows
Командная строка, батники\сценарии (bat, cmd)
Скрипты KiXtart

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:12 12-07-2011 | Исправлено: Smitis, 23:28 26-02-2018
smirnvlad

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UnrealCiscoSys
в батнике были эхи которые писались в текстовые файлы
 

Код:
 
DateTime = Now
 
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objEnv = WshShell.Environment("Process")
 
UserName = objEnv("UserName")
UserDomain = objEnv("UserDomain")
ComputerName = objEnv("ComputerName")
LogonServer = objEnv("LogonServer")
 
l = "logon  " & UserName & " " & ComputerName & " " & DateTime
 
Log l, "\\srv1\logs$\logonlog\users\" & UserName & ".txt"
Log l, "\\srv1\logs$\logonlog\computers\" & ComputerName & ".txt"
Log l, "\\srv1\logs$\logonlog\!logonlog.txt"
 
l = UserDomain & "\" & UserName & " authenticated at " & LogonServer & " " & DateTime & " for " & ComputerName
Log l, "\\srv1\logs$\logonlog\authserver.txt"
 
Sub Log(str, logfilename)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.OpenTextFile(logfilename, 8, true)
    file.WriteLine str
    file.Close     
End Sub
 


Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 09:34 12-07-2011
UnrealCiscoSys



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ща попробую
 
Добавлено:
Супер ... работает ... я еще сделал тоже самое на logout убрав authserver и поменяв logon  на logoff ... Спасибо!!!

Всего записей: 46 | Зарегистр. 31-08-2007 | Отправлено: 18:41 12-07-2011
vova93

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cкажите пожалуйста, как с помощью ВБС получить бинарные данные из буфера обмена, например скриншот?

Всего записей: 6 | Зарегистр. 11-07-2011 | Отправлено: 15:31 13-07-2011
qwertEHOK

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а можно с помощью VBS работать с изобразениями?
интересует изменение размера jpg и сохранение с 50% качества

Всего записей: 454 | Зарегистр. 13-09-2006 | Отправлено: 20:40 18-07-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
qwertEHOK если именно vbs, то как максимум можно извлечь данные о графическом файле; если требуется обрезка и прочее - VBA, который прикручивается к офису. по крайней мере я пока альтернативных решений не нашел.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 01:34 20-07-2011
ShIvADeSt



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

Цитата:
сли именно vbs, то как максимум можно извлечь данные о графическом файле; если требуется обрезка и прочее

А если вызывать стороннее ПО (ирфанвью) которое умеет из командной строки получать параметры и менять изображения?

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 07:09 20-07-2011
ComradG



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

Цитата:
А если вызывать стороннее ПО (ирфанвью) которое умеет из командной строки получать параметры и менять изображения?
попробовать, в общем-то, можно, вот только встречный вопрос: а установлен ли у пользователя сабж или он ему и даром не нужен?!
 
полистал прошлые посты форумчан, нашел кучу примеров по (ан)зипу через системный шелл. а где можно глянуть примеры на JScript'е?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 15:13 31-07-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Гуру, подскажите: что конкретно назначается в этой строке?

Код:
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")

И еще тупой вопрос: чем отличается
Код:
If intOccurClient <> 0 Then
от
Код:
If intOccurClient = 0 Then


----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 08:03 01-08-2011 | Исправлено: Free_Soft, 08:15 01-08-2011
ComradG



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

Цитата:
If intOccurClient <> 0 Then
означает, что если параметр intOccurClient не равен нулю, то должно выполнится некоторое действие, а во втором случае наоборот - если равен нулю.

Цитата:
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
устанавливаешь ссылку на объект WMI.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:34 01-08-2011
Free_Soft



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

Цитата:
устанавливаешь ссылку на объект WMI.

Это я понял вот что конкретно за объекты...

----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 12:39 01-08-2011
Rush

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

Цитата:
что конкретно назначается в этой строке?

Подключение к пространству имен WMI.  

Цитата:
чем отличается

в первом случае не равно 0, во втором наоборот.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 12:40 01-08-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rush
Понятно. Еще вопрос: можно ли при запуске скрипта направлять его выхлоп в текстовый файл, а при запуске через cscript выхлоп выводить в консоль уже без создания txt-файла?

----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 19:50 01-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
то есть, если vbs'ку планируется запускать из проводника или чего? не совсем уловил мысль. можно принудительно запускать cscript:
Код:
var wsh = new ActiveXObject("WScript.Shell");
 
if (WScript.FullName.toLowerCase() == (WScript.Path + "\\wscript.exe").toLowerCase()) {
  wsh.Run("cscript.exe //nologo " + WScript.ScriptName);
  wsh.Quit();
}

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:13 01-08-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Ну да, если кликом из проводника, то в текстовый файл, а если через cscript, то прямиком в консоль

----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:48 01-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
см. код выше:
Код:
var fso = new ActiveXObject("Scripting.FileSystemObject"),
     wsh = new AcriveXObject("WScript.Shell"),
     ForWriting = 2;
 
if (WScript.FullName.toLowerCase() == (WScript.Path + "\\wscript.exe").toLowerCase()) {
  ...
  fso.CreateTextFile("c:\\log.txt");
  fso.OpenTextFile("c:\\log.txt", ForWriting, true);
  ...
}
else {
  ...
  WScript.echo(...);
  ...
}
аналогично будет выглядеть и vbs.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:22 01-08-2011 | Исправлено: ComradG, 22:24 01-08-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А чем отличается
Код:
WScript.Arguments.Item
от
Код:
WScript.Arguments


----------
На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 19:58 04-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тем, что первый является определяемым конкретно аргументом, а второй является общим обектом для всех аргументов. например:
Код:
Set objArgs = WScript.Arguments
'далее можно назначать аргументы так
strName = objArgs(0)
'или так
strName = objArgs.Item(0)
а вообще вот script56.chm советую почитать. правда на аглицком, но все равно must have.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:09 04-08-2011 | Исправлено: ComradG, 21:21 04-08-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем известный сценарий создания контрольной точки восстановления:

Код:
Set ObjSysRr = GetObject("winmgmts:\\.\root\default:Systemrestore")
If (ObjSysRr.CreateRestorePoint("VBS_Script", 0, 100)) = 0 Then
    WScript.Quit(WScript.Echo("CREATED"))
Else
    WScript.Quit(WScript.Echo("NONCREATED"))
End If
Как сюда добавить проверку того, включена защита системы, или нет? Собственно, в таком виде она и ругается:

Код:
point.vbs(2, 1) SWbemObjectEx: Указанная служба не может быть запущена,
 поскольку она отключена или все связанные с ней устройства отключены.

Задача вместо вывода самой ошибки сказать об этом Echo'm

Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 14:25 05-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
прошу прощения, но с чего ты взял, что
Цитата:
If (ObjSysRr.CreateRestorePoint("VBS_Script", 0, 100))
вообще отрабатывает? контрольная точка вообще-то создается так:
Код:
Set objWNIService = GetObject("winmgmts: {impersonationLevel=impersonate}!\\.\\root\default")
Set objItem = objWMIService.Get("SystemRestore")
errResult = objItem.CreateRestorePoint("Системная контрольная точка", 7, 100)
семерка в данном случае - точка, как если бы система сама создала точку отката; если устанваливается драйвер, а перед этим планируется создать точку отката, то на месте 7 уже бужет 12.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 17:26 05-08-2011 | Исправлено: ComradG, 17:28 05-08-2011
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru