Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532

Ввод символов пароля для 7-Zip в cmd

11.02.2025, 21:38. Показов 4410. Ответов 40

Студворк — интернет-сервис помощи студентам
Всем привет.
Сделал скрипт бекапа папки в File.7z, поставив пароль прямо в батник ключом -p, но ключ как-то небезопасно выглядит, когда он в открытом виде

Возможно как-то вывести в процессе работы батника запрос ввода пароля?
Ну т.е. примерно вижу это так:
1. Запускаю батник.
2. Доходит дело до строки с архивацией.
3. CMD выводит сообщение "Создайте пароль для архива".
4. Ввожу желаемый пароль. Жму энтэр для продолжения.
5. Ввожу повторно пароль, чтобы не было ошибки. Жму энтер для продолжения и начинается архивация.
6. Желательно, в общем и логично, чтобы вводимый пароль писался как **** или как-то по-другому, но чтобы символы при вводе не были видны

Возможно такое в батнике?
В общем, заменить нужно -p123456789 на что-то наверное вроде -p%variable%.

Windows Batch file
1
%zip_app% a %zip_argum1% -p123456789 "%arch_destdir1%\%arch_name1%" "%arch_sourcedir1%\"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2025, 21:38
Ответы с готовыми решениями:

Ввод пароля на запрос Jacarta через cmd
Добрый день, столкнулся с проблемой, нужно для развертывания ОС сделать bat или cmd который будет прописывать контейнеры для Jacarta суть...

Ввод пароля (замена вводимых символов на экране символом '*')
Как можно реализовать слепой ввод на языке ассемблера? То есть при вводе строки она отображалась в консоли звёздочками, но записывалась в...

Написать программу для перебора пароля на zip или rar архивах
Нужно написать программу для перебора пароля на зип или рар архивах. Как это написать, какие библиотеки и всевозможные .dll придется...

40
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
15.06.2025, 20:01  [ТС]
Лучший ответ Сообщение было отмечено Maks как решение

Решение

Студворк — интернет-сервис помощи студентам
Вопрос решён.
Спасибо большое FlasherX за HTA код!

Может кому пригодится для быстрой запаковки папок:

[BAT+HTA] Создание бекапа папки + выключение системы

Windows Batch file
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
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
<!-- : =================================
: Скрипт защищённого выключения системы
: + Архивирование + Удаление данных
: + Запароливание + Выключение системы
: ======================================
@echo off
title Защищённое выключение
 
 
rem ----------------------------
rem = Основные настройки       =
rem ----------------------------
rem Цвет фона и текста стандартно
color 02
set color_def=02
rem Цвет фона и текста "Ошибки"
set color_error=CF
rem Цвет фона и текста "Успех"
set color_lucky=2F
rem Цвет фона и текста "Запрос"
set color_question=E0
rem Показ ошибок
set "ers=2>nul"
rem Показ информации
set "info=1>nul 2>&1"
 
 
rem ----------------------------
rem = Настройки приложений     =
rem ----------------------------
rem Описание: процессы разделяются пробелами, процесс должен оканчиваться на .exe, перед первым процессом и после list_proc пробел не требуется
set list_proc=firefox.exe thunderbird.exe filezilla.exe FileZilla Server.exe notepad++.exe AkelPad.exe AIMP.exe vlc.exe WINWORD.EXE EXCEL.EXE POWERPNT.EXE AcroRd32.exe WinDjView.exe StrongDC.exe qip.exe Photoshop.exe Illustrator.exe BitTorrent.exe CamtasiaStudio.exe CamRecorder.exe Snagit32.exe SnagitEditor.exe
 
 
rem ----------------------------
rem = Настройки архивации      =
rem ----------------------------
rem Путь до архиватора 7-Zip
set zip_app="C:\Program Files\7-Zip\7z.exe"
rem Исходная папка для архивации №1
set arch_sourcedir1=D:\ProfileX
rem Базовая директория - ЗАРЕЗЕРВИРОВАНО
set basedir=PATHX
rem Целевая папка для бекапа №1
set arch_destdir1=D:
rem Название архива бекапа №1 (формат 7z поддерживает ключ -mhe, с форматом zip нельзя использовать -mhe и некоторые другие ключи!)
set arch_name1=ProfileX.7z
rem Ключи архивирования №1
set zip_argum1=-bso0 -mx0 -r0 -ssw -t7z -mhe -y -p
rem Расположение и название лога №1
set logfile1=D:\Scripts\Backup.log
rem Формат даты и времени создания архива
set arch_date=%Year:~-5%.%Month:~-3%.%Day:~-3%_%Hour:~-3%-%Minute:~-3%-%Second:~-3%
 
 
rem ----------------------------
rem = Настройки ошибок         =
rem ----------------------------
set error_arch1_not_found=Error: Архив бекапа %arch_name1% не найден, исходная папка %arch_sourcedir1% не удалена. Выключение отменено!
set error_sourcedir1_not_found=Error: Исходная папка %arch_sourcedir1% не найдена: новый бекап не создан, а старый бекап не удалён с диска, если имелся. Выключение отменено!
set error_arch1_y_sourcedir1_y=Error: Исходная папка %arch_sourcedir1% не удалена. Требуется удалить её, чтобы ей не воспользовались! Выключение отменено!
 
 
rem ----------------------------------------------------------------------------------------------------------------
rem КОНЕЦ НАСТРОЕК
rem ----------------------------------------------------------------------------------------------------------------
 
 
rem -----------------------------
rem = Техническое (не изменять) =
rem -----------------------------
rem Исправление пробела в поле "Час/Hour", если системное время менее 10 часов
for /f "tokens=1* delims==" %%a in ('"wmic path win32_localtime get Day,Month,Year,Hour,Minute,Second /value|find "^=""') do set "%%a=0%%b"
 
 
goto start
===============================================================================================================
rem Параметры для удаления старых бекапов
rem _____________________________________
rem Шаблон: cscript //Nologo Remove_Old_Logs.vbs 1 "E:\Backups\Folder\Folder" ALL
rem Remove_Old_Logs.vbs: название скрипта, удаляющего старые файлы
rem 7: число дней; если файл старше этого кол-ва дней, то он будет удалён из папки, указанной ниже
rem "E:\Backups\Folder\Folder" fi.+\.zip: путь в кавычках и название файла или часть (маска) названий файлов для удаления (пробел перед названием файла fi.+\.zip обязателен) (ниже шаблон):
rem Название файла file.zip - удаление только этого файла
rem Маска файла fi.+\.zip - удаление файлов, начинающихся с fi и заканчивающихся на .zip
rem Ключ ALL (вместо названия файла) - удаление всех файлов из папки, учитывая число дней из параметра (7)
rem !RemovedLogs.log: журнал выполнения скрипта
===============================================================================================================
:start
 
 
goto start2
===============================================================================================================
rem Ключи для архивации
rem ___________________
rem -ao{a|s|t|u} : параметр перезаписи файлов
rem -bb[0-3] : уровень показа процесса архивирования (0 - процент, 1 - строки и процент, 2 - строки и процент, 3 - строки и процент)
rem -bd : скрыть процесс задания во время выполнения архивации
rem -i : добавить файлы или папки в архив (пример -ir@include.txt или "-i!File.exe" "-i!*.dat")
rem -mhe : шифровать названия файлов
rem -mmt[N] : количество используемых потоков процессора (стандартно - без ключа; используются все потоки)
rem -mx[0-9] : уровень сжатия (0 - без сжатия, 9 - лучший уровень сжатия) (пример -mx3)
rem -o : задает директорию, в которую будут распакованы файлы
rem -p : задать пароль для архива (пример -p123456)
rem -r : рекурсивное архивирование для папок, задается числом от 0 (все каталоги) до количества уровней каталогов, которые нужно включить в архив (пример -r0)
rem -ssw : добавить файл в архив, даже если он в данный момент используется или редактируется
rem -t[zip,gz] : тип архива, по умолчанию создаются файлы в формате 7z (примеры -tzip, -tgz)
rem -w[{path}] : назначить рабочую директорию для временных архивов (пустое значение делает рабочей директорией ту, куда записывается архив)
rem -x : исключить файлы или папки из архива (пример -xr@exclude.txt или "-x!*.tmp" "-x!*.temp")
rem -y : утвердительно ответить на все вопросы, которые может запросить система во время архивации
rem Дополнительно:
rem %date% : добавить текущую дату к названию архива
===============================================================================================================
:start2
 
 
echo.
echo.
echo =====================
echo Завершение приложений
echo =====================
echo.
echo.
 
 
for %%a in (%list_proc%) do (taskkill /f /im "%%a")
 
 
echo.
echo.
echo ==========================
echo Удаление старых бекапов...
echo ==========================
echo.
echo.
 
 
echo Список удалённых файлов :
if exist "%arch_sourcedir1%\" cd /d "%arch_destdir1%\" && del /f /s /q "%arch_name1%"
echo Готово.
 
 
rem Возврат директории bat
cd "%~dp0"
 
 
echo.
echo.
echo ============================
echo Создание новых бекапов папок
echo ============================
echo.
echo.
 
 
rem Бекап папок
if not exist "%arch_sourcedir1%\" goto GT_final_bad
rem Удаление временных файлов
if exist "%arch_sourcedir1%\Temp\" %ers% cd /d "%arch_sourcedir1%\Temp\" && rd /s /q "%arch_sourcedir1%\Temp" %info%
echo + Временные файлы удалены!
rem Возврат директории bat
cd "%~dp0"
rem Задание пароля через HTA
for /f %%s in ('mshta %0') do set pass="%%s"
rem Выход, если пароль не задан
if not defined pass exit
rem Архивация
%zip_app% a "%arch_destdir1%\%arch_name1%" "%arch_sourcedir1%\" %zip_argum1%%pass%
rem Возврат директории bat
cd "%~dp0"
 
 
echo.
echo.
echo ===========================
echo Удаление архивируемых папок
echo ===========================
echo.
echo.
 
 
rem Получение размера ИСХОДНОЙ ПАПКИ в МБ и ГБ для сравнения с существующим ФАЙЛОМ БЕКАПА
rem Путь до исходной папки
set "getsize_folder1=%arch_sourcedir1%\"
rem Получение размера папки в МБ (/1048576)
cmd /q/u/c echo WSH.Quit CreateObject("Scripting.FileSystemObject").GetFolder("%getsize_folder1%").Size/1048576>%temp%\get_size_eof_fo_mb.vbs
cscript //Nologo %temp%\get_size_eof_fo_mb.vbs
set /a size_folder1=%errorlevel%
rem Удаление временного скрипта
del %temp%\get_size_eof_fo_mb.vbs
 
 
rem Получение размера существующего ФАЙЛА БЕКАПА в МБ и ГБ для сравнения с существующей ИСХОДНОЙ ПАПКОЙ
rem Путь до файла бекапа
set "getsize_file1=%arch_destdir1%\%arch_name1%"
rem Получение размера файла в МБ (/1048576)
cmd /q/u/c echo WSH.Quit CreateObject("Scripting.FileSystemObject").GetFile("%getsize_file1%").Size/1048576>%temp%\get_size_eof_fi_mb.vbs
cscript //Nologo %temp%\get_size_eof_fi_mb.vbs
set /a size_file1=%errorlevel%
rem Удаление временного скрипта
del %temp%\get_size_eof_fi_mb.vbs
 
 
rem Сравнение размеров исходной папки и нового бекапа
rem Смена цветов
color %color_question%
echo Сравнение размеров исходной папки и нового бекапа:
if exist "%arch_sourcedir1%\" (
    echo     %size_folder1% МБ    - Размер папки %arch_sourcedir1%
) else (
    goto GT_final_bad
)
if exist "%arch_destdir1%\%arch_name1%" (
    echo     %size_file1% МБ    - Новый бекап %arch_name1%
) else (
    goto GT_final_bad
)
 
rem Запрос на удаление исходной папки
echo.
echo.
echo Удалить =БЕЗВОЗВРАТНО= папку %arch_sourcedir1%?
echo [1] Да
echo [2] Нет
Choice /c 120 /n /m "Выбор: "
Set /A Sele=%ErrorLevel%
If %Sele% Equ 1 (
    rem Смена цветов
    color %color_def%
    goto GT_del_dir_yes
)
If %Sele% Equ 2 (
    goto GT_final_bad
)
 
 
:GT_del_dir_yes
rem Удаление папки ProfileX
if exist "%arch_destdir1%\%arch_name1%" (
    cd /d "%arch_sourcedir1%\" && cd ..\
    rd /s /q "%arch_sourcedir1%"
    echo Готово.
) else (
    goto GT_final_bad
)
 
 
rem Возврат директории bat
cd /d "%~dp0"
 
 
echo.
echo.
echo =========================================
echo Финальная очистка кэша и журналов системы
echo =========================================
echo.
echo.
 
 
rem Удаление временных системных файлов
if exist "%systemroot%\Temp\" %ers% cd /d "%systemroot%\Temp\" && rd /s /q "%systemroot%\Temp" %info%
if exist "%systemroot%\SoftwareDistribution\Download\" %ers% cd /d "%systemroot%\SoftwareDistribution\Download\" && rd /s /q "%systemroot%\SoftwareDistribution\Download" %info%
if exist "%systemroot%\ServiceProfiles\LocalService\AppData\Local\Temp\" %ers% cd /d "%systemroot%\ServiceProfiles\LocalService\AppData\Local\Temp\" && rd /s /q "%systemroot%\ServiceProfiles\LocalService\AppData\Local\Temp" %info%
if exist "%systemroot%\ServiceProfiles\NetworkService\AppData\Local\Temp\" %ers% cd /d "%systemroot%\ServiceProfiles\NetworkService\AppData\Local\Temp\" && rd /s /q "%systemroot%\ServiceProfiles\NetworkService\AppData\Local\Temp" %info%
echo + Временные файлы системы удалены!
 
 
rem Удаление временных файлов текущего пользователя
if exist "%programdata%\Temp\" %ers% cd /d "%programdata%\Temp\" && rd /s /q "%programdata%\Temp" %info%
if exist "%userprofile%\AppData\Local\Temp\" %ers% cd /d "%userprofile%\AppData\Local\Temp\" && rd /s /q "%userprofile%\AppData\Local\Temp" %info%
echo + Временные файлы текущего пользователя удалены!
 
 
rem Очистка системных журналов
%ers% WevtUtil cl "Application" %info%
%ers% WevtUtil cl "Security" %info%
%ers% WevtUtil cl "Setup" %info%
%ers% WevtUtil cl "System" %info%
%ers% WevtUtil cl "ForwardedEvents" %info%
 
%ers% WevtUtil cl "Internet Explorer" %info%
%ers% WevtUtil cl "Windows PowerShell" %info%
echo + Системные журналы очищены!
 
 
rem Очистка всех журналов
rem for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :clearing_journals "%%G")
rem echo + Системные журналы очищены!
rem goto endClearingJournals
rem :clearing_journals
rem rem echo Очистка журнала %1
rem wevtutil.exe cl %1
rem goto :eof
rem :endClearingJournals
 
 
rem Возврат директории bat
cd /d "%~dp0"
 
 
rem Финализация
if exist "%arch_destdir1%\%arch_name1%" if not exist "%arch_sourcedir1%" set check_files_yarch_nosourcedir=1
if defined check_files_yarch_nosourcedir (
    rem Стиль экрана успеха
    color %color_lucky%
    echo.
    echo.
    echo ********************
    echo АРХИВАЦИЯ ЗАВЕРШЕНА!
    echo ********************
    echo.
    rem Пауза перед выключением
    1>nul timeout /t 2 /nobreak
    rem Выключение системы (закомментировать для тестирования скрипта)
    shutdown /s /t 0 /d p:1:1 /f
) else (
    goto GT_final_bad
)
exit
 
:GT_final_bad
rem Стиль экрана ошибки
color %color_error%
rem ***
echo.
echo.
echo *******************************
echo АРХИВАЦИЯ ЗАВЕРШЕНА С ОШИБКАМИ!
echo *******************************
echo.
echo ОШИБКИ 
if not exist "%arch_destdir1%\%arch_name1%" (
    echo   %error_arch1_not_found%
    rem %windir%\System32\msg.exe %username% "%error_arch1_not_found%"
)
if not exist "%arch_sourcedir1%" (
    echo   %error_sourcedir1_not_found%
    rem %windir%\System32\msg.exe %username% "%error_sourcedir1_not_found%"
)
if exist "%arch_sourcedir1%\" if exist "%arch_destdir1%\%arch_name1%" set check_files_arch1_y_sourcedir1_y=1
    if defined check_files_arch1_y_sourcedir1_y (
        echo   %error_arch1_y_sourcedir1_y%
        rem %windir%\System32\msg.exe %username% "%error_arch1_y_sourcedir1_y%"
    )
pause
exit
 
:: HTA от FlasherX -->
 
<meta charSet=Windows-1251>
<style>body{margin:0;padding:0}</style>
<script>
self.moveTo(Math.round(screen.width/2-170),Math.round(screen.height/2-115))
self.resizeTo(340,230)
 
function checkEnter() { if(event.keyCode == 13) checkPassw() }
 
function checkPassw() {
   if (pass1.value == '' || pass2.value == '') return
   if (pass1.value == pass2.value) {
      with(new ActiveXObject('ADODB.Stream')) {
         open; charset = 'cp866'
         writeText(pass1.value + '\r'); position = 0
         charset = 'unicode'; pass = readText; close()
      }
      try { new ActiveXObject('Scripting.FileSystemObject').getStandardStream(1,1).write(pass) }
      catch(err){}; close()
   } else {
      pass1.focus()
      pass1.value = ''; pass2.value = ''
      text.style.color = 'e11111'
   }
}
</script>
 
<HTA:APPLICATION Caption=no Border=none Scroll=no InnerBorder=no SingleInstance=yes/>
<style>* {font-size:14; padding:0; margin:0;}</style>
<body bgcolor=333333 style="color:000000; border:2 solid cccccc; padding:30 20;" onLoad=pass1.focus()>
<div style="background-color:ffffff; padding:10;">
<p style="font-weight:bold;">Задайте пароль для архива</p>
<input type=password name=pass1 style="width:100%; height:34px; font-size:14; color:2419c0; background-color:e8e8e8; padding:4px; margin-top:10;" onkeydown=checkEnter()>
<p style="float:left;">Повторить:</p>
<p id=text style="float:right; color:ffffff;">Пароли не совпадают!</p>
<div style="clear:both;"></div>
<input type=password name="pass2" style="width:100%; height:34px; font-size:14; color:2419c0; background-color:e8e8e8; padding:4px; margin-top:2; margin-bottom:10;" onkeydown=checkEnter()><br>
<input style="width:180; color:ffffff; text-align:center; background-color:f8604a;" type=button value="Подтвердить  [Enter]" onclick=checkPassw()>
</div>
</body>

_
Миниатюры
Ввод символов пароля для 7-Zip в cmd   Ввод символов пароля для 7-Zip в cmd  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.06.2025, 20:01
Помогаю со студенческими работами здесь

Ввод пароля для БД Oracle
Есть БД Oracle, хочу сделать так, чтобы пользователь вводил свой логин и пароль в созданную мной форму при запуске программы. Сделал...

Авто-ввод пароля для подключения к БД
ДОбрый день! Возник такой вопрос: при запуске проекта(из делфи, или же из экзешного скомпилированного файла) постоянно требуется вводить...

Деактивация пароля в 7-zip архиве
Даже и не знал, где тему создать. Суть вот в чём: есть скачанный файл в архиве, открываю 7-zip, просит пароль. Для пароля нужно пройти...

Многопоточный подбор пароля к архиву zip
Добрый день! Задача такая:распаковать zip-архив,защищенный паролем(разбить на потоки). С работой с zip архивами в билдере...

VBulletin Отдельная страница для ввод пароля/логина
Здравствуйте Подскажите, пожалуйста, как реализовать отдельную страничку для авторизации в VB4? Так, как это сделано на данном сайте.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
41
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru