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

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

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

Всего записей: 203 | Зарегистр. 26-12-2014 | Отправлено: 14:56 27-02-2015 | Исправлено: Sotus, 17:01 28-02-2015
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У vbs скриптов можно задать имя окна, аналогично команде title в батниках?

Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 11:47 03-03-2015
RomanoSadovnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
king_stiven
 
I Only read, only x32
GetOpenWindowTitles(ATitles)

Код:
 
Set jsS = CreateObject("jsShell.Ops")
Set jsSWins = jsS.GetOpenWindows
Ret = jsSWins.GetOpenWindowTitles(ARet)
If Ret > 0 then
    For i = 0 to Ret - 1
        sList = sList & ARet(i) & vbCrLf
    Next
End If
WSCript.StdOut.WriteLine sList
 

 
1) Win7 - x64
2) _http://www.jsware.net/jsware/zips/jsshell.zip
3) [jsShell Methods.txt, jsShell Typelib dump.txt, khook.dll], jsShell.dll -> C:\Windows\SysWOW64\
4) cmd:
cd C:\Windows\SysWOW64
regsvr32 C:\Windows\SysWOW64\jsShell.dll
5) C:\Windows\SysWOW64\cscript.exe [path]\jsshell\demo scripts\windows.vbs
 
II RW, x32/x64

Код:
 
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell")
thisDir = WshShell.CurrentDirectory & "\"
Set xWSO = WScript.CreateObject("Scripting.WindowSystemObjectExtensions")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set file = FSO.OpenTextFile(thisDir & "windows.csv", 2, True)
Set Windows = xWSO.EnumWindows()
For Each Window In Windows
    file.WriteLine Window.Text & ";" & Window.ClassName
Next
file.Close
 

_http://www.veretennikov.org/WSO/Data/wso.exe
 
Пояснение. Первый вариант даёт все открытые окна. Второй - все существующие окна, и по мне, много лишнего. То есть первым вариантом получать, вторым менять. Либо копать в сторону dynwrapx.

Всего записей: 47 | Зарегистр. 23-10-2010 | Отправлено: 12:46 06-03-2015 | Исправлено: RomanoSadovnik, 16:44 06-03-2015
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я имел в виду, имеют ли VBS ки окно  с именем, как батники, можно ли из самого скрипта задавать имя своего окна.

Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 18:27 09-03-2015
RomanoSadovnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
king_stiven
Я извращался так:
start.bat

Код:
 
cscript //H:CScript //Nologo //S
start "my_title" /I secondary.bat
 

secondary.bat

Код:
 
@echo Off
color 0A
prompt $T$H$H$H$G
cscript.exe myscript.wsf
 

Всего записей: 47 | Зарегистр. 23-10-2010 | Отправлено: 12:19 12-03-2015
msmih



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Буду признателен за подсказку. Мои познания окончились.
Есть строка в ней нужно подсчитать количество одного и того слова. Например в строке 5 раз встречается слово "смех". Как подсчитать?

Всего записей: 1195 | Зарегистр. 29-01-2006 | Отправлено: 18:58 15-03-2015
Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
msmih
делим строку на слова (Split - Возвращает массив строк, полученных в результате разбиения строки на подстроки.).
массив строк в цикле (For) сравниваем (If) с словом "смех". если совпало плюсуем счётчик.
вывод результата (Echo): нашли "счётчик" слов 'смех' .
 

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 23:33 15-03-2015
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть задача очищать при загрузке папку temp. Написал такой скрипт, посмотрите насколько верно сделал.  
Dim ff
Set ff= CreateObject("WScript.Shell")
path =ff.ExpandEnvironmentStrings("%Temp%")
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.folderexists(path) Then
Set folder = fso.GetFolder(path)
Set cof = folder.Files
For Each file in cof
On Error Resume Next
file.Delete
Next
Set fof = folder.SubFolders
For Each SubFolders in fof
On Error Resume Next
fso.DeleteFolder(SubFolders)
Next
End if

Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 10:46 25-03-2015
msmih



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос не очень в тему, но буду признателен за ответ.
Подскажите чем лучше откомпилировать vbs в exe. Интересует бесплатное решение и без сюрприз в конечном продукте.

Всего записей: 1195 | Зарегистр. 29-01-2006 | Отправлено: 19:21 20-04-2015
ptr73

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niko7
Проверяй работу на нестандартных, скрытых и системных файлах и папках.
 
msmih
попробуй околоофициальный способ
_https://social.technet.microsoft.com/Forums/scriptcenter/en-US/c0e7575a-6983-453b-8959-c6d889ccc01f/stepbystep-to-wrap-a-vbs-into-an-exe?forum=ITCG

Всего записей: 253 | Зарегистр. 03-07-2007 | Отправлено: 06:39 23-04-2015
YURETS777



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

Код:
 
Function ReadBinaryFile(filename)
    Dim bArr
    With CreateObject("ADODB.Stream")
        .Type = 1 'adTypeBinary
        .Open
        .LoadFromFile filename
        bArr = .Read
        .Close
        ReadBinaryFile = bArr
    End With
End Function
 

 
Работает прекрасно, но на небольших файлах.
Если размер файла больше 256 мегабайт то :
"Ошибка выполнения Microsoft VBScript: Недостаточно памяти: 'bArr'"
 
Вопрос, как его увеличить, хотя бы до 512 мег ?

Всего записей: 2162 | Зарегистр. 29-04-2005 | Отправлено: 10:31 24-04-2015
ptr73

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
попробовать считывать напрямую в ReadBinaryFile = .Read
а лучше вообще без функции
это ж куча копий объектов в памяти, каждый по 256 мегабайт
нужно пересматривать архитектуру программы и не грузить всё в память

Всего записей: 253 | Зарегистр. 03-07-2007 | Отправлено: 20:00 24-04-2015
artclub

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
 
Есть возможность через Active Directory настроить так, чтоб после перезагрузки комп перешел в состояние получения IP автоматом?
 
Создал  file.bat , туда скопировал  
netsh interface ip set address "lan0" dhcp  
netsh interface ip set dns "lan0" dhcp  
netsh interface ip set wins "lan0" dhcp  
   
 
Потом поместил этот файл как показано на этом видео https://www.youtube.com/watch?v=UbbZT3mLuH4
 Проверил, но все без изменений  
 
 
Как сделать так чтоб скрипт сработал на нужную группу?

Всего записей: 407 | Зарегистр. 07-02-2008 | Отправлено: 08:42 04-05-2015
fff222fffy1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу наладить взаимодействие hta-приложения и проводника (перетаскивание файлов туда-обратно).
Не подскажите, в какую сторону копать?

Всего записей: 30 | Зарегистр. 07-01-2010 | Отправлено: 21:45 04-05-2015
niko7

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите почему не работает. Ос win 8.1.  
 
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "NET TIME \\192.168.1.177 /SET /Y", 0 , true
 
Для теста запускаю cmd от имени администратора, команда NET TIME \\192.168.1.177 /SET /Y время изменяет

Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 14:45 26-05-2015 | Исправлено: niko7, 14:46 26-05-2015
Walkman78

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тема не умерла? Подскажите по скрипту...
При входе в домен у пользователя выскакивает сообщение (объявление). Текст берется из текстового файла. Но количество символов ограничено 1024.... Как можно исправить?
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("d:\1.txt")
Set TextStream = File.OpenAsTextStream(1)
MsgBox (TextStream.Read(4096))
TextStream.Close

Всего записей: 67 | Зарегистр. 22-02-2006 | Отправлено: 13:00 05-06-2015
msmih



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как с помощью vbs проверить разрядность установленного ms office?

Всего записей: 1195 | Зарегистр. 29-01-2006 | Отправлено: 06:52 10-06-2015
fff222fffy1

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

Всего записей: 30 | Зарегистр. 07-01-2010 | Отправлено: 22:53 12-06-2015
idiMAN

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

Цитата:
как с помощью vbs проверить разрядность установленного ms office?

 
Я так понимаю, что интересует разрядность конкретной версии ms office?
 
На примере Office 2010:
 

Код:
 
Set oShell = CreateObject("WScript.Shell")
 
With WScript.CreateObject("Scripting.FileSystemObject")
    If oShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") = "x86" Then
        If .FileExists("C:\Program Files\Microsoft Office\Office14\OSPP.VBS") Then  
            WScript.Echo "Installed Office 2010 x86"
        Else
            WScript.Echo "Office 2010 Not Installed"
        End If
    Else
        If .FileExists("C:\Program Files\Microsoft Office\Office14\OSPP.VBS") Then  
            WScript.Echo "Installed Office 2010 x64"
        Else
            If .FileExists("C:\Program Files (x86)\Microsoft Office\Office14\OSPP.VBS") Then  
                WScript.Echo "Installed Office 2010 x86"
            Else
                WScript.Echo "Office 2010 Not Installed"
            End If
        End If
    End If
End With
 
WScript.Quit 0
 

Всего записей: 466 | Зарегистр. 05-05-2003 | Отправлено: 09:55 15-06-2015
fff222fffy1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не знаю, решаема ли эта задача на VBS, но мало ли...
Ситуация такова. Есть сервак. На нём на двух разных дисках две сетевых папки.
Время от времени существует необходимость из одной папки в другую переносить некие данные, а затем в первую из второй - делать символьную ссылку на новое расположение.
Затык случился на символьных ссылках. На другом сервере была отработана технология, когда ссылка делалась на нём локально (mklink /j) и потом она прекрасно виделась и работала через сеть.
Однако на текущем сервере какая-то настройка в правах не даёт переходить по сети по таким сделаным локально ссылкам. Права все перерыли, ничего не получается.
Перерыв все возможности, попробовал на своём компе, на котором установлен Link Shell Extension, сделать ссылку вручную (контекстное меню проводника) по сети. И сделать junction получилось, и получилось перейти по ней, то есть всё работает. Но. Как автоматизировать процесс? С сетевыми путями mklink не работает. Порывшись в сети, нашёл такую статью: http://hex.pp.ua/symlink-winapi-functions.php , но мало что в ней понял. Может мне кто-нибудь помочь, если это вообще возможно?
Спасибо.

Всего записей: 30 | Зарегистр. 07-01-2010 | Отправлено: 22:10 13-07-2015 | Исправлено: fff222fffy1, 22:11 13-07-2015
Открыть новую тему     Написать ответ в эту тему

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