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

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

   

Rush

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

Цитата:
Во-первых, как сделать так, что не было жёсткой привязки к букве диска и папке?

Т. е. не хочется руками править внутри? Можно сделать и так, что будет удалять начиная с папки со скриптом. Или можно сделать пункт в контекстном меню - выделяете папку и она обрабатывается (с подпапками, конечно). Или просто из командной строки.

Цитата:
Во-вторых, не очень понятно с сообщением "Скрипт отработал с ошибками." Т.е. логика-то понятна, а вот работа...  
Поясню конкретной ситуацией - на примере. Имеем раздел с папкой "z:\folder", где в подкаталогах ("z:\folder\1", "z:\folder\2", "z:\folder\2\1" и т.п.) имеются необходимые к удалению файлы *.bak. Меняем в скрипте strFolderPath = "z:\folder" на strFolderPath = "z:\" , т.е. запускаем удаление с корня раздела.  
Выдаётся сообщение "Скрипт отработал с ошибками." что в общем-то логично.

Совсем не логично. Если запускать с корня скрипт должен удалять на всем диске, Вы же хотели, чтобы обрабатывались подпапки, а у корня все папки на диске - подпапки.
Но дело не в этом, а в ошибках. Я вызвать ошибки у себя не смог. Закомментируйте строку On Error Resume Next, вот так:

Код:
'On Error Resume Next

И покажите какую ошибку выдаст обработчик.

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



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

Цитата:
Т. е. не хочется руками править внутри?

Не то, чтобы не хочется... Просто хочется положить этот скрипт в папку, к которой прописан %PATH%, и вызывать его (пользуюсь FAR'ом) по имени из нужного мне каталога...

Цитата:
Или можно сделать пункт в контекстном меню - выделяете папку и она обрабатывается (с подпапками, конечно).

Нет, этого не надо.

Цитата:
Или просто из командной строки.

А вот это как раз то .

Цитата:
Совсем не логично. Если запускать с корня скрипт должен удалять на всем диске,

Он и удаляет, но при этом пишет ошибку ("Скрипт отработал с ошибками.")
Так разве должно быть?

Цитата:
Вы же хотели, чтобы обрабатывались подпапки, а у корня все папки на диске - подпапки.

Всё правильно, именно это и надо.

Цитата:
Закомментируйте строку On Error Resume Next,

Пишет, "Разрешение отклонено", код 800А0046. Конкретно притензии к вот этой строке:
For Each SubFolderItem In objFolder.SubFolders
Кстати, файлы не удалились.
 

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 12:32 21-02-2011
Rush

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

Цитата:
Пишет, "Разрешение отклонено", код 800А0046. Конкретно притензии к вот этой строке:  
For Each SubFolderItem In objFolder.SubFolders  
Кстати, файлы не удалились.

Нет доступа к папке. И скрипт закончил работу по получении ошибки. Скорее всего папка "System Volume Information".
Переделал - теперь будет работать без сбоев, я надеюсь.
Подробнее...

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:50 21-02-2011
Leon_Ko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rush
Что-то у меня опять не выходит. Я так понимаю, расширение удаляемых файлов (в примере - .bak) в скрипте в явном виде нигде не прописанно? Потому, как удаляемый файл у меня может быть не только .bak - в моём, конкретном случае, это сейчас .wav .
В общем, выдаётся ошибка: "Индекс выходит за пределы допустимого диапазоны", код ошибки "800А0009". Может, чего не так делаю? А! Допёрло! То, что я написал чуть ниже - очень "длинная" командная строка, сводящая на нет (для меня) всё преимущество использования данного скрипта.
Я запускал так:
delext.vbs /s *.wav
А надо было так:
delext.vbs /s "h:\" "*.wav"
Всё работает, беру свои слова взад.
Тогда... Просьба! Командная строка, конечно, хорошо, но... Чрезмерное обилие параметров в данном случае... В общем, нужно просто запуск delext.vbs и ВСЁ! А уже взависимости от места, из которого вызывается этот самый delext.vbs и будут выполняться требуемые деяния. Я ж знаю, какую ф-цию он несёт. Т.е. расширение удаляемых файлов можно заложить и жёстко в самом скрипте, т.к. эта ф-ция постоянна. А вот место, откуда скрипт запускается, может и видоизменяться в широких пределах - на разных компах буквы разделов и названия папок разные...

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 14:21 21-02-2011
Rush

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

Цитата:
В общем, нужно просто запуск delext.vbs и ВСЁ!

Ну тогда можно сделать так - бросил файл скрипта в нужную папку, запустил и все. И параметр отключения подпапок можно убрать.
Но лучше бы мне знать каким образом Вы собираетесь его использовать - на кнопку файл-менеджера повесить или еще каким образом. Почему смущает пара параметров?

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 15:16 21-02-2011
Leon_Ko



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

Цитата:
Ну тогда можно сделать так - бросил файл скрипта в нужную папку, запустил и все.

Именно так. Только путь к этой папке (у меня она общая на всех компах) прописан в %Path% - системных переменных. Поэтому нужный мне скрипт (по имени) нетрудно вызвать из любого места и любого раздела.

Цитата:
И параметр отключения подпапок можно убрать.

Ну да. Мне это не нужно.

Цитата:
Но лучше бы мне знать каким образом Вы собираетесь его использовать - на кнопку файл-менеджера повесить или еще каким образом.

Просто вызывать из консоли. Точнее, из FAR'а.

Цитата:
Почему смущает пара параметров?

Потому, что набрать "delext" (можно даже опустить расширение, ОС сама его найдёт) гораздо проще и быстрее, чем набирать всю командную строчку .
А поскольку присутствует некая специфика - удаляются файлы определенного расширения, то можно сделать и 2-3 дубля того же скрипта...
В общем, мне удобно именно так

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 15:32 21-02-2011
Rush

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

Цитата:
Только путь к этой папке (у меня она общая на всех компах) прописан в %Path% - системных переменных. Поэтому нужный мне скрипт (по имени) нетрудно вызвать из любого места и любого раздела.

Вы в %path% прописали папку, в которой надо удалять файлы? И туда же хотите скрипт положить?
Все гораздо проще - можно создать ярлык, в нем прописать нужную комстроку и положить его куда надо. И вызывать из консоли его. Его запуск ничем не отличается от запуска скрипта. И таких ярлыков можно наделать сколько угодно.
Это как вариант пока. Я сейчас отключаюсь, если надобность останется - завтра сделаю.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 15:53 21-02-2011
Leon_Ko



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

Цитата:
Вы в %path% прописали папку, в которой надо удалять файлы?

Нет. У меня просто есть набор своих "вкусностей", кои и прописаны в %path%. И скрипт(ы), которые я использую, находятся именно там. А уже вызываются (консольно, через FAR) из любого места.

Цитата:
Все гораздо проще - можно создать ярлык, в нем прописать нужную комстроку и положить его куда надо.

Я не пользую ярлыков . Практически. Ещё со времён ДОС'а. Нет, понятно, что есть определённый набор программ, которые запускать таким образом - просто садомазохизм. Но для конкретных задач, мне нужно именно так, как я описал выше...

Цитата:
И вызывать из консоли его. Его запуск ничем не отличается от запуска скрипта. И таких ярлыков можно наделать сколько угодно.

Это понятно, можно и .bat (виноват, .cmd) - файлов написать для такого случая. Хотя это и достаточно архаично, но работать-то будет. Но хотелось бы всё-таки получить результат более "прямой" форме.

Цитата:
Это как вариант пока. Я сейчас отключаюсь, если надобность останется - завтра сделаю.

Хорошо, я подожду. Заранее спасибо!

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 16:04 21-02-2011
OSADJAN

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lДоброго здоровья.
В VBS недавно...Вопрос по аргументам. Например:

Код:
Option Explicit
Dim i,Arg,objArgs,s
 Set objArgs = WScript.Arguments  
For Each Arg In objArgs
  s=s & Arg & vbCrLf  
Next
 WScript.Echo s  
 

Если скинуть на скрипт файлы(только, что проверял для 124), то он отзывается на все.
А если прописать скрипт в контекстное меню, то работает максимум для 22-х файлов.
Подскажите, пожалуйста. в чём причина и если можно, то как её побороть.
В реестре скрипт с параметром - %1.
Буду признателен за любую помощь. Спасибо.

Всего записей: 18 | Зарегистр. 12-02-2011 | Отправлено: 02:46 22-02-2011 | Исправлено: OSADJAN, 02:48 22-02-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Leon_Ko
Мы пришли к тому, с чего начали.

Цитата:
нужно просто запуск delext.vbs и ВСЁ! А уже взависимости от места, из которого вызывается этот самый delext.vbs и будут выполняться требуемые деяния..


Цитата:
А вот место, откуда скрипт запускается, может и видоизменяться в широких пределах - на разных компах буквы разделов и названия папок разные...


Цитата:
Только путь к этой папке (у меня она общая на всех компах) прописан в %Path% - системных переменных. Поэтому нужный мне скрипт (по имени) нетрудно вызвать из любого места и любого раздела.

Может я не понимаю Вашей терминологии? Что такое "место, откуда скрипт запускается"? Запускается - это место, где лежит сам скрипт. Но Вы-то его хотите положить в определенную папку - "путь к этой папке (у меня она общая на всех компах) прописан в %Path%". И в то же время пишете - "место, откуда скрипт запускается, может и видоизменяться в широких пределах".
Вы понимаете, что одно противоречит другому? Или скрипт лежит (и запускается, соответственно) из определенной папки, или в разных местах. Но, в любом случае, ему нужно указать с какой папкой работать. Тут есть только такие возможности:
1) Жестко указать в скрипте путь, где будет происходить удаление.
2) Записывать путь в комстроке.
3) Прописать удаление в папке, куда положен сам скрипт.
4) Записать относительный путь от папки со скриптом. Как пример: подняться на 2 каталога вверх в папку ххх.
5) Скрипт будет искать определенную папку на диске (дисках).
6) Вызывается диалог выбора папки и там выбирается.
Складывается такое ощущение, что Вы вообще не хотите нигде писать папку, в которой скрипт должен удалять. Пусть, мол, сам догадается. Пройдем по пунктам, которые я перечислил:
1) Нет. Потому что на разных компах разные пути.
2) Нет. Потому что писать неохота в комстроке.
3) Нет. Потому что лежать скрипт будет в системной папке.
4) Смотри пункт первый.
5) Не знаю, но чтобы искать папку - ее имя надо написать в скрипте или ввести в комстроке.
6) Не знаю, но раз тяжело писать в комстроке, то и тут лишние телодвижения не приветствуются.
Короче говоря, пока внятно не будет донесена Ваша мысль каким образом хотите узнать расположение папки - я умываю руки. Пока только невнятные обрывки мыслей здесь вижу.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 03:46 22-02-2011
Leon_Ko



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

Цитата:
Мы пришли к тому, с чего начали.

Ну, в принципе, да . Я к тому, что 1-й вариант мне был как-то ближе. И если б не ошибка с "недоступными областями" ("System Volume Information"), то практически бы всё устроило.

Цитата:
Может я не понимаю Вашей терминологии?

Наверное, да. Просто я, скорее всего, несколько велеречиво выразился - что поделать, не програмист я .
Наверное, мы действительно друг друга недопоняли.

Цитата:
Вы понимаете, что одно противоречит другому? Или скрипт лежит (и запускается, соответственно) из определенной папки, или в разных местах.

Да, согласен с вами. Уточнимся - скрипт лежит в %Path%. Запускается, наверное, оттуда . Вызывается? Так это будет политкорректно? Вызываться он может с любого места на диске. Так будет понятно?
Цитата:
Тут есть только такие возможности:  
1) Жестко указать в скрипте путь, где будет происходить удаление.

Путь(и) каждый раз разные, ибо непредсказуемо, где я буду удалять.

Цитата:
2) Записывать путь в комстроке.

Очень длинно и ненужно, ибо я всё равно "сижу" в FAR'е. Зачем мне каждый раз записывать путь (с кучей параметров), если я всё равно равно нахожусь в этом каталоге? С таким же успехом я могу просто воспользоваться командой erase - результат будет практически тот же самый, и скрипт не нужен. Скрипт как раз нужен для автоматизации (облегчения работы) - запустил (виноват, вызвал) в нужном месте, и скрипт выполнит заранее указанные операции.
3-6 Всё так, вы практически угадали .

Цитата:
Складывается такое ощущение, что Вы вообще не хотите нигде писать папку, в которой скрипт должен удалять. Пусть, мол, сам догадается.

Абсолютно верно! Именно так оно и есть. Я не шучу. Я действительно не знаю, в какой папке мне надо будет удалять эти файлы. И всё, что я хочу - это автоматизировать процесс.
Непонятно? Конкретный пример. Я скачал альбом (и не один, допустим, целую дискографию каког-либо исполнителя, т.е. ...надцать альбомов) в каком-нибудь lossless формате, допустим, flac. Далее я распаковываю эти flac-и для получения исходных, несжатых образов (.wav), которые необходимы для дальнейшего подмонтажа в виртуальные диски с последующим анализом и тестированием. По завершении работы у меня остаются "кучи" .wav-файлов, которые уже не нужны. И вот их нужно удалить.
Понимаете? Я не знаю, как будет называться следующий альбом, который я скачаю, и не знаю на какой диск и в какую папку я его буду сохранять - зависит от наличия свободного места . Причём комп такой не один - их минимум 2-а: на работе и дома.

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 08:40 22-02-2011 | Исправлено: Leon_Ko, 08:42 22-02-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Leon_Ko
Извините, долго не отвечал - не заходил в сеть.
Теперь все понял. Тогда надо вот так:

Код:
Option Explicit  
 
On Error Resume Next
 
Dim strMask:                       strMask = "*.bak"
Dim strFolderPath:            
Dim objFSO  
Dim objShApp
Dim objWshSh  
Dim check: check = False  
 
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")  
Set objShApp = WScript.CreateObject("Shell.Application")
Set objWshSh = CreateObject("WScript.Shell")
 
strFolderPath = objWshSh.CurrentDirectory
 
If WScript.Arguments.Count = 1 Then strMask = WScript.Arguments.Item(0)
 
DelFileToFolders objFSO.GetFolder(strFolderPath)
 
If Err.Number Then  
  MsgBox "Скрипт отработал с ошибками.", 48, "Удаление файлов"  
ElseIf check Then  
  MsgBox "Файлы " & strMask & " удалены успешно.", 64, "Удаление файлов"  
Else  
  MsgBox "Файлы " & strMask & " не обнаружены.", 64, "Удаление файлов"  
End If  
 
WScript.Quit  
 
Sub DelFileToFolders(objFolder)  
  Dim SubFolderItem  
    If FilesExist(objFolder.Path) Then  
      objFSO.DeleteFile objFolder.Path & "\" & strMask, True  
      check = True  
    End If  
      For Each SubFolderItem In objFolder.SubFolders  
        On Error Resume Next  
        If FilesExist(SubFolderItem.Path) Then  
          objFSO.DeleteFile SubFolderItem.Path & "\" & strMask, True  
          check = True  
        End If  
        DelFileToFolders SubFolderItem  
      Next  
End Sub  
 
Function FilesExist(strPath)  
  Dim arrFiles      
    Set arrFiles = objShApp.NameSpace(strPath).Items  
    arrFiles.Filter 64, strMask  
    FilesExist = CBool(arrFiles.Count)  
End Function

Переменную, куда надо вписать расширение по умолчанию, вывел на видное место. Кстати, не обязательно только расширение - можно любую маску.
Если писать в комстроке только имя скрипта (раширение скрипта, наверное, тоже придется), то удалять будет маску по умолчанию, записанную в переменную strMask.  
А если кроме имени скрипта написать в комстроке маску, то будет удалять по ней, например:

Код:
delext.vbs *.wav

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 04:32 23-02-2011 | Исправлено: Rush, 04:58 23-02-2011
Leon_Ko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rush
Всё работает, большое спасибо!  

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 11:10 23-02-2011
ktotama

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

Цитата:
Rush  
Всё работает, большое спасибо!

Читаю и не могу врубиться зачем vbs, а почему просто не написать
del /f/s/q *.bak

Всего записей: 111 | Зарегистр. 27-05-2003 | Отправлено: 23:31 24-02-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ktotama
Если человеку надо, это его дело. Он писал:
Цитата:
С таким же успехом я могу просто воспользоваться командой erase - результат будет практически тот же самый, и скрипт не нужен.
Значит для него смысл есть.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 05:26 25-02-2011
Free_Soft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто подскажет, можно ли с помощью скрипта вывести на экран картинку (jpeg, png, bmp) в ее оригинальном размере без всяких обрамлений? типа Splash-заставки.
Уже когда-то спрашивал, но решения тогда не нашлось. Сейчас вопрос вновь актуален

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
в vbs - через виндовый медиаплэйер, но проще всего это реализовать в powershell. однако, подозреваю, что последний не подойдет.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 15:40 26-02-2011
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Free_Soft
Если поставить сторонний WindowSystemObject, то можно или (если только стандартно) hta

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 16:35 26-02-2011 | Исправлено: AndVGri, 17:19 26-02-2011
ComradG



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

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 20:43 26-02-2011
Obake



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите со VB скриптом, пожалуйста.  Скрипты пишу эпизодически, опыта маловато.
 
Цель: просмотреть определенную подпапку папки Inbox в Outlook'е 2007, для каждого непрочитанного письма проверить наличие в сабже слова myword, скопировать сабж и тело письма в текстовый файл, после чего сделать письмо прочитанным и поставить красный флажок.  
 

Код:
 
Option Explicit
Dim objOutlook, objFolder, objNamespace, colItems, myFilter
Dim colFilteredItems, objFSO, objTxtFileFolder, objFile, objMessage
Dim olFlagMarked
 
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(6).Folders("Just")
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTxtFileFolder = objFSO.GetFolder("c:\temp")
Set objFile = objTxtFileFolder.CreateTextFile("just.txt", True)
 
Set colItems = objFolder.Items
Set colFilteredItems = colItems.Restrict("[Unread] = True")
       
For Each objMessage In colFilteredItems
 
    myFilter = objMessage.Subject
 
            If InStr(myFilter, "myword") Then  
 
                objFile.WriteLine (objMessage.Subject & vbCrLf)
                objFile.WriteLine (objMessage.Body & vbCrLf)
 
                objMessage.UnRead = False
                objMessage.FlagStatus = olFlagMarked
                objMessage.Save
 
            End If
Next
 

 
Собственно говоря, скрипт работает, но, не смотря на  For Each objMessage In colFilteredItems обрабатывает не все непрочтенные письма.  
Причем, даже если отключить проверку на слово в сабже.  
На слово ключевое слово тоже не всегда срабатывает.  
Ну и наконец, бывает что и информацию копирует, и прочитанным делает сообщение, но не ставит красный флажок.  
Закономерности пока не просматриваются. Буду рад любой помощи.  

Всего записей: 361 | Зарегистр. 19-03-2003 | Отправлено: 16:52 01-03-2011 | Исправлено: Obake, 16:52 01-03-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 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