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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 11112 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: YuS 2, 08:24 19-06-2021
iNNOKENTIY21



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

Цитата:
Как тут заменить путь к ярлыку на специальную директорию GetFolderPath('Desktop')?

powershell -command "$WS = New-Object -ComObject WScript.Shell; $S = $WS.CreateShortcut([System.Environment]::GetFolderPath('Desktop') + '\PROGram.lnk'); $S.TargetPath='notepad.exe'; $S.Save()"

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 15:58 19-07-2022
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поглядеть список специальных папок, в PowerShell:
Код:
[enum]::GetNames([System.Environment+SpecialFolder])

их можно использовать для получения пути в [System.Environment]::GetFolderPath('Desktop') вместо 'Desktop'

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 18:29 19-07-2022
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извлечение строки ресурса из бинарника
скрипт ExtractStringFromDLL.ps1
Пример использования для shell32.dll,-21798 :

Код:
& "К:\Скрипту путь\\ExtractStringFromDLL.ps1" -Library ("$env:SystemRoot\system32\shell32.dll") -Line 21798

 
Добавлено:
еще про папочки
получить путь папки Downloads, через guid
 

Код:
$Name = 'Downloads'
$GUID = (Get-CimInstance 'Win32_UserProfile' | ? LocalPath -eq $HOME).$Name.OfflineFileNameFolderGUID
$RegPath = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
Get-ItemPropertyValue -Path $RegPath -Name $GUID

 
 
Добавлено:
Вопрос
Как получить GUID всех папок из: Get-CimInstance 'Win32_UserProfile' | ? LocalPath -eq $HOME
не зная имён папок конечно же

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 20:39 19-07-2022
Death_INN

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

Код:
Add-Type -Namespace WinAPI -Name OffScreen -MemberDefinition @'
 
    [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
'@
Add-Type -Namespace WinAPI -Name Lock -PassThru -MemberDefinition @'
 
    [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
        public static extern bool LockWorkStation();
'@
[WinAPI.OffScreen]::SendMessageW(0xFFFF, 0x112, 0xF170, 2);
[WinAPI.Lock]::LockWorkStation() | Out-Null;

Всего записей: 3052 | Зарегистр. 24-10-2002 | Отправлено: 23:11 19-07-2022
iNNOKENTIY21



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

Код:
$Definition = @'
using System;
using System.Runtime.InteropServices;
 
namespace WinAPI
{
    public class user32
    {
        public static void MonitorPowerOff()
        {
            PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITORPOWER_STATEOFF);
        }
 
        public static void MonitorPowerOn()
        {
            mouse_event(1,40,0,0,0);
        }
 
        public static void WorkStationLock()
        {
            LockWorkStation();
        }
 
        [DllImport("user32.dll")]
        private static extern IntPtr PostMessage(int hWnd, int msg, int wParam, int lParam);
 
        [DllImport("user32.dll")]
        private static extern void mouse_event(uint dwFlags, int dx, int dy, uint dwData, int dwExtraInfo);
 
        [DllImport("user32.dll")]
        private static extern bool LockWorkStation();
 
        private static int HWND_BROADCAST        = 0xFFFF;
        private static int WM_SYSCOMMAND         = 0x112;
        private static int SC_MONITORPOWER       = 0xF170;
        private static int MONITORPOWER_STATEOFF = 2;
    }
}
'@
 
if (!('WinAPI.user32' -as [type])) { Add-Type -TypeDefinition $Definition }
 
[WinAPI.user32]::MonitorPowerOff() # выключить монитор
[WinAPI.user32]::WorkStationLock() # залочить
 
sleep -Seconds 20 # отдыхать 20 сек.
 
[WinAPI.user32]::MonitorPowerOn() # включить монитор

WorkStationLock только что добавил туда же, дважды Add-Type не дергать

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 15:23 20-07-2022
SaDim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста (спрашивал в nnBackup там тишина).
Есть такой bat для архивирования в папки: for %%i in ("C:\Папка источник\*") do ("C:\Program Files\7-zip\7z" a "D:\Папка для архивов\%%~ni.7z" "%%i")
Возможно ли и как сделать чтобы архивировала с 4 папки, пример:
Имеется следующая структура папок для инкрементного бэкапа:  
D:\Soft\Editor\PDF\некоторое количество папок софта  
D:\Soft\HddFdd\Defrag\некоторое количество папок софта  
D:\Soft\Ofis\Arhivator\некоторое количество папок софта  
И так далее.  
Прошу чтобы получилось так:  
E:\Backup\Soft\Editor\PDF\некоторое количество папок софта сжатые 7-zip или WinRAR (пример STDUViewer.7z Sumatra.7z и далее)  
E:\Backup\Soft\HddFdd\Defrag\некоторое количество папок сжатые 7-zip или WinRAR (пример Defraggler.7z JkDefrag.7z и далее)  
E:\Backup\Ofis\Arhivator\некоторое количество папок софта сжатые 7-zip или WinRAR (пример FreeArc.7z WinRAR.7z и далее)  
Если нельзя решить эту задачу с помощью bat подскажите, пожалуйста, другие варианты.  
Спасибо.

Всего записей: 200 | Зарегистр. 02-03-2003 | Отправлено: 20:31 20-07-2022
BorlandIMHO

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

Цитата:
Возможно ли и как сделать

Так:

Код:
set "ROOT_F=C:\Папка источник"
set "ARC_F=D:\Папка для архивов\"
set "PACKER=c:\Program Files\7-zip\7z.exe"
set "PACK_ARGS=a -mx=9 --"
 
pushd "%ARC_F%" && popd ||exit
pushd "%ROOT_F%" || exit
 
for /f "usebackq delims=" %%F in (`dir /B /A:D *`) do (
    if NOT EXIST "%ARC_F%\%%~F" md "%ARC_F%\%%~F"
    pushd "%%~F"
    for /f "usebackq delims=" %%N in (`dir /B /A:D *`) do "%PACKER%" %PACK_ARGS% "%ARC_F%\%%~F\%%~N.7z" "%%~N\"
    popd
)
popd
goto :EOF

 
(Сжатие подпапок 2-го уровня, с раскладыванием архивов по соответствующим подпапкам 1-го уровня в каталоге результата)
 
Добавляем ещё один уровень (см. исправленный вариант ниже):

Код:
set "ROOT_F=C:\Папка источник"
set "ARC_F=D:\Папка для архивов\"
set "PACKER=c:\Program Files\7-zip\7z.exe"
set "PACK_ARGS=a -mx=9 --"
 
pushd "%ARC_F%" && popd ||exit
pushd "%ROOT_F%" || exit
 
for /f "usebackq delims=" %%F in (`dir /B /A:D *`) do (
    if NOT EXIST "%ARC_F%\%%~F" md "%ARC_F%\%%~F"
    pushd "%%~F"
    for /f "usebackq delims=" %%T in (`dir /B /A:D *`) do (
        if NOT EXIST "%ARC_F%\%%~F\%%~T" md "%ARC_F%\%%~F%\%%~T"
        pushd "%%~T"
        for /f "usebackq delims=" %%N in (`dir /B /A:D *`) do "%PACKER%" %PACK_ARGS% "%ARC_F%\%%~F\%%~T\%%~N.7z" "%%~N\"
        popd
    )
    popd
)
popd
goto :EOF

(Сжатие подпапок 3-го уровня, с раскладыванием архивов по соответствующим подпапкам 1-го/2-го уровней в каталоге результата)
 
Для 4-го уровня, соответственно, вместо команды упаковки добавляется ещё один вложенный блок {if .. pushd .. for ..popd} со своей переменной, и т.д.  
Если уровень вложенности папок в исходной папке д.б. переменным - проблема, в принципе, тоже решаема, но мне сейчас влом.

----------
http://www.imho.ws

Всего записей: 2402 | Зарегистр. 12-10-2006 | Отправлено: 23:06 20-07-2022 | Исправлено: BorlandIMHO, 10:21 21-07-2022
SaDim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO Спасибо, 1 работает, 2 (он как раз больше и нужен) нет, выдает такую ошибку (лишние пробелы убрал):
j:\->set "ROOT_F=d:\Soft\Games"
j:\->set "ARC_F=j:\-\baskup"
j:\->set "PACKER=d:\Soft\Ofis\Arhivator\7-Zip\7z.exe"
j:\->set "PACK_ARGS=a"
j:\->pushd "j:\-\baskup"   && popd   || exit
j:\->pushd "d:\Soft\Games"   || exit
Следующее использование оператора пути при подстановке параметров
в пакетных файлах является недопустимым: %~T"
Для просмотра списка допустимых форматов введите CALL /? или FOR /?
Ошибка в синтаксисе команды.
d:\Soft\Games>        if NOT EXIST "j:\-\baskup\%~T" md "j:\-\baskup\%~F"

Всего записей: 200 | Зарегистр. 02-03-2003 | Отправлено: 09:24 21-07-2022 | Исправлено: SaDim, 18:21 21-07-2022
BorlandIMHO

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

Цитата:
выдает такую ошибку (лишние пробелы убрал)

Мдя, вот что значит по ночам фигнёй страдать...
Исправленное (проверено, работает)
Код:
set "ROOT_F=D:\Temp"
set "ARC_F=D:\Temp2"
set "PACKER=c:\Program Files\7-zip\7z.exe"
set "PACK_ARGS=a -mx=9 --"
 
pushd "%ARC_F%" && popd ||exit
pushd "%ROOT_F%" || exit
 
for /f "usebackq delims=" %%F in (`dir /B /A:D *`) do (
    if NOT EXIST "%ARC_F%\%%~F" md "%ARC_F%\%%~F"
    pushd "%%~F"
    for /f "usebackq delims=" %%T in (`dir /B /A:D *`) do (
        if NOT EXIST "%ARC_F%\%%~F\%%~T" md "%ARC_F%\%%~F\%%~T"
        pushd "%%~T"
        for /f "usebackq delims=" %%N in (`dir /B /A:D *`) do "%PACKER%" %PACK_ARGS% "%ARC_F%\%%~F\%%~T\%%~N.7z" "%%~N\"
        popd
    )
    popd
)
popd
goto :EOF


----------
http://www.imho.ws

Всего записей: 2402 | Зарегистр. 12-10-2006 | Отправлено: 10:19 21-07-2022
SaDim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO Огромное СПАСИБО, очень выручили.
Отлично работает, рекомендую.
Буду думать как для инкремента nnBackup добавить.

Всего записей: 200 | Зарегистр. 02-03-2003 | Отправлено: 13:44 21-07-2022
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SaDim
Ещё слегонца доработал, теперь "глубина погружения" задаётся параметром в скрипте, обработка идёт рекурсивно.
Так более правильно с точки зрения программирования, нежели вложение однотипных циклов по числу уровней.    
Ну и покрасивше сделал.    
 

Код:
 
::@echo OFF
REM Упаковка подпапок заданного уровня в отдельные архивы
REM по задаче http://forum.ru-board.com/topic.cgi?forum=62&topic=30859&start=4040#7
REM
REM (C)2022, Borland from IMHO.ws for forum.ru-board.com
REM
REM "As is". Без гарантий. Найдутся баги - отписывайтесь в топике, попробуем исправить.
 
REM Корневая папка для упаковки
set "ROOT_F=C:\Папка источник"
REM Корневая папка для архивов
set "ARC_F=D:\Папка для архивов\"
REM Путь к программе-упаковщику
set "PACKER=c:\Program Files\7-zip\7z.exe"
REM ключи для программы упаковщика
set "PACK_ARGS=a -mx=9 --"
REM Уровень подпапкок для упаковки (глубина рекурсии)
set /A REC_MAX=3
 
REM Проверяем наличие/доступность папок и программы-упаковщика
pushd "%ARC_F%" && popd ||call :ABORT "Недоступна папка для архивов %ARC_F%"
pushd "%ROOT_F%" || call :ABORT "Недоступна исходная папка для архивации %ROOT_F%"
if NOT EXIST "%PACKER%" call :ABORT "Отсутствует архиватор %PACKER%"
 
REM Текущий "уровень погружения" устанавливается в 1
set /A REC_CUR=1
 
for /D %%A in (*) do call :PROCESS_FOLDER "%%~A" ""
goto :EOF
 
:PROCESS_FOLDER
REM Проверяем текущую "глубину погружения". Если достигнута целевая - пакуем папку,
REM иначе рекурсивно вызываем для подпапок :PROCESS_FOLDER
if %REC_CUR% EQU %REC_MAX% (
    "%PACKER%" %PACK_ARGS% "%ARC_F%\%~2\%~1.7z" "%~1\"
) else (
    if NOT EXIST "%ARC_F%\%~2\%~1" md "%ARC_F%\%~2\%~1"
    set /A REC_CUR+=1
    pushd "%~1"
    for /D %%B in (*) do call :PROCESS_FOLDER "%%~B" "%~2\%~1"
    popd
    set /A REC_CUR-=1
)
goto :EOF
 
:ABORT
REM Аварийное завершение работы
echo.
echo Аварийное завершение работы скрипта:
echo %~1
echo.
echo нажмите любую клавишу для выхода
1>nul pause
exit
 

 
N.B!!! Учтите, что все файлы выше "заданной глубины погружения" будут проигнорированы, т.е. при слишком большом REC_MAX в целевом каталоге будет копия дерева папок исходного каталога без единого файла, в т.ч. архива.
 
Делать "глубину погружения" "плавающей", по зрелом размышлении - не вариант: не вижу способа отличить папку внутри дистрибутива от папки собственно дистрибутива. Т.е. нет надёжного критерия "Это папка дистрибутива и глубже лезть не нужно, пакуем с содержимым"

----------
http://www.imho.ws

Всего записей: 2402 | Зарегистр. 12-10-2006 | Отправлено: 00:49 22-07-2022 | Исправлено: BorlandIMHO, 00:55 22-07-2022
farag



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

Код:
 
[xml]$config = Get-Content -Path C:\Windows\PolicyDefinitions\inetres.admx -Encoding UTF8
$config.policyDefinitions.policies.policy.disabledList | Where-Object -FilterScript {(
    $_.key -eq "SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\1") -and ($_.valueName -eq "1405")
}
 

 
Что-то ищется ничего. Хотя присутствует на строке 16778

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 18:21 24-07-2022
iNNOKENTIY21



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

Код:
$config.policyDefinitions.policies.policy | ? key -eq 'SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\1' | ? { $_.elements.enum.valueName -eq 1405}

 
valueName внутри перечисления .elements.enum

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 18:50 24-07-2022
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Я не знаю. Как же не люблю парсить XML! Причем я долез до последнего "?".

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 21:44 24-07-2022
Alex_Piggy

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

Цитата:
Как же не люблю парсить XML!

Может тогда в сторону XPath посмотрите? Для npp есть плагин "XML Tools", который позволяет получить XPath текущей ноды.
И тогда в PowerShell что-то вроде

Код:
Select-Xml -Xml $config -XPath "/policyDefinitions/policies/policy[@key='SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\1']/elements/enum[@valueName='1405']"

Или

Код:
Select-Xml -Xml $config -XPath "//policy[@key='SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\1']//enum[@valueName='1405']"

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 22:54 24-07-2022 | Исправлено: Alex_Piggy, 22:58 24-07-2022
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Познавательно. Проверю. Спасибо!

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 14:17 25-07-2022
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Я что-то опять не понимаю, но

Код:
 
[xml]$config = Get-Content -Path C:\Windows\PolicyDefinitions\inetres.admx -Encoding UTF8  
Select-Xml -Xml $config -XPath "/policyDefinitions/policies/policy[@key='SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\1']/elements/enum[@valueName='1405']"  
 

 
ничего не выдает.

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 00:15 26-07-2022 | Исправлено: farag, 00:39 26-07-2022
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Изначально файл in.js в кодировке UTF-8. Почему файл out.js получается в кодировке UCS-2 LE, а не в UTF-8?

Код:
$file = Get-Content -Encoding UTF8 b:\in.js; $file > b:\out.js

Всего записей: 3052 | Зарегистр. 24-10-2002 | Отправлено: 01:06 27-07-2022 | Исправлено: Death_INN, 01:10 27-07-2022
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
 
Set-Content -Encoding UTF-8  тоже не работает?

Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 01:33 27-07-2022
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT, да сработало, благодарю. Вообще, хотел сделать замену с инкрементацией. Вроде работает:

Код:
$start=1; $step=1; $text=Get-Content -Encoding UTF8 b:\in.js | foreach {$n=[regex]::match($_,'localhost').value; if ($n) {$next=[int32]$start+$step; $_ -replace "$n","127.0.0.$next"; $step=$step+1;} else {$_};}; $text | Set-Content -Encoding UTF8 b:\out.js


Всего записей: 3052 | Зарегистр. 24-10-2002 | Отправлено: 03:04 27-07-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru