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

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

   

Gavigor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ошибка: "файл не найден" - путь не правильно прописан?...

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 10:32 18-09-2009 | Исправлено: Gavigor, 10:52 18-09-2009
kolyas



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

Цитата:
 
VBScript: Регулярные выражения
CHM-Help [46КБ]

 
 это весЧь ..    
все в одном месте ..почему то яндекс даже не посоветовал обратиться к microsoft ..  
 
 

Всего записей: 137 | Зарегистр. 19-03-2007 | Отправлено: 14:06 18-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а кто посоветовал обращаться к яндексу?
http://narod.ru/disk/12530906000/Automation.chm.html - это не хуже, объемнее, но в "регулярных выражениях" есть об общих принципах.
 
я вот эту строку увидел strFullFileName = objFSO.BuildPath(objFolder, strFileName)
плэтому так написал.

Цитата:
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Path = FSO.BuildPath("C:\Program Files", "New Folder")
MsgBox Path
Path = FSO.BuildPath("C:\Program Files\", "New Folder")
MsgBox Path
Добавляет к заданному пути новое имя. Если необходимо, вставляется "\".  
 

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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:07 18-09-2009 | Исправлено: bomzzz, 16:15 18-09-2009
Gavigor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот готовый скрипт (респект alexii с http://forum.script-coding.info/profile.php?id=1844):
Замечание: найденные файлы будут копироваться не в папку скрипта, а во вновь создаваемую папку со случайным именем. Это сделано специально для упрощения и ускорения работы.
 

Код:
 
 
Option Explicit
 
Dim objFSO
Dim objDrive
Dim strFileName4Find
Dim strPath4Copy
Dim i
ReDim arrPaths(0)                                                    ' Динамический массив для найденных путей
 
 
strFileName4Find = "test.txt"                                        ' Имя файла для поиска.
 
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
 
arrPaths(LBound(arrPaths)) = False                                   ' Первый элемент массива - флаг результата поиска.
 
For Each objDrive In objFSO.Drives                                   ' Перебираем все существующие тома.
    If objDrive.DriveType = 2 Then                                   ' Том фиксированный?
        If objDrive.IsReady Then                                     ' Том готов?
            WScript.Echo "Find on drive " & objDrive.DriveLetter & ":..."
             
            FindInSubFolders objDrive.RootFolder, strFileName4Find   ' Вызываем процедуру поиска
                                                                     ' для корневой папки этого тома.
                                                                     ' Обработка вложенных папок будет
                                                                     ' вестись рекурсивно.
        End If
    End If
Next
 
If arrPaths(LBound(arrPaths)) Then                                   ' Файл(ы) был(и) найден(ы)?
    strPath4Copy = GetRandomSubFolderName( _
        objFSO.GetFile(WScript.ScriptFullName).ParentFolder)         ' Получаем случайное имя папки для копирования.
    objFSO.CreateFolder strPath4Copy                                 ' Создаём эту папку.
     
    WScript.Echo
    WScript.Echo "Found paths for file [" & strFileName4Find & "]:"
    WScript.Echo "------------------------------------------------------------"
     
    For i = LBound(arrPaths) + 1 To UBound(arrPaths)                 ' Выводим все найденные пути.
        WScript.Echo arrPaths(i)
         
        With objFSO
            .CopyFile arrPaths(i), .BuildPath(strPath4Copy, _
                .GetBaseName(arrPaths(i)) & " (" & CStr(i) & ")." & _
                .GetExtensionName(arrPaths(i)))                      ' Копируем найденные файлы в созданную папку
                                                                     ' под именем «<старое имя> (<номер>).<расширение>»
        End With
    Next
     
    WScript.Echo "------------------------------------------------------------"
    WScript.Echo
    WScript.Echo "Files was copyed to folder [" & strPath4Copy & "]."
Else
    WScript.Echo "Not found paths for file [" & strFileName4Find & "]."
End If
 
Set objFSO = Nothing
 
WScript.Quit 0
'=============================================================================
 
'=============================================================================
Sub FindInSubFolders(objFolder, strFileName)
    Dim objSubFolder
    Dim strFullFileName
     
    WScript.Echo objFolder.Path                                      ' Выводим путь обрабатываемой папки (для
                                                                     ' отладки; имеет смысл закомментировать).
     
    strFullFileName = objFSO.BuildPath(objFolder, strFileName)       ' Строим полный путь файла.
     
    If objFSO.FileExists(strFullFileName) Then                       ' Файл существует?
        ReDim Preserve arrPaths(Ubound(arrPaths) + 1)                ' Увеличиваем размер массива.
        arrPaths(LBound(arrPaths)) = True                            ' Устанавливаем флаг результата поиска.
        arrPaths(UBound(arrPaths)) = strFullFileName                 ' Запоминаем путь.
         
        WScript.Echo "Found file [" & strFileName & "] in folder [" & objFolder.Path & "]."
    End If
         
    On Error Resume Next                                             ' Обрабатываем ошибки, возможные в случае,
                                                                     ' когда нет доступа к содержимому папки
                                                                     ' (пример - «System Volume Information».
    For Each objSubFolder In objFolder.SubFolders
        If Err.Number = 0 Then                                       ' Удалось получить доступ к содержимому папки?
            FindInSubFolders objSubFolder, strFileName               ' Вызываем процедуру поиска для каждой из подпапок.
        Else                                                         ' Если не удалось —
            Err.Clear                                                ' сбрасываем состояние ошибки и движемся дальше.
            WScript.Echo "Can't enumerate subfolders for folder [" & objFolder.Path & "]."
        End If
    Next
    On Error Goto 0                                                  ' Восстанавливаем стандартную обработку ошибок
End Sub
'=============================================================================
 
'=============================================================================
' Based on: VBScript: генерация пути для временного файла
' (http://forum.script-coding.info/viewtopic.php?pid=9523#p9523)
'
Function GetRandomSubFolderName(strFolder)
    Dim strTempFolderName
     
    With objFSO
        Do
            strTempFolderName = .BuildPath(strFolder, .GetTempName)
             
            'если такая папка существует, продолжаем попытки генерации пути:
        Loop While .FolderExists(strTempFolderName)
    End With
     
    GetRandomSubFolderName = strTempFolderName
End Function
'=============================================================================
 
 

 
Всем спасибо!

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 01:52 21-09-2009 | Исправлено: Gavigor, 01:53 21-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gavigor
гавигорка поздравляю  

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 02:34 21-09-2009
Gavigor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
 
гы...я уж отчаялся...
 
есть код (отслеживает подключение флеш):
 

Код:
 
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
colDrives = Split("D E F G H I J K L M N O P Q R S T U V W X Y Z")
Set dictDrives = CreateObject("Scripting.Dictionary")
For Each Drive In colDrives
    Set Drv = FSO.GetDrive(Drive & ":")
    If Err.Number Then
        dictDrives.Add Drive & ":", False
    Else
        If Drv.DriveType = 1 And Drv.IsReady Then
            dictDrives.Add Drive & ":", True
        Else
            dictDrives.Add Drive & ":", False
        End If
    End If
    Err.Clear
Next
' Бесконечный цикл
While True
    For Each Drive In dictDrives.Keys
        Set Drv = FSO.GetDrive(Drive)
        If (Err.Number) Or (Drv.IsReady = False) Or (Drv.DriveType <> 1) Then
            Flag = False
        Else
            Flag = True
        End If
        Err.Clear
        Current = dictDrives.Item(Drive)
        If Current <> Flag Then
            If Current = False And Flag = True Then
                MsgBox "Флешка " & Drive & " ПОДКЛЮЧЕНА!" & vbCrLf & vbCrLf & vbCrLf & "Имя Флешки = " & Drv.VolumeName & vbCrLf & vbCrLf & "Файловая Система = " & Drv.FileSystem  & vbCrLf  & "Полный Объем = " & Drv.TotalSize & vbCrLf  & "Свободно = " & Drv.FreeSpace ,48, "Диспетчер Флешек"  
                'WScript.Echo "FileSystem = " & Drv.FileSystem
                'WScript.Echo "FreeSpace = " & Drv.FreeSpace
                'WScript.Echo "TotalSize = " & Drv.TotalSize
                'WScript.Echo "SerialNumber = " & Drv.SerialNumber
                'WScript.Echo "VolumeName = " & Drv.VolumeName
            Else
                set oShell = WScript.CreateObject ("WScript.Shell")
oShell.Popup "Флешка " & Drive & " ОТКЛЮЧЕНА!", 3, "Диспетчер Флешек", 48
            End If
            dictDrives.Item(Drive) = Flag
        End If
    Next
    WScript.Sleep 1000
Wend
 
 

 
-как бы переделать чтобы свободный/полный объем отображался в Мегабайтах?
-можно ли после вывода информ окна , "натравить Каспера" на флешку?

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 02:53 21-09-2009 | Исправлено: Gavigor, 02:54 21-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
паделить на 1024 кб или еще раз на 1024 байты.
если буква флешки не меняется и знать командную строку касперского можно, если меняет наверно будут праплемки - но решаемые скорее всего.
тут походу это и делается ("D E F G H I J K L M N O P Q R S T U V W X Y Z")  

Цитата:
 
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("C:\Program Files\Kasperskii.exe моя команда касперскому", 1, True)
 
вот такой код запускает программу
Значение     Описание
0     Запуск в скрытом виде
1     Обычный размер окна, если окно свернуто или развернуто на весь экран, то ему возвращается исходный вид и положение на экране
2     Запуск в свернутом виде
3     Развернутое на весь экран
4     Запуск в обычном размере, в неактивном состоянии (без фокуса)
8     Обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение
 
может принимать значение true или false, указывающее, следует ли сценарию дожидаться окончания выполнения запущенного приложения. true - выполнение сценария приостанавливается до тех пор, пока не будет закрыто запущенное приложение. false - не дожидаться.
 
если использовать RetCode = этой переменной присвоится код выхода (ошибки) из вызываемой программы
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 03:26 21-09-2009 | Исправлено: bomzzz, 03:31 21-09-2009
Gavigor



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

Цитата:
паделить на 1024 кб или еще раз на 1024 байты.

знать бы в каком месте кода делить....
 

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 03:43 21-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
"Полный Объем = " & Drv.TotalSize
вот в етам.  
гавигорка, ты такую работу провернул по наитию - надо было простые задачи порешать и постепенно к сложным прийти.
 
result=100
result=result/10
MsgBox "полный объем"& result/10  
 
   
 
"Полный Объем = " & Drv.TotalSize/1048576 & "мб"
если в байтах, что скорее всего

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 03:52 21-09-2009 | Исправлено: bomzzz, 04:04 21-09-2009
Gavigor



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

Цитата:
 
"Полный Объем = " & Drv.TotalSize/1048576 & "мб"

 
-тут все ок!
 
осталось запустить окно каспера с проверкой....

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 04:44 21-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну в конец скрипта прямо допиши код. командную строку каспера на сайте смотри его или в описании
 
код просматрел там нигде нет строки Wscript.Quit то есть он середины не выхоит значит дописаное после всего скрипа должно выполняца
 
ну тут не очевидно - вроде код перебирается разные тома. не совсем понятно когда он проверять то должен - наверно внутри какого цикла надо если несколько томов проверяется

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 05:01 21-09-2009 | Исправлено: bomzzz, 05:16 21-09-2009
kolyas



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

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

привычка =)..
 
в общем накатал скрипт который начиная с определенного каталога и во всех вложенных каталогах в файлах с заданными расширениями меняет подходящие строки на  нужное человеку..  
те программы которые я видел не могли заменять массово по регулярным выражениям.
была задача узнать порядок ображения к функциям в cms Drupal (оказывается чтобы показать текст человеку запускается ~ 399 функций).
Как работает скрипт
ищем: function[\s]+([\w]+\(.*?\))[\s]*{
даписываем после { текст - в данном случае свою функцию php, в которой ведется подсчет обращений внутри cms.
http://narod.ru/disk/13359254000/finish_comment.vbs.html
 
скрипт не оптимизирован .. думаю есть более лучшие вариант исполнения ..  
700 файлов изменил за 1-2 минуты (core e8300, 8ram,win7-64)

Всего записей: 137 | Зарегистр. 19-03-2007 | Отправлено: 11:52 21-09-2009 | Исправлено: kolyas, 12:59 21-09-2009
SANIOK_AV



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!!!
а есть ли возможность зашифровать VBScript?

Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 16:57 22-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть. но нельзя быть таким жадным

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:12 22-09-2009
SANIOK_AV



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
)))
особенно когда в скрипте пароли прсутствуют...
 
ну как это можно сделать?

Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 17:48 22-09-2009 | Исправлено: SANIOK_AV, 17:49 22-09-2009
Integer27h



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

Цитата:
Доброго времени суток!!!  
а есть ли возможность зашифровать VBScript?  

PrimalScript. В этом редакторе есть ScriptPackager.

Всего записей: 201 | Зарегистр. 11-09-2006 | Отправлено: 18:35 22-09-2009
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SANIOK_AV
Стандартный инструмент Script Encoder. Правда расшифровщики имеются...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 19:27 22-09-2009
bomzzz



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

Цитата:
 
http://www.abyssmedia.com/scriptcryptor/ вот этот самый лучший и корректный, с ключиком легко найти в инете, пользуюсь им как редактором - есть подсветка команд, скрипты вообще отключены на компе. минус - большие файлы получаются 180 кб, второй минус - на сконвертированные файлы ругаются антивирусы, касперскому наябедничал в канторку - он больше не ругается.
 
http://www.vbs2exe.com/  - вот тут есть кодировка , но тут часть команд неизвестна конвертеру и возможно переписывать скрипт придется. файлы получаются всего 10 кб с хвостиком, все известные мне ограничения на некоторые команды мне удалось обойти через ж. бисплантная. не выдает сообщений об ошибках - могут возникнуть сложности в отладке.
 
http://www.xneat.com/application-builder/ от этого не смог ключик найти и чета он косячный какой-та. посмотрел не пользуюсь.
 

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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 00:01 23-09-2009 | Исправлено: bomzzz, 07:41 23-09-2009
SANIOK_AV



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers
bomzzz
 
Спасибо!!!
 
а что скажете по поводу ExeScript?
 
как понять:

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


Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 11:21 23-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а вот так
   
екзескрип пробовал - дерьмо полное, екзешники с отключенными сриптами не работают

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:10 23-09-2009 | Исправлено: bomzzz, 12:12 23-09-2009
   

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