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

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

Автор: SANIOK_AV
Дата сообщения: 23.09.2009 11:17

Цитата:
а вот так

то есть если в ОС отключен Script Host , то скомпилированый scriptcryptor'ом екзешники отработают?
Автор: bomzzz
Дата сообщения: 23.09.2009 11:17
антиспай где то в реестре значение меняет могу посмотреть если интересно

скрипт криптором и вбстоекзе конечно работают. это же екзешники полноценные

Добавлено:
Download.exe
вот для примера прога которая файл загружает, или страницу.
Автор: SANIOK_AV
Дата сообщения: 23.09.2009 11:23
mozers

Цитата:
кто кроме как на VBS/JS писать не умеет

я и на них не умею... самый минимум только...даж минимумом это не назовёшь...(((
bomzzz

Цитата:
могу посмотреть если интересно

конечно интересно!

Цитата:
скрипт криптором и вбстоекзе конечно работают. это же екзешники полноценные

понял, спасибо!
Автор: bomzzz
Дата сообщения: 23.09.2009 11:25
щас пасматру - проще антиспай скачать, чем в реестр лазить в ручную менять

Добавлено:
[#][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings]
[-]"Enabled" = $00000000 (0)

Добавлено:
если я правельна понял надо просто такой параметр добавить

Цитата:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings]
"Enabled"=dword:00000000
Автор: SANIOK_AV
Дата сообщения: 23.09.2009 11:39
bomzzz

спасибо...

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

ага...
по умолчанию его нет...
тока вот не понял откуда он у меня со значением 1 взялся...)))
Автор: bomzzz
Дата сообщения: 23.09.2009 11:44
значит значение надо на нолик поменять я чета не понял как обозначается что. я делал снимок до и после и разницу изучал с реестра
два файлика реестра REG с нуликом и единичкой надо сделать и менять.
Автор: SANIOK_AV
Дата сообщения: 23.09.2009 11:51
bomzzz

Цитата:
значит значение надо на нолик поменять

ну эт понятно...
я не понял откуда у меня вобще этот параметр в реестре взялся, если его по умолчанию нету...

Цитата:
я чета не понял как обозначается что

судя по тому что скрипты у меня отрабатывают:
0 - отключить
1 - включить
Автор: bomzzz
Дата сообщения: 23.09.2009 11:58
я имел ввиду что тут набор значений у программы которая снимки делает и сравнивает
[#]
[-]

мне показалось что это означает добавить значение
Автор: SANIOK_AV
Дата сообщения: 23.09.2009 12:03
bomzzz

Цитата:
у программы которая снимки делает

а чем пользуетесь?
регшот в таких случаях пишет:

----------------------------------
Новые параметры:1
----------------------------------
HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings\123: "1"
Автор: bomzzz
Дата сообщения: 23.09.2009 12:09
я Ashampoo Uninstaler-ом
ScriptEnable.exe
вот и прога. она просто если выключено включает и наоборот
сообщения добавил для определенности - теперь нормально получилось. многовато 11 кб для такого дела

Автор: SANIOK_AV
Дата сообщения: 23.09.2009 12:59

Цитата:
вот и прога. она просто если выключено включает и наоборот

скомпилённая из вбс или батника?
Автор: bomzzz
Дата сообщения: 23.09.2009 13:02
из вбс конечно.
Автор: Starley25
Дата сообщения: 23.09.2009 15:05
Господа!
Нужен скрипт по подсчету количества строк в текстовом файле?
Точнее нужен скрипт который бы выбирал из файла последнюю строку.
Автор: SANIOK_AV
Дата сообщения: 23.09.2009 15:36
Подскажите пожалуйста, как сделать чтоб при отработке скрипта не появлялось цмд-шное окно?
Автор: bomzzz
Дата сообщения: 23.09.2009 15:39
а оно че появляется? в екзешник ковертни
или вызови скрипт в скрытом режиме из самого срипта

если скрипт запускается с пустой командной строкой, то он запускает сам себя в скрытом режиме с командной строкой не равной нулю
Автор: mozers
Дата сообщения: 23.09.2009 16:02
SANIOK_AV
Цитата:
WScript //H:CScript    Стандартный сервер сценариев заменяется на CScript.exe
WScript //H:WScript    Стандартный сервер сценариев заменяется на WScript.exe (по умолчанию)
Консольное окно - это окно CScript.

bomzzz
Цитата:
в екзешник ковертни
Да... Ну и советы...

Цитата:
если скрипт запускается с пустой командной строкой, то он запускает сам себя в скрытом режиме с командной строкой не равной нулю
Ты сам то понял что сказал?
Автор: bomzzz
Дата сообщения: 23.09.2009 16:13
конечно понял

Цитата:

CommandLine = Wscript.Arguments.Item(0)
If CommandLine = "" Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run("MyScript.vbs 1", 0, False)
Wscript.Quit
End If
.............код срипа MyScript.vbs..............


даже так WshShell.Run(WScript.Name & " 1", 0, False)
Автор: mozers
Дата сообщения: 23.09.2009 16:25

Цитата:
RetCode = WshShell.Run("MyScript.vbs 1", 0, False)
Из одного скрипта запускать другой? А смысл? Кроме того RetCode будет случайным, поскольку стоит False.
Автор: bomzzz
Дата сообщения: 23.09.2009 16:30
WshShell.Run(WScript.Name & " 1", 0, False)
рет код скопировалось из начала друго скрипа оно тут не нужно. а в vbstoexe команда wshellRun не работает если строку не начать с retcode =. так как у меня скрипты отключены и я никогда не запускал скрипты на компе мои коды могут быть нерабочими.
Автор: Starley25
Дата сообщения: 23.09.2009 17:00
Вопрос по выделению последней строки в текстовом файле очень сложен или как?
Автор: bomzzz
Дата сообщения: 23.09.2009 17:03
нет не сложен - читай файл построчно до конца пока он не кончится, когда кончится вот она твоя последняя строка.
Автор: Starley25
Дата сообщения: 23.09.2009 17:08
Ситуация несколько сложнее из достаточно увесистого текстового файла необходимо вычленить последнюю строку и сраввнить ее со значением и уже в зависимости от его (значения) предпринять те или иные действия по условию.
Автор: bomzzz
Дата сообщения: 23.09.2009 17:15
думаю компьютер справится с достаточно увесистым файлом без труда
Автор: SANIOK_AV
Дата сообщения: 23.09.2009 17:42
mozers

Цитата:
Цитата:WScript //H:CScript Стандартный сервер сценариев заменяется на CScript.exe
WScript //H:WScript Стандартный сервер сценариев заменяется на WScript.exe (по умолчанию)

Консольное окно - это окно CScript.


ну а как мне вызывать мой скрипт?


Цитата:
WScript //H:CScript имя скрипта.vbs

?

bomzzz

Цитата:
CommandLine = Wscript.Arguments.Item(0)
If CommandLine = "" Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run("MyScript.vbs 1", 0, False)
Wscript.Quit
End If
.............код срипа MyScript.vbs..............


как будет выглядеть мой скрипт полностью
если текст изначального скрипта таков:


Цитата:
dim Wsh, AppName
Set Wsh = Wscript.CreateObject("Wscript.Shell")
AppName="runas /profile /user:admin 123.bat"
Wsh.Run AppName
WScript.Sleep 4000
wsh.appActivate AppName
Wsh.SendKeys "qwerty~"


или это будут 2 отдельных файла?

mozers
bomzzz

P.S.: Прошу прощения за наивные вопросы...))

P.P.S.: или это runas это окно выводит...уже сам запутался....((
Автор: bomzzz
Дата сообщения: 23.09.2009 17:47
просто дописываешь после шапки что угодно. объявлять объекты по два раза можно одни и теже, если имена переменных совпадут тоже уже ничего не напортится. консольное окно мигнет в самом начале а потом его не будет. лучше в екзешник конвертнуть


WshShell.Run(WScript.Name & " 1", 0, False) лучше так, чтоб не быть привязанным к имени файла
Автор: bomzzz
Дата сообщения: 24.09.2009 00:14

Цитата:

Run(<Command>,<WindowStyle>,<WaitOnReturn>)
Назначение:
Создаёт новый независимый процесс, который запускает заданное приложение.
Параметры:
<Command> - строка, командная строка запуска приложения.
<WindowStyle> - необязательный, число. Определяет вид окна запускаемого приложения. Некоторые возможные значения:
0 Запуск в скрытом виде
1 - Активизирует и отображает окно.
2 - Активизирует окно и отображает его в свёрнутом виде.
3 - Активизирует окно и отображает его в максимизированном виде.
4 Запуск в обычном размере, в неактивном состоянии (без фокуса)
8 Обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение
<WaitOnReturn> - необязательный, булево (число). True - сценарий возобновит работу только после завершения вызванного процесса. False (по умолчанию) - управление передаётся сразу обратно в сценарий.
Описание:
Если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль.
Пример:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "explorer /e,/root,""C:\Program Files"""
Другой пример:
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode


возможно и не будет работать, я действую в логике исполняемых екзе программ. возможно при запуске скрипта в процессах отражается не скрипт а исполняемый его компонент виндовс, тогда надо прогу подкорректировать на запуск этого компонента с указанием запускаемого скрипта. для такой небольшой програмки (скрипта) нет смысла пользоваться таким приемом наверно. гораздо проще сконвертировать в екзе файл, а скрипты лучше вообще запретить.
алгоритм примерно такой - при апуске крипта проверяется командная строка,
CommandLine = Wscript.Arguments.Item(0)
If CommandLine = "" Then
это то что мы пишем в ярлыке после имени программы (c:\MyProg.exe MyCommand) не могу сообразить какой пример был бы всем понятен и близок. если эта строка пуста - скрипт запустили ручками с рабочего стола например - то все выполнение сводится к самоперезапуску, но уже с непустой командной строкой и в скрытом режиме, на чем выполнение прекращается.
WshShell.Run(WScript.Name & " 1", 0, False)
Wscript.Quit
будучи же запущен с командной строкой - осуществляется переход к исполнению кода скрипта.
WScript.Name - это имя самого скрипта


Цитата:

When you use the CScript //H or WScript //H command to change the default script host on a Windows XP-based computer, the operation may not work as expected. For example, if you use the CScript //H:CScript command, WScript is set as the default script host instead of CScript.

You may experience this issue in the following scenarios.
http://support.microsoft.com/kb/952033

вот в чем дело..... разберись вот с этим. тогда окна похоже вообще никогда не будет


я бы даже вот тут поробовал это поменять
csscript консоль выдает, а wscript нет.
C:\WINDOWS\system32\cscript.exe
C:\WINDOWS\system32\wscript.exe
Автор: mozers
Дата сообщения: 24.09.2009 08:41
SANIOK_AV
Цитата:
текст изначального скрипта таков:
Код: dim Wsh, AppName
Set Wsh = Wscript.CreateObject("Wscript.Shell")
AppName="runas /profile /user:admin 123.bat"
Wsh.Run AppName
WScript.Sleep 4000
wsh.appActivate AppName
Wsh.SendKeys "qwerty~"
Автор: bomzzz
Дата сообщения: 24.09.2009 10:05


с точки зрения безопасности вбс срипты лучше все таки отключить, к тому же от них никакого толку нету. лично у меня антивируса нету, поэтому все дыры которые можно заткнуты.
для управления мышью и посылки клавиш - много всячиских программ Макросов. у которых в том числе есть ожидание появления запущенного окна - что делает более надежными эти манипуляции.
xstarter помоему это умеет.
наверно это (ожидание) можно реализовать и в скрипе.
Автор: SANIOK_AV
Дата сообщения: 24.09.2009 10:23
bomzzz

Цитата:
разберись вот с этим. тогда окна похоже вообще никогда не будет

дело в том что я скрипт собираюсь не только на своей машине запускать...
mozers

Цитата:
У runas есть ключик /savecred с помощью которого можно сохранить однажды набранный пароль и не вводить его каждый раз заново.

к сожалению вариант с сейвкредом не подходит в моей ситуации...

Цитата:
помощью планировщика (Shedule)

тоже не пойдёт...((

Цитата:
или WMI

как?
Автор: bomzzz
Дата сообщения: 24.09.2009 10:27

Цитата:

ECHO OFF
COLOR 9F
CLS
WMIC /?
PAUSE

вот такой батник запусти, а потом по ключам дальше ройся. так дела с вми обстоят. вот хорошие статьи , я сам еще только начал почитывать, но уже кучу полезного нарыл.
http://www.intuit.ru/department/os/compromtwin/12/1.html
http://www.script-coding.info/index.html
вот вчера меня мозерс подучил как бинарную инфу в реестр записывать на вбс скрипах с помощью вми

в настройки биос лучше не лазить без детального изучения прикладного материала

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

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


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