Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/48: Рейтинг темы: голосов - 48, средняя оценка - 4.75
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
VBS

Логирование в файл на сервере входа и выхода пользователей

18.04.2016, 08:13. Показов 9749. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Видел на просторах интернета такую идею скрипта: при входе пользователя запускается какой-то сценарий и в папочку на домене в лог-файл производится запись времявхода, имяюзера, ФИО, имя компа на который он вошёл... При выходе или выключении компа запускается аналогичный сценарий только с записью времени выхода. Так же в случае удалёного сеанса RDP либо RemoteAPP так же кто, во сколько и куда вошёл и вышел..

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

Подскажите может у кого есть такой или наработки, а то я даже не знаю с чего начинать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2016, 08:13
Ответы с готовыми решениями:

Мониторинг входа/выхода пользователей
Нужно написать скрипт,который записывал бы время,дату и имя компьютера в txt файл,сразу же после выполнения входа в ОС.

История входа/выхода пользователей в WindowsServer
WinServer 2012 Ребятушки, помогите разобраться. Эта тема мне очень помогла (5), но теперь вопрос в том, как в PowerShell настроить...

Создать кнопку входа-регистрации-выхода для пользователей сайта
Каким образом в теле страницы (в заголовке, например или в меню) задать кнопку "Вход" перенаправляющую на форму...

33
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
18.04.2016, 08:32
Например:
Visual Basic
1
2
3
4
Set WshNetwork = WScript.CreateObject("WScript.Network")
         WScript.Echo "Domain = " & WshNetwork.UserDomain
         WScript.Echo "Computer Name = " & WshNetwork.ComputerName
         WScript.Echo "User Name = " & WshNetwork.UserName
0
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
08.12.2016, 15:48  [ТС]
tisha_,
Вот я тут наваял скрипт. Взял за основу кривые скрипты из интернета. Проверьте пожалуйста что тут ещё не так? а то я к примеру не знаю что значит блок "Sub crypt(mSg)".
Visual Basic
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
Set objNetwork = CreateObject("WScript.Network")
objComputerName = objNetwork.ComputerName
objUSerName = objNetwork.USerName
 
On Error ReSume Next
ConSt ForWriting = 2
ConSt ForReading = 1
ConSt ForAppending = 8
ConSt TriStateFalSe = 0
Set fSo = CreateObject("Scripting.FileSyStemObject")
Set GObjArgS = WScript.ArgumentS
GStrCmd = GObjArgS(0)
Call crypt(GStrCmd)
 
Sub crypt(mSg)
n = Len(mSg)
c = 0
Do Until c = n
c = c + 1
t1 = Mid(mSg,c,1)
ch = Chr(aSc(t1)+n)
output = output & ch
Loop
 
Set logFile = fSo.OpenTextFile("\\TSServer\NETLOGON" & objComputerName & "_" & Date & ".txt",ForAppending,True)
logFile.WriteLine "#################################"
logFile.WriteLine Date & " " & Time
logFile.WriteLine "LOGON:" & vbNewLine & "Comp: " & (objComputerName) & vbNewLine & "User: " & (objUSerName)
GObjLocalF.CloSe
End Sub
WScript.Quit 0
Добавлено через 6 часов 54 минуты
Не подскажете как ещё сделать так чтоб входы выходы в терминал тоже логировались? Встроенных средств логирования в сервере 2008 не нашёл.
0
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
09.12.2016, 09:02
на мой взгляд выбросила лишнее
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Set objNetwork = CreateObject("WScript.Network")
objComputerName = objNetwork.ComputerName
objUSerName = objNetwork.USerName
 
On Error ReSume Next
ConSt ForAppending = 8
Set fSo = CreateObject("Scripting.FileSyStemObject")
 
Set logFile = fSo.OpenTextFile("\\TSServer\NETLOGON" & objComputerName & "_" & Date & ".txt",ForAppending,True)
logFile.WriteLine "#################################"
logFile.WriteLine Date & " " & Time
logFile.WriteLine "LOGON:" & vbNewLine & "Comp: " & (objComputerName) & vbNewLine & "User: " & (objUSerName)
GObjLocalF.CloSe
WScript.Quit 0
Добавлено через 1 минуту
Цитата Сообщение от xeon13 Посмотреть сообщение
fSo.OpenTextFile("\\TSServer\NETLOGON" & objComputerName & "_" & Date & ".txt",ForAppending,True)
т е для каждого компа, каждый день новый файл? свалка же будет. Может лучше общий файл на всех?

Добавлено через 12 минут
Цитата Сообщение от xeon13 Посмотреть сообщение
Не подскажете как ещё сделать так чтоб входы выходы в терминал тоже логировались? Встроенных средств логирования в сервере 2008 не нашёл.
сама утилита подключения к удаленному рабочему столу называется mstsc.exe и если покопаться в планировщике заданий, то что-то мне подсказывает, что источником будет что-то похожее на "TerminalServices-RemoteConnectionManager", но я не сисадмин и в этом мало что понимаю
0
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
09.12.2016, 10:45  [ТС]
ConSt ForWriting = 2 ( ForWriting 2 Открытие файла для записи. Если существует файл с таким же именем, его содержимое перезаписывается. )
ConSt ForReading = 1 ( ForReading 1 Открытие файла только для чтения. Запись в этот файл невозможна. )
ConSt ForAppending = 8 ( ForAppending 8 Открытие файла и запись в конец файла. )
ConSt TriStateFalSe = 0 ( TristateFalse 0 Открывает файл в формате ASCII. )
это наверно нужные параметры, чтоб ошибки на рабочих станциях хотя бы всплывали если не будет лог сохранён?


а вот
Visual Basic
1
2
3
4
5
6
7
8
Sub crypt(mSg)
n = Len(mSg)
c = 0
Do Until c = n
c = c + 1
t1 = Mid(mSg,c,1)
ch = Chr(aSc(t1)+n)
output = output & ch
незнаю что такое. почитал вроде бы какое-то шифрование передачи данных. может тоже нужно раз в статьях рекомендуют?

Цитата Сообщение от tisha_
т е для каждого компа, каждый день новый файл? свалка же будет. Может лучше общий файл на всех?
Я долго думал и посчитал что так оптимальнее будет для поиска. Если все будут писать в один файл то могут возникнуть коллизии с одновременным доступом к одному файлу и сбои в логировании. А так огично что с одного компа может быть только один вход или выход и очереди доступа к файлу не будет.
Или ты предлагаешь сделать файл без даты и пополнять его бесконечно? может файлы плодить тогда по месяцам?

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

По поводу терминала пока тему изучаю...
0
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
09.12.2016, 10:50
Цитата Сообщение от xeon13 Посмотреть сообщение
это наверно нужные параметры, чтоб ошибки на рабочих станциях хотя бы всплывали если не будет лог сохранён?
ты как бы всегда только для дозаписи открываешь, остальные-то зачем

Цитата Сообщение от xeon13 Посмотреть сообщение
незнаю что такое. почитал вроде бы какое-то шифрование передачи данных. может тоже нужно раз в статьях рекомендуют?
ты его не используешь
Цитата Сообщение от xeon13 Посмотреть сообщение
Или ты предлагаешь сделать файл без даты и пополнять его бесконечно? может файлы плодить тогда по месяцам?
нет, я предлагаю каждый день новый файл для всех пользователей
0
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
09.12.2016, 11:01  [ТС]
Цитата Сообщение от tisha_ Посмотреть сообщение
нет, я предлагаю каждый день новый файл для всех пользователей
да но тогда будут нередки случаи когда два или более компов запросят доступ к файлу и тот кто последний сохранит тот и перезапишет своей инфой остальных.
А как сделать Date в названии файла, чтоб было не число.месяц.год а было меся.год?
0
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
09.12.2016, 13:19
Цитата Сообщение от xeon13 Посмотреть сообщение
а было меся.год?
Visual Basic
1
month(now()) & "." & year(now())
Добавлено через 30 минут
xeon13, только учти, что месяц без "0" вернется, можно добавить что-то похожее на
Visual Basic
1
mm = month(now()) : if len(mm) = 1 then : mm = "0" & mm : end if
1
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
15.12.2016, 06:34
Цитата Сообщение от xeon13 Посмотреть сообщение
... чтоб входы выходы в терминал тоже логировались?..
Пример:
Кликните здесь для просмотра всего текста
Visual Basic
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
'Определение типа сеанса (интерактивный/удалённый) текущего пользователя на текущем узле
'и внесение данных о сеансе в заданном регистрационном каталоге.
'Путь к регистрационному каталогу задаётся в сценарии (значение переменной "strLogFolder").
'Сценарий ориентирован на использование в составе групповой политики пользователей
'и работу в "молчаливом" режиме.
Dim objSysInfo, strTemp, intTemp
Dim strComputer, strUser, strLogFolder
Dim objFS, objFile, objWMI, arrSubKeys
Const HKCU = &H80000001
 
strLogFolder = "\\server\folder\"
Set objSysInfo = CreateObject("ADSystemInfo")
strComputer = GetObject("LDAP://" & objSysInfo.ComputerName).cn
strUser = GetObject("LDAP://" & objSysInfo.UserName).cn
strTemp = LCase(GetObject("LDAP://" & objSysInfo.ComputerName).operatingSystemVersion)
Set objSysInfo = Nothing
If Len(strTemp) > 0 Then
    intTemp = CInt(Replace(Left(strTemp, 3), ".", ""))
    If intTemp > 52 Then
        Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
        objWMI.EnumKey HKCU, "Volatile Environment", arrSubKeys
        objWMI.GetStringValue HKCU, "Volatile Environment\" & arrSubKeys(UBound(arrSubKeys)), "SESSIONNAME", strTemp
        Set objWMI = Nothing
    Else
        strTemp = CreateObject("WScript.Shell").Environment("Volatile").Item("SESSIONNAME")
    End If
    Set objFS = CreateObject("Scripting.FileSystemObject")
    If objFS.FolderExists(strLogFolder) Then
        If UCase(strTemp) = "CONSOLE" Then 'Интерактивный сеанс
            Set objFile = objFS.OpenTextFile(strLogFolder & strUser & "_Con.txt", 2, True)
        Else 'Удалённый сеанс
            Set objFile = objFS.OpenTextFile(strLogFolder & strUser & "_Rem.txt", 2, True)
        End If
        objFile.WriteLine Now & vbNewLine & strComputer
        objFile.Close
    End If
    Set objFile = Nothing: Set objFS = Nothing
End If
WScript.Quit 0
2
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
20.12.2016, 09:59  [ТС]
Вот что получилось уже готовый рабочий вариант тестил несколько дней:
Visual Basic
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
'#####################################################
'# Скрипт записи логов входа пользователя LOGON:"
'# в шаренную папку сервера. по умолчанию: LogONOff$
'# возникла необходимость контролировать входы и выходы.
'# в полученном логе различаются типы подключения интерактив или RDP
'# лог создаётся месяц.год.txt .
'# Автор E}|{uk@RUSnet (Димитровград) 2016г.
'# Большое спасибо за подсказки и помощь tisha_ и Dmitrii (cyberforum.ru) в написании скрипта
'#####################################################
 
Set objNetwork = CreateObject("WScript.Network")
objComputerName = objNetwork.ComputerName
objUSerName = objNetwork.USerName
 
'Определение типа подключения (интерактивное CONSOLE или RDP-терминал)
Set objShell = CreateObject("WScript.Shell")
SessName = UCase(objShell.ExpandEnvironmentStrings("%SESSIONNAME%"))
 
On Error ReSume Next
 
'(ForWriting 2 Открытие файла для записи. Если существует файл с таким же именем, его содержимое перезаписывается.)
ConSt ForWriting = 2
 
'(ForReading 1 Открытие файла только для чтения. Запись в этот файл невозможна.)
ConSt ForReading = 1
 
'(ForAppending 8 Открытие файла и запись в конец файла.)
ConSt ForAppending = 8
 
'(TristateFalse 0 Открывает файл в формате ASCII.)
ConSt TriStateFalSe = 0
 
Set fSo = CreateObject("Scripting.FileSyStemObject")
Set GObjArgS = WScript.ArgumentS
GStrCmd = GObjArgS(0)
Call crypt(GStrCmd)
 
'Этот блок оставил так как подозреваю, что это шифрование подключения к серверу типа керберос..
Sub crypt(mSg)
n = Len(mSg)
c = 0
Do Until c = n
c = c + 1
t1 = Mid(mSg,c,1)
ch = Chr(aSc(t1)+n)
output = output & ch
Loop
 
Set logFile = fSo.OpenTextFile("\\TSServer\LogONOff$" & objComputerName & "_" & month(now()) & "." & year(now()) & ".txt",ForAppending,True)
logFile.WriteLine "#################################"
logFile.WriteLine Date & " " & Time
logFile.WriteLine "LOGON: " & "(" & SessName & ")" & vbNewLine & "Comp: " & (objComputerName) & vbNewLine & "User: " & (objUSerName)
'logFile.WriteLine "#################################"
GObjLocalF.CloSe
End Sub
WScript.Quit 0
Полученный результат в файле-логе
#################################
20.12.2016 10:13:07
LOGON: (CONSOLE)
Comp: RA
User: Администратор
#################################
20.12.2016 10:20:36
LOGOFF: (RDP-TCP#0)
Comp: TSSERVER
User: Администратор

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

Добавлено через 5 минут
Dmitrii, Немного не понятно где там и что и для чего. но на кое-что обратил внимание и добавил в свой скрипт. Прошу рассмотреть и покритиковать
1
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
20.12.2016, 11:13
Цитата Сообщение от xeon13 Посмотреть сообщение
... не понятно где там и что и для чего...
Спрашивайте.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
20.12.2016, 11:29
xeon13,
Цитата Сообщение от xeon13 Посмотреть сообщение
Прошу комментировать
пара замечаний:
Цитата Сообщение от xeon13 Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
'(ForWriting 2 Открытие файла для записи. Если существует файл с таким же именем, его содержимое перезаписывается.)
ConSt ForWriting = 2
'(ForReading 1 Открытие файла только для чтения. Запись в этот файл невозможна.)
ConSt ForReading = 1
...
'(TristateFalse 0 Открывает файл в формате ASCII.)
ConSt TriStateFalSe = 0
- зачем описывать константы, если они нигде не используются?

Цитата Сообщение от xeon13 Посмотреть сообщение
Visual Basic
1
GObjLocalF.CloSe
Что за объект закрывается? У Вас открыт на добавление данных объект logFile, его и надо закрывать.
1
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
20.12.2016, 12:08  [ТС]
YuS_2,
Цитата Сообщение от YuS_2 Посмотреть сообщение
Что за объект закрывается? У Вас открыт на добавление данных объект logFile, его и надо закрывать.
Visual Basic
logFile.Close
правильно я понял?

Добавлено через 19 минут
и вот ещё проблема появилась после добавления
Visual Basic
17
SessName = UCase(objShell.ExpandEnvironmentStrings("%SESSIONNAME%"))
стало писать в логах:
LOGON: (%SESSIONNAME%)
тоесть получается не успевает определить тип сессии?
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
20.12.2016, 12:59
Цитата Сообщение от xeon13 Посмотреть сообщение
правильно я понял?
Да.

Цитата Сообщение от xeon13 Посмотреть сообщение
после добавления
После добавления чего? У Вас выше был текст лога, где переменная раскрывалась.
В любом случае, если есть подозрение, что переменная не определена из-за времени выполнения, то всегда можно добавить задержку.
1
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
20.12.2016, 13:17
Цитата Сообщение от xeon13 Посмотреть сообщение
... получается не успевает определить тип сессии?
Нет. Просто не определено значение этой переменной окружения (вероятно, ОС WinXP).
На такой случай попробуйте использовать конструкцию
Visual Basic
1
SessName = UCase(objShell.Environment("Volatile").Item("SESSIONNAME"))
1
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
20.12.2016, 14:54  [ТС]
Dmitrii, Если скрипт запускать с рабочей станции то показывает тип сессии. а вот при включении компа - не всегда. и при заходе в терминал на server 2008 тоже пустое значение %SESSIONNAME%

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

Добавлено через 1 минуту
Цитата Сообщение от Dmitrii Посмотреть сообщение
На такой случай попробуйте использовать конструкцию
Visual Basic
1
SessName = UCase(objShell.Environment("Volatile").Item("SESSIONNAME"))
Попробовал. вобще пустое значение выводит. видимо задержку надо действительно.

Добавлено через 32 минуты
Visual Basic
1
2
3
4
5
Set objShell = CreateObject("WScript.Shell")
SessName = UCase(objShell.Environment("Volatile").Item("SESSIONNAME"))
    if SessName = "" Then
SessName = UCase(objShell.ExpandEnvironmentStrings("%SESSIONNAME%"))
end if
Вот такую фигню сделал на случай разных ОС, но блин всё равно видимо нужна задержка. при загрузке часто записывает в лог %SESSIONNAME%
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
20.12.2016, 15:29
Цитата Сообщение от xeon13 Посмотреть сообщение
не напомните как именно? забыл команды.
Вот тут хороший справочник.
1
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
20.12.2016, 17:40
Цитата Сообщение от xeon13 Посмотреть сообщение
... при включении компа - не всегда...
До начала сеанса пользователя понятие тип сессии не имеет смысла.

Цитата Сообщение от xeon13 Посмотреть сообщение
... пустое значение выводит...
А так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim objWMI, objCollection, objItem, arrSubKeys, intOSVersion, strType
Const HKCU = &H80000001
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set objCollection = objWMI.ExecQuery("SELECT Version FROM Win32_OperatingSystem")
For Each objItem In objCollection
    intOSVersion = CInt(Replace(Left(objItem.Version, 3), ".", ""))
Next
Set objItem = Nothing: Set objCollection = Nothing
Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv")
If intOSVersion > 52 Then
    objWMI.EnumKey HKCU, "Volatile Environment", arrSubKeys
    objWMI.GetStringValue HKCU, "Volatile Environment" & arrSubKeys(UBound(arrSubKeys)), "SESSIONNAME", strType
Else
    objWMI.GetStringValue HKCU, "Volatile Environment", "SESSIONNAME", strType
End If
Set objWMI = Nothing
WScript.Echo strType
1
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
21.12.2016, 07:01  [ТС]
вобщем со строкой
Visual Basic
1
SessName = UCase(objShell.ExpandEnvironmentStrings("%SESSIONNAME%"))
все XP показывают нормально интерактивный вход:
#################################
21.12.2016 6:29:34
LOGON: (CONSOLE)
Comp: ARCHIV
User: user53
А вот все у кого Win 7-8-10 что интерактивный что RDP показывают:
#################################
21.12.2016 7:37:59
LOGON: (%SESSIONNAME%)
Comp: KORPUS1
User: user47
Притом что на 7-8-10 если запустить мышкой скрипт - то показывает нормально. в каком блин месте задержку ставить?

Добавлено через 3 минуты
Dmitrii, А не много ли там объектов вызывается? скрипт не будет жрать много ресурсов? А для чего там вызов реестра? было бы неплохо пояснения. а то я один скрипт с реестром пробывал он мне оказалось через реестр менял имя подпись на ярые вместо "Мой компьютер" на сетевое имя компа.
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
21.12.2016, 07:38
Цитата Сообщение от xeon13 Посмотреть сообщение
... не много ли там объектов вызывается?..
Минимально необходимое количество.
Цитата Сообщение от xeon13 Посмотреть сообщение
... скрипт не будет жрать много ресурсов?..
Нет.
Цитата Сообщение от xeon13 Посмотреть сообщение
... для чего там вызов реестра?..
Для чтения значения параметра SESSIONNAME из раздела Volatile Environment ветки HKEY_CURRENT_USER.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.12.2016, 07:38
Помогаю со студенческими работами здесь

Авторизация не доменных пользователей на файл-сервере
Итак, есть два сервера w2k8 r2, один из них контроллер домена, DHCP и DNS сервер; второй - файл сервер. До перевода офиса на домен был...

Логирование действий пользователей в БД
Имеется БД и приложение на access в приложение пользователи входят путём идентификации через доменную УЗ. Список пользователей так же...

Логирование с подстановкой имен пользователей в Squid3
Всем доброго времени суток, столкнулся со следующей проблемой: имеется ubuntu 14.04 LTS на ней установлен SQUID3, необходимо чтобы в логах...

Сеанс входа/выхода
Добрый день, я совсем новичок и прошу помощи. Пишу обработку по анализированию времени нахождения пользователей в системе. Я выцепляю...

Список входа -> выхода
Добрый вечер. Вот такая задачка: Словарь в задании - список пар значений с одинаковым типом (например пара слов, пара символов, или другие...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru