Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование "удобняшек" на VBScript (Часть 2)

Автор: vlary
Дата сообщения: 19.10.2012 14:17
Alukardd
Для интереса проверил, у меня все работает без проблем
Отправлял с Висты на КоммуниГейт.
Вот сам скрипт:
[more]
Код:
'Sending a text email using authentication against a remote SMTP server
' Sample code submitted by Clint Baldwin, +1 (918) 671 3429
Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const cdoAnonymous = 0
' Use basic (clear-text) authentication.
Const cdoBasic = 1
' Use NTLM authentication
Const cdoNTLM = 2 'NTLM

' Create the message object.
Set objMessage = CreateObject("CDO.Message")
'Set the from address this would be your email address.
objMessage.From = """Mail Info""<info@my-company.ru>"
' Set the TO Address separate multiple address with a comma
objMessage.To = "vlary@anotherdomain.ru"
' Set the Subject.
objMessage.Subject = "An Email From Active Call Center."
' Now for the Message Options Part.
' Use standared text for the body.
objMessage.TextBody = _
"This is some sample message text.." & _
vbCRLF & _
"It was sent using SMTP authentication."

' Or you could use HTML as:
' objMessage.HTMLBody = strHTML

' ATTACHMENT : Add an attachment Can be any valid url
'objMessage.AddAttachment("file://C:\Program Files\Active Call Center\Examples\Goodbye.wav")

' This section provides the configuration information for the SMTP server.
' Specifie the method used to send messages.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = _
cdoSendUsingPort

' The name (DNS) or IP address of the machine
' hosting the SMTP service through which
' messages are to be sent.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"mail.my-company.ru" ' Or "mail.server.com"

' Specify the authentication mechanism
' to use.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = _
cdoBasic

' The username for authenticating to an SMTP server using basic (clear-text) authentication
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"info@my-company.ru"

' The password used to authenticate
' to an SMTP server using authentication
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = _
"mypass"

' The port on which the SMTP service
' specified by the smtpserver field is
' listening for connections (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = _
465

'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = _
True

' Set the number of seconds to wait for a valid socket to be established with the SMTP service before timing out.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = _
60

' Update configuration
objMessage.Configuration.Fields.Update

' Use to show the message.
' MsgBox objMessage.GetStream.ReadText

' Send the message.
objMessage.Send
Автор: Alukardd
Дата сообщения: 19.10.2012 18:09
vlary
Во, вижу сходство с gmail... А можно пробу через 25порт, а не 465?

Я, кстати, без дебага перед уходом с работы проверил через свой домашний сервер (там в отличии от работы стоит exim), тоже не сработала авторизация и как следствие Relay not permitted.
TLS хоть и есть возможность и там и там использовать но в силу самоподписности всех почтовых сертификатов (и дома и на работе) всё гонял так в plain по 25порту.
Автор: vlary
Дата сообщения: 19.10.2012 22:01
Alukardd
Цитата:
А можно пробу через 25 порт, а не 465?
Я подозреваю, что они могли сделать авторизацию исключительно через секурный порт, дабы пароль не ходил открытым текстом. Но проверить раньше понедельника все равно не смогу.
Автор: Alukardd
Дата сообщения: 19.10.2012 22:42
vlary
Ну на 25 есть STARTTLS, типа всё сукьёрно... Но предположение очень интересное.
А мне раньше понедельника и не надо. Тяпницу я пивом отметил, так что до понедельника о работе не думаем)

p.s. Надеюсь что к понедельнику не забудете) Если что я попробую в пон в личку написать.
Автор: vlary
Дата сообщения: 19.10.2012 23:32
Alukardd
Цитата:
Надеюсь что к понедельнику не забудете)
Оказывается, я забыл выключить рабочий комп
Поэтому смог проверить прямо сейчас.
Все без проблем отработало и в этот раз.
Поставил 25 порт и вообще убрал ssl

Код: objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = _
False
Автор: Alukardd
Дата сообщения: 20.10.2012 10:14
vlary
Ай, у меня дома через 25порт ни чего не послать))) Только принимать... Устроил порочный круг.

Цитата:
auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}

.ifndef MAIN_TLS_ADVERTISE_HOSTS
MAIN_TLS_ADVERTISE_HOSTS = ${if eq {$interface_port}{465}{*}{}}
.endif
tls_advertise_hosts = MAIN_TLS_ADVERTISE_HOSTS
без tls'а нельзя авторизовываться, а tls разрешён только на 465 порту)
Ну и еще exim не разрешает plaintext аутентификацию без tls — server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}, закоментить придётся.

Когда в понедельник вернусь к тестам, сниму ограничения...
Автор: Alukardd
Дата сообщения: 22.10.2012 11:46
Собственно вот [more=кусок сессии] 7706 SMTP>> 220 my.mail.server.com handmade MTA Mon, 22 Oct 2012 12:29:25 +0400
7706 Process 7706 is ready for new message
7706 smtp_setup_msg entered
7706 SMTP<< EHLO spbdc01
7706 sender_fullhost = client.name.ru (spbdc01) [93.92.X.Y]:54357
7706 sender_rcvhost = client.name.ru ([93.92.X.Y]:54357 helo=spbdc01)
7706 set_process_info: 7706 handling incoming connection from client.name.ru (spbdc01) [93.92.X.Y]:54357 I=[10.188.110.180]:25
7706 host in pipelining_advertise_hosts? yes (matched "*")
7706 host in auth_advertise_hosts? yes (matched "*")
7706 host in tls_advertise_hosts? no (end of list)
7706 SMTP>> 250-my.mail.server.com Hello client.name.ru [93.92.X.Y]
7706 250-SIZE 52428800
7706 250-PIPELINING
7706 250-AUTH PLAIN CRAM-MD5
7706 250 HELP
7706 SMTP<< MAIL FROM: <alukardd@my.mail.server.com>
7706 using ACL "acl_check_mail"[/more] скрипта с моим почтовым сервером, результат такой же как и в случае с корпоративным почтовым сервером. Результат отсутствия авторизации очевиден: 7706 SMTP>> 550 relay not permitted.

В чём может быть проблема я хз...
Автор: NitroPT
Дата сообщения: 22.10.2012 13:09
Всем привет! Нужна помощь.
Есть такой, скажем шаблон:


Код: Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '1cv7.exe'")

For Each objProcess in colProcesses
sngProcessTime = (CSng(objProcess.KernelModeTime) + _
CSng(objProcess.UserModeTime)) / 10000000
Wscript.Echo objProcess.name & VbTab & sngProcessTime
Next
Автор: Black_Lung
Дата сообщения: 22.10.2012 15:51
NitroPT

Загрузка процесора скорее всего не будет ровно 0, нужно подбирать значение опытным путём, и проверять на него раза 3-4 с маленькой задержкой.
Автор: Alukardd
Дата сообщения: 22.10.2012 16:06
vlary
Ой, блин, с LOGIN методом он начал попытки пройти аутентификацию. Пускай неуспешно, но идёт!!! Остатки щас докапаю.
Автор: NitroPT
Дата сообщения: 23.10.2012 10:35

Цитата:
Загрузка процесора скорее всего не будет ровно 0, нужно подбирать значение опытным путём, и проверять на него раза 3-4 с маленькой задержкой.

Там в том то и засада, во время загрузки программа отъела процессорное время, далее она просто "стоит" ничего не делая, в диспетчере задач загрузка процессора 0, а этот скрипт

Код: Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '1cv7.exe'")

For Each objProcess in colProcesses
sngProcessTime = (CSng(objProcess.KernelModeTime) + _
CSng(objProcess.UserModeTime)) / 10000000
Wscript.Echo objProcess.name & VbTab & sngProcessTime
Next
Автор: TePP0PucT
Дата сообщения: 26.10.2012 07:22
[more] Здравствуйте.
Нужна помощь в создании скрипта.

Требуется скрипт который проверяет папку на наличие нового файла и этот новый файл отправлял на печать(пдф принтер, если это важно), после чего этот файл должен быть вырезан и перемещен в другую папку (также вариант просто с удалением будет неплох, но если есть возможноть лучше в вырезанием).

Дело в том что я скрипты никогда не писал, а на работе внезапно озадачили.

У меня есть вот такое тело скрипта для проверки папки на наличие файла, но так как я не имею опыта в написании скриптов-для меня нарисовалась проблема в дополнении этого тела нужными мне функциями - цикличная проверка каждые 2 минуты, отправка на печать, удаление/перемещение файла. Скрипт нужен vbs с этим видом я хоть как-то уже знаком.

Option Explicit
On Error Resume Next

'Объявляем переменные
Dim objFSO, strFlagFile

'Создаём объект файловой системы
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Задаём путь к файлу-флагу
strFlagFile = "путь_к_файлу\flag.file"

'Проверка наличия файла
If objFSO.FileExists(strFlagFile) Then
WScript.Echo "File Exist!"
Else
WScript.Echo "File Not Exist!"
End If

WScript.Quit 0 [/more]
Автор: AndVGri
Дата сообщения: 26.10.2012 09:08
TePP0PucT
Читаем про "проверяет папку на наличие нового файла".
Устанавливаем PDFCreator и изучаем, например, "C:\Program Files\PDFCreator\COM\Windows Scripting Host\VBScripts\Convert2TXT.vbs" и прочее содержимое папки, что не понятно - спрашиваем.
Автор: king_stiven
Дата сообщения: 26.10.2012 12:47
Нужно переместить курсор по заранее заданным координатам относительно экрана, а не окон, кликнуть мышкой и переместиться назад.
Автор: Alex_Piggy
Дата сообщения: 26.10.2012 15:20
Добрый день, king_stiven
Искал когда-то нашел только один вариант - AutoIt - скрипт скомпилить в exe. Получается 300 кило программа... Скопировать положение курсора в буфер обмена, перевести мышь в начало экрана, кликнуть 2 раза в точке с координатами 100:100. Можно использовать аргументы командной строки (массив $CmdLine)

Код:
$Pos=MouseGetPos()
ClipPut($Pos[0]&":"&$Pos[1])
MouseMove(1,1)
MouseClick("left",100,100,2)
Автор: king_stiven
Дата сообщения: 26.10.2012 17:48
Добрый вечер, Alex_Piggy. Да нет, правильно ответили. Мне надо, чтоб при запуске скрипта мышка перешла на координаты 100 100, кликнула там и перешла обратно. Решение должно быть очень простым. Не надо искать окон а просто тупо перемещаться по экрану, как nircmd. Просто nircmd не умеет определять текущие координаты и соответственно возвращаться обратно на них.



Добавлено:
Пока нашёл только такую вещь, не совсем по теме.
<html>
<head>
</head>
<body>
<table border=1 width=1280 height=1240><tr><td onmousemove=t_mousemove()>
Проведите мышью по этому окну
Координаты мыши относительно экрана

<input type="text" name="Text1">
</td></tr></table>
</body>
<SCRIPT TYPE="text/vbscript"><!--
function t_mousemove
Text1.value="X="+cstr(window.event.screenX)+"; Y="+cstr(window.event.screenY)
end function
--></SCRIPT>
Автор: TePP0PucT
Дата сообщения: 28.10.2012 13:09
[more] AndVGri

Вылезла первая проблема. Насколько я понял Dim задает массивы с которыми будет работать скрипт.
В тот скрипт который на проверку папки я захотел для начала заставить вести логи. Насколько я понял достаточно было добавить
Цитата:
Dim additionalParams и потом задать additionalParams = "-log C:\B\log.txt"
Но он не пишел у меня в лог файл ничего. Что я делаю не так?

P.S. Я так понял что в скриптах PDFCreator я должен был найти кусок который будет отправлять на печать, но он тоже не хочет работать.

Тело скрипта


Цитата:

Dim additionalParams

strDir = "c:\temp" ' каталог, за которым следим
strComputer = "." ' имя компьютера; "." означает текущий компьютер
'==============================================================================
strDirSlash = Replace(strDir, "\", "\\\\")
strNamespace = "Root\CIMV2"
' Подключаемся к пространству имен
Set objService = GetObject("WinMgmts:\\" & strComputer & "\" & strNamespace)
Set objSink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_")

objService.ExecNotificationQueryAsync objSink, _
"SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE " &_
"Targetinstance ISA 'CIM_DirectoryContainsFile' and " &_
"TargetInstance.GroupComponent= " &_
"'Win32_Directory.Name=""" & strDirSlash & """'"

additionalParams = "-log C:\B\log.txt"

' Выводим сообщение о запуске сканера
Wscript.Echo "Запущен сканер создания файла в папке " & strDir

' Запускаем бесконечный цикл ожидания
While 1
WScript.Sleep 1000
Wend

' Процедура-обработчик события OnObjectReady объекта sWbemSink
Sub Sink_OnObjectReady(oOutParams, oContext)
strResult = Date & " " & Time & vbCrLf &_
"Создан файл: " & oOutParams.TargetInstance.PartComponent
Wscript.Echo strResult
End Sub
[/more]
Автор: AirCova
Дата сообщения: 19.11.2012 15:10
Доброго времени суток.
Есть небольшая проблема. Есть скрипт на vbs, создает подписи для outlook беря данные с AD, соответственно пишет в конце подписи сайт, но хотелось бы сделать вместо адреса сайта лого, возможно ли это?
з.ы. Гугл молчит, предлогает только сделать скрипт на основе html, но это не подходит (((
з.ы.ы. Бил в бубен, молился Ктулху... не помогает
Автор: Black_Lung
Дата сообщения: 20.11.2012 09:43
AirCova

можно сделать в виде показа из атачмента, письмо конечно будет в html
Автор: Demon L
Дата сообщения: 06.12.2012 12:57
Гуру помогите.
Как можно (и можно ли) решить такую задачу:

Нужно присвоить файлу любое рандомное имя не зависимо от того какое было (например на основе даты) потом его залить на фтп и сформировать на него ссылку и выдать так чтоб это можно было скопировать. Это вообще решаемо? в какую сторону смотреть...
Автор: Black_Lung
Дата сообщения: 06.12.2012 16:56
Demon L

решаемо, для фтп есть консольна утилита, точно как ей пользоваться не знаю.

генератор 10 значного имени


Код:
dim a(90)
for i=0 to 9
a(i)=i
next
j=10
for i=65 to 91
a(j)=chr(i)
j=j+1
next
for i=97 to 123
a(j)=chr(i)
j=j+1
next
randomize
for i=1 to 10
filename=filename&a(Int(63 * Rnd))
next
wscript.echo filename
Автор: Demon L
Дата сообщения: 06.12.2012 18:56
Black_Lung
Спасибо

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


Код:

Rem Отправка на FTP и копирование ссылки в буфер (Visual Basic Script)
Dim objArgs, Server, DomainName, Port, User, Pass, Folder, rootFolder, CloseDOS, DosStr

'=== Данные учетной записи FTP ===

Server = "test.com"
DomainName = "ftp://test.com"
Port = "21"
User = "***"
Pass = "***"

'Папка на FTP, куда будут складываться файлы
rootFolder = "public" 'корневая
Folder = "TEST" 'подкаталог

'Флаг - закрывать консольное окно после передачи данных
CloseDOS = True
if not CloseDOS then DosStr = "&pause"

Set objArgs = wscript.Arguments
If objArgs.Count <> 0 Then 'Проверяем аргументы (Drag & Drop "путь к файлу")
Dim FName, WSHShell, Link, FF, TmpFile, objFile

'Получаем имя файла
FName = Mid(objArgs(0), InStrRev(objArgs(0), "\") + 1)
'Интернет-адрес
Link = DomainName & "/" & Folder & "/" & FName

Set WSHShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Копируем в буфер обмена Windows
WSHShell.Run "cmd.exe /C <nul set /p ""=" & Link & """ | CLIP", 0, False

'Формируем строку коннекта для утилиты FTP
TmpFile = WSHShell.ExpandEnvironmentStrings("%temp%") & "\temp_" & CInt(Rnd() * 1000)
'ForAppending = 8, ForReading = 1, ForWriting = 2
Set objFile = objFSO.OpenTextFile (TmpFile, 2, True, 0) 'True - создать файл
objFile.WriteLine "open " & Server & " " & Port
objFile.WriteLine User
objFile.WriteLine Pass
objFile.WriteLine "cd " & rootFolder & "/" & Folder
objFile.WriteLine "binary"
objFile.WriteLine "put """ & objArgs(0) & """"
objFile.WriteLine "disconnect"
objFile.WriteLine "bye"
objFile.Close

'Добавляем утилиту FTP в исключения файрвола и запускаем
WSHShell.Run "cmd.exe /c ""(netsh firewall add allowedprogram """ & WSHShell.ExpandEnvironmentStrings("%windir%") & _
"\system32\ftp.exe"" ENABLE& ftp -s:""" & TmpFile & """" & DosStr & ")""", 0, True

objFSO.DeleteFile TmpFile, True

Set WSHShell = Nothing: Set objFile = Nothing: Set objFSO = Nothing

wscript.echo "Путь к файлу на FTP: " & vbLf & Link & String(2, vbLf) & _
"Путь к файлу скопирован в буфер обмена Windows."
Else
wscript.echo "Перетащите файл на VBS-сценарий"
End If
Set objArgs = Nothing

Автор: Demon L
Дата сообщения: 08.12.2012 07:21
Помогите пожалуйста доработать скрипт:
1. убрать "'Добавление в исключения файрвола "
2. сделать так чтобы файлу присваивалось новое случайное имя.
Автор: Black_Lung
Дата сообщения: 10.12.2012 13:05
[more]
Dim objArgs, Server, DomainName, Port, User, Pass, Folder, rootFolder, CloseDOS, DosStr
Server = "test.com"
DomainName = "ftp://test.com"
Port = "21"
User = "***"
Pass = "***"

rootFolder = "public" 'корневая
Folder = "TEST" 'подкаталог

CloseDOS = True
if not CloseDOS then DosStr = "&pause"

Set objArgs = wscript.Arguments
If objArgs.Count <> 0 Then 'Проверяем аргументы (Drag & Drop "путь к файлу")
Dim FName, WSHShell, Link, FF, TmpFile, objFile

FName = Mid(objArgs(0), InStrRev(objArgs(0), "\") + 1)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WSHShell = CreateObject("WScript.Shell")

dim a(64)
for i=0 to 9
a(i)=i
next
j=10
for i=65 to 91
a(j)=chr(i)
j=j+1
next
for i=97 to 123
a(j)=chr(i)
j=j+1
next
randomize
for i=1 to 10
NewFName=NewFName(Int(63 * Rnd))
next     
TMP=WSHShell.ExpandEnvironmentStrings("%temp%")
Set NewFile=FSO.Getfile(objArgs(0))
NewFile.copy(TMP+NewFName)
Link = DomainName & "/" & Folder & "/" & NewFName
WSHShell.Run "cmd.exe /C <nul set /p ""=" & Link & """ | CLIP", 0, False
TmpFile = TMP & "\temp_" & CInt(Rnd() * 1000)
Set objFile = objFSO.OpenTextFile (TmpFile, 2, True, 0) 'True - создать файл
objFile.WriteLine "open " & Server & " " & Port
objFile.WriteLine User
objFile.WriteLine Pass
objFile.WriteLine "cd " & rootFolder & "/" & Folder
objFile.WriteLine "binary"
objFile.WriteLine "put """ & TMP+NewFName & """"
objFile.WriteLine "disconnect"
objFile.WriteLine "bye"
objFile.Close
WSHShell.Run "cmd.exe /c"&WSHShell.ExpandEnvironmentStrings("%windir%") & _
"\system32\ftp.exe"" ENABLE& ftp -s:""" & TmpFile & """" & DosStr & ")""", 0, True
objFSO.DeleteFile TmpFile, True
objFSO.DeleteFile TMP+NewFName, True

Дальше без изменений.
У меня что-то с отправкой сообщения на форум проблема
[/more]
Автор: Demon L
Дата сообщения: 12.12.2012 16:52
Black_Lung

Спасибо большое это думаю то что требуется. Только проверить не могу. выдает ошибку "Несоответствие типа: NewFName" код: 800A000D
Спотыкается вот на этой строчке: NewFName=NewFName(Int(63 * Rnd))
что может быть не так ?
Автор: Black_Lung
Дата сообщения: 14.12.2012 09:42
Demon L
Извиняюсь, я тогда вставил код как смог, проблемы с подключением на форум были.
правильная строка: NewFName=NewFName&a(Int(63 * Rnd))
Автор: Demon L
Дата сообщения: 14.12.2012 11:40
Black_Lung

А теперь пишет:
требуется объект: FSO
ошибка 800A01A8

Ругается вот на эту строчку:
Set NewFile=FSO.Getfile(objArgs(0))
Автор: Rush
Дата сообщения: 14.12.2012 12:31
Demon L

Цитата:
Ругается вот на эту строчку:
Set NewFile=FSO.Getfile(objArgs(0))

Надо FSO на objFSO исправить.
Автор: slep6008
Дата сообщения: 14.12.2012 16:22
Помогите пожалуйста дописать скрипт. Мне нужно чтобы выполнялось следующее:

Если программа запущена. Включить таймер до её закрытия.
по окончании таймера - предупредить о закрытии и закрыть программу
После закрытия - не дать возможность запустить её в течении следующих 2 часов


Program = "notepad.exe"

While True
WScript.Sleep 100 * 1000

If ProcessExists("notepad.exe") Then
ProcessClose("notepad.exe")

WScript.Sleep 90 * 1000 '90 секунд

If ProcessExists(Program) Then ProcessClose(Program)
End If
WEnd

Function ProcessExists(ProcessName)
Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
For Each Proc In myProcEnum
If StrComp(Proc.Name, ProcessName, 1) = 0 Or StrComp(Proc.ProcessID, ProcessName, 1) = 0 Then
ProcessExists = True
Exit Function
End If
Next
ProcessExists = False
End Function

Function ProcessClose(ProcessName)
Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
For Each Proc In myProcEnum
If StrComp(Proc.Name, ProcessName, 1) = 0 Or StrComp(Proc.ProcessID, ProcessName, 1) = 0 Then
Proc.Terminate
End If
Next
End Function
Автор: Demon L
Дата сообщения: 14.12.2012 19:47
Rush

Спасибо.

Rush
Black_Lung

Помогите допилить этот скрипт.

1. теперь имя файла генирится как надо но теперь исчезает расширение файла.
2. файл не отправляется на FTP

то есть так как было изначально - работает:

Код:
WSHShell.Run "cmd.exe /c ""(netsh firewall add allowedprogram """ & WSHShell.ExpandEnvironmentStrings("%windir%") & _
"\system32\ftp.exe"" ENABLE& ftp -s:""" & TmpFile & """" & DosStr & ")""", 1, True

objFSO.DeleteFile TmpFile, True

Страницы: 12345678910111213141516171819202122232425

Предыдущая тема: Помогите новичку в C++


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.