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

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

Автор: ComradG
Дата сообщения: 31.01.2011 15:12
cambit
дядь, ты мне параметры командной строки элоя дай, тогда будет о чем говорить.
Автор: cambit
Дата сообщения: 31.01.2011 15:47
ComradG

F:\Soft\LAP\LA.exe 1.ac3
пожалуйста.
Тут по ходу получается, что сообщение выскакивает после проигрывания файла (в предложенном примере) или я ошибаюсь?
Автор: ComradG
Дата сообщения: 31.01.2011 19:27

Код: Const btnYes = 6
Const bntNo = 7

Set objShell = CreateObject("Wscript.Shell")

intReturn = objShell.Popup("Хотите прослушать мелодию?", 10, "Light Alloy", 36)

If intReturn = btnYes Then
strSound = "F:\Soft\LAP\1.ac3"
strCommand = "F:\Soft\LAP\LA.exe" & Chr(34) & strCound & Chr(34)
objShell.Run strCommand, 0, False
WScript.Sleep 50000
Wscript.Quit
Else
MsgBox "Операция отменена пользователем.", 48, "Отмена"
Wscript.Quit
End If
Автор: WSQ2
Дата сообщения: 31.01.2011 23:43
Подскажите пожалуйста, как скриптом настроить состав группы "пользователи"?
не могу скриптом удалить из группы "Пользователи" группы
NT AUTHORITY\ИНТЕРАКТИВНЫЕ (S-1-5-4)
NT AUTHORITY\Прошедшие проверку (S-1-5-11)

и добавить другую группу из домена.

для удаления пытаюсь обратиться к группам
Set objGroupForDel = GetObject("WinNT://" & strComputer & "/NT AUTHORITY\ИНТЕРАКТИВНЫЕ,group")
или
Set objGroupForDel = GetObject("WinNT://{S-1-5-19},group")
получаю "не найдено имя группы".

При этом пользователя из группы "Пользователи" удаляет нормально
Цитата:
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set objGroupUsers = GetObject("WinNT://" & strComputer & "/Пользователи,group")
Set objUser = GetObject("WinNT://" & strComputer & "/Test_user,user")
objGroupUsers.Remove(objUser.ADsPath)

как правильно зачистить группу "Пользователи"??
Автор: ComradG
Дата сообщения: 01.02.2011 11:33
WSQ2
кхе, кхе! простите, уважаемый, но с чего вы взяли, что
Цитата:
NT AUTHORITY\ИНТЕРАКТИВНЫЕ (S-1-5-4)
NT AUTHORITY\Прошедшие проверку (S-1-5-11)
вообще можно удалить? для этого как минимум нужны права системы.
Автор: ChiStiK_XaSeR
Дата сообщения: 01.02.2011 14:17
Мне хоть кто-нибудь поможет?....Сомневаюсь...
Автор: ComradG
Дата сообщения: 01.02.2011 14:46
ChiStiK_XaSeR
чего-то пропустил, а в чем, собственно, проблема?
Автор: WSQ2
Дата сообщения: 01.02.2011 17:26

Цитата:
WSQ2
кхе, кхе! простите, уважаемый, но с чего вы взяли, что
Цитата:NT AUTHORITY\ИНТЕРАКТИВНЫЕ (S-1-5-4)
NT AUTHORITY\Прошедшие проверку (S-1-5-11)

вообще можно удалить? для этого как минимум нужны права системы.
объясню ситуацию: после установку Windows XP и ввода в домен в группе пользователи появляются три группы:
NT AUTHORITY\ИНТЕРАКТИВНЫЕ (S-1-5-4)
NT AUTHORITY\Прошедшие проверку (S-1-5-11)
Domain Users

на компьютерах нужно чтобы могли войти только пользователи группы "отдел1". Пользователи домена, не входящие в группу "отдел1" не должны заходить на компьютеры отдела.

Можно обойти все компьютеры и руками удалить автоматически созданные группы, а потом добавить одну группу "отдел1".
Хочется сделать это скриптом. Запустить скрипт от имени системы на всех компьютерах и не бегать по компьютерам.

Только скриптом удалить группы не получается.
Автор: Accessor
Дата сообщения: 02.02.2011 04:27
WSQ2
А я бы этот вопрос урегулировал на уровне Групповой политики. Параметр "интерактивный вход" именно для этого и предназначен.
Автор: GRom V
Дата сообщения: 05.02.2011 02:10
Уважаемые VBSисты! Мне нужно чтоб после 23:00 комп выключался...
ПодсАбите плизз...как моно?
Автор: Rush
Дата сообщения: 05.02.2011 09:15
GRom V
А не проще назначить задание с на 23:00 с командной строкой такого вида?

Код: "shutdown -s -t 0"
Автор: GRom V
Дата сообщения: 05.02.2011 12:07
Rush
Спасибо, нон нужно чтоб запущенНый скрипт, если больше 23:00 будет вырубать комп
Автор: Rush
Дата сообщения: 05.02.2011 13:39
GRom V

Цитата:
Спасибо, нон нужно чтоб запущенНый скрипт, если больше 23:00 будет вырубать комп

Что-то я не соображу - тебе не все понятно? Если я ошибаюсь, дальше читать не обязательно.
--------
Скрипт так и делает. Запускай из командной строки:

Код: wscript "path.vbs" /t:23:00:01 /s:3000
Автор: GRom V
Дата сообщения: 05.02.2011 15:01
Rush
сори втупил!
Спасибо все работает!
Автор: Scaramanga
Дата сообщения: 05.02.2011 21:46
Доброго времени суток. Можно ли сделать следующее чтобы при запуске vbs скрипта эмулировалось нажатие клавиши ctrl(зажатая)+scrolllock+scrolllock(т.е. принудительное вызываение дампа памяти) ?
Пытаюсь

Код: Set WSHShell = CreateObject("WScript.Shell")
wshshell.Sendkeys "^({{SCROLLLOCK} 2})"
Автор: JohnSilver182
Дата сообщения: 06.02.2011 21:41
Hi

а) В Win 7 такой запрос перестал выдавать список VPN подключений

Код: Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
Автор: ComradG
Дата сообщения: 06.02.2011 23:36
Scaramanga

Код: WSHSHell.SendKeys "^{SCROLLLOCK}{SCROLLLOCK}"
Автор: Rush
Дата сообщения: 08.02.2011 06:15
JohnSilver182

Цитата:
как заставить WshShell.Exec ждать завершений запускаемого приложения ??

Не совсем ясно. Продолжить скрипт после завершения запущенного через Exec приложения?
Можно использовать метод Run, а не Exec. Или через Sleep, как писал ComradG.
Так, примерно:

Код: Set WshShell = CreateObject("Wscript.Shell")
Set WshExec = WshShell.Exec("notepad")

Do While True
If WshExec.Status Then Exit Do
WScript.Sleep 1000
Loop

WScript.Echo "Программа закрыта"
Автор: ChiStiK_XaSeR
Дата сообщения: 12.02.2011 15:41
ComradG
У меня должны быть три скрипта:
1 скрипт просто копирует два других и еще некоторые файлы в определенную папку,
2 скрипт откладывает запуск 3 скрипта на 4 дня
3 скрипт должен содержать команды для командной строки(как это реализовать?), и после их выполнения вывести определенный текст и запустить другой файл
если знаешь как это можно сделать напиши...
Автор: ComradG
Дата сообщения: 12.02.2011 16:31
ChiStiK_XaSeR
чтобы выполнить определенные консольные команды используется конструкция вроде:
Код: Set objShell = CreateObject("WScript.Shell")
objShell.Run "%comspec% /c [команда]", 0, False
Автор: Smitis
Дата сообщения: 12.02.2011 22:34
ChiStiK_XaSeR

Цитата:
2 скрипт откладывает запуск 3 скрипта на 4 дня

Планировщик?
Автор: ChiStiK_XaSeR
Дата сообщения: 13.02.2011 09:16
Smitis
планировщик использовать не могу...

Добавлено:

Цитата:
чтобы выполнить определенные консольные команды используется конструкция вроде:
Код:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "%comspec% /c [команда]", 0, False
для вывода текста используется команда WScript.Echo, например, так:
Код:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "%comspec% /k test.bat", 0, True
WScript.Echo "Чего-то там сделано, - принимай работу, хозиян!"

Set objShell = Nothing

не выходит...
Автор: Smitis
Дата сообщения: 13.02.2011 11:17
ChiStiK_XaSeR

Цитата:
планировщик использовать не могу...

Зря


Цитата:
не выходит...


Запуск ком. файла с перехватов консольного вывода и отображением в консоли

Код:
Set shl = CreateObject("WScript.Shell")
Set oe = shl.Exec( "test.cmd" )
Set ts = oe.StdOut
Do While Not ts.AtEndOfStream
x = ts.ReadLine
WScript.Echo x
Loop
Автор: ChiStiK_XaSeR
Дата сообщения: 13.02.2011 21:14
Smitis
вроде запускается, но появляется лишнее сообщение в неправильной кодировке
теперь осталось только решить как отложить запуск скрипта на 4 дня..
Автор: Smitis
Дата сообщения: 14.02.2011 08:50
ChiStiK_XaSeR

Цитата:
но появляется лишнее сообщение в неправильной кодировке

Правь кодировку командного файла + chcp 1251

Цитата:
теперь осталось только решить как отложить запуск скрипта на 4 дня

Либо планировщик либо sleep
Автор: cambit
Дата сообщения: 15.02.2011 13:29
ComradG
Вы на предидущей странице писали

Цитата:
Код:Const btnYes = 6
Const bntNo = 7

Set objShell = CreateObject("Wscript.Shell")

intReturn = objShell.Popup("Хотите прослушать мелодию?", 10, "Light Alloy", 36)

If intReturn = btnYes Then
strSound = "F:\Soft\LAP\1.ac3"
strCommand = "F:\Soft\LAP\LA.exe" & Chr(34) & strCound & Chr(34)
objShell.Run strCommand, 0, False
WScript.Sleep 50000
Wscript.Quit
Else
MsgBox "Операция отменена пользователем.", 48, "Отмена"
Wscript.Quit
End If

Не выполняется, пишет : строка 11 ряд 4 Файл не найден, хотя все файлы есть точно - перепроверил.
И еще вопрос, каким образом можно запустить DOS-приложение скрытно - без отбражения окна и в панели задач тоже?

Добавлено:
Извините, оговорился, не "запустить" а выполнить DOS- приложение без вывода окна.
Автор: JohnSilver182
Дата сообщения: 15.02.2011 14:08
Hi

А как узнать по имени СЕТЕВОГО интерфейса , его номер ??????
Автор: ComradG
Дата сообщения: 15.02.2011 14:37
cambit
можно тогда вывод команды dir тех каталогов, что должны быть задействованы, а также скриншот ошибки. а на счет запуска DOS-приложений писалось выше:
Код: Set objShell = CreateObject("WScript.Shell")
objShell.Run "%comspec% /c [команда]", 0, False
Автор: Rush
Дата сообщения: 15.02.2011 14:56
cambit

Цитата:
strSound = "F:\Soft\LAP\1.ac3"
strCommand = "F:\Soft\LAP\LA.exe" & Chr(34) & strCound & Chr(34)

Вы никаких странностей не замечаете?
Автор: cambit
Дата сообщения: 15.02.2011 15:19
Ай! Семен Семеныч!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

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


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