Форум программистов, компьютерный форум, киберфорум
.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
84 / 81 / 30
Регистрация: 06.11.2015
Сообщений: 1,087
Записей в блоге: 2
1

Консольное приложение которое отображеет время блокировки ПК

14.09.2020, 14:40. Просмотров 2377. Ответов 2
Метки нет (Все метки)

Собственно задача. Сделать незамысловатое приложение, которое бы запомиало время когда пользователь блокировал комп через "Win+L". Ну и потом разблокировал, уже через привычный логин со вводом пароля.
На какие события подписаться?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2020, 14:40
Ответы с готовыми решениями:

Консольное приложение, которое конвертирует зашифрованный текст
написать программу на С++, чтобы она конвертировала в консоле зашифрованный текст.

Консольное приложение, которое парсит HTML страничку
Доброго времени суток! Есть сайт с такой страницей: <html> <head>...

Консольное приложение, которое парсит HTML страничку
Доброго времени суток! Есть сайт с такой страницей: <html> <head>...

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

2
115 / 105 / 17
Регистрация: 10.02.2013
Сообщений: 271
14.09.2020, 15:50 2
vb.net
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
Imports System.Runtime.InteropServices
 
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim session As SessionChangeHandler = New SessionChangeHandler()
    End Sub
End Class
 
Class SessionChangeHandler
    Inherits Control
 
    <DllImport("WtsApi32.dll")>
    Private Shared Function WTSRegisterSessionNotification(ByVal hWnd As IntPtr,
    <MarshalAs(UnmanagedType.U4)> ByVal dwFlags As Integer) As Boolean
 
    End Function
    <DllImport("WtsApi32.dll")>
    Private Shared Function WTSUnRegisterSessionNotification(ByVal hWnd As IntPtr) As Boolean
 
    End Function
    Private Const NOTIFY_FOR_THIS_SESSION As Integer = 0
    Private Const WM_WTSSESSION_CHANGE As Integer = &H2B1
    Private Const WTS_SESSION_LOCK As Integer = &H7
    Private Const WTS_SESSION_UNLOCK As Integer = &H8
    Public Event MachineLocked As EventHandler
    Public Event MachineUnlocked As EventHandler
 
    Public Sub New()
        If Not WTSRegisterSessionNotification(Me.Handle, NOTIFY_FOR_THIS_SESSION) Then
            Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error())
        End If
    End Sub
 
    Protected Overrides Sub OnHandleDestroyed(ByVal e As EventArgs)
        WTSUnRegisterSessionNotification(Me.Handle)
        MyBase.OnHandleDestroyed(e)
    End Sub
 
    Protected Overrides Sub WndProc(ByRef m As Message)
        If m.Msg = WM_WTSSESSION_CHANGE Then
            Dim value As Integer = m.WParam.ToInt32()
 
            If value = WTS_SESSION_LOCK Then
                OnMachineLocked(EventArgs.Empty)
            ElseIf value = WTS_SESSION_UNLOCK Then
                OnMachineUnlocked(EventArgs.Empty)
            End If
        End If
 
        MyBase.WndProc(m)
    End Sub
 
    Protected Overridable Sub OnMachineLocked(ByVal e As EventArgs)
        MsgBox(Now.ToString + ": screen locked") 'Вылетает сообщение при блокировке экрана
    End Sub
 
    Protected Overridable Sub OnMachineUnlocked(ByVal e As EventArgs)
        MsgBox(Now.ToString + ": screen unlocked") 'При разблокировке экрана
    End Sub
End Class
Добавлено через 4 минуты
Также доступны другие константы, что указаны в методе WndProc:
C#
1
2
3
4
5
6
7
8
9
const int WTS_CONSOLE_CONNECT = 0x1; // Сессия была подключена к консольному терминалу.
const int WTS_CONSOLE_DISCONNECT = 0x2; // Сеанс был отключен от консольного терминала.
const int WTS_REMOTE_CONNECT = 0x3; // Сеанс был подключен к удаленному терминалу.
const int WTS_REMOTE_DISCONNECT = 0x4; // Сеанс был отключен от удаленного терминала.
const int WTS_SESSION_LOGON = 0x5; // Пользователь вошел в сеанс.
const int WTS_SESSION_LOGOFF = 0x6; // Пользователь вышел из сеанса.
const int WTS_SESSION_LOCK = 0x7; // Сеанс заблокирован.
const int WTS_SESSION_UNLOCK = 0x8; // Сеанс разблокирован.
const int WTS_SESSION_REMOTE_CONTROL = 0x9; // Сессия изменила статус удаленного управления.
2
84 / 81 / 30
Регистрация: 06.11.2015
Сообщений: 1,087
Записей в блоге: 2
15.09.2020, 22:41  [ТС] 3
Попутно реализовал данное приложение в виде десктопной версии С# WPF.

Может кому то пригодиться
LockScreenTracker_Bin.zip
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2020, 22:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как создать программу, которое возможно будет запускать как консольное приложение, приложение WPF?
Препод дал задание на лето, никакой конкретики вынудить не получилось, только 1. Библиотека...

Создать консольное приложение на Java, которое моделирует школу
Приложение должно содержать необходимые сущности (Person, Subject, Journal) и выполнять с ними...

Создать консольное приложение которое выводит таблицу на экран
Нужно создать консольное приложение которое выводит таблицу на экран. Подскажите пожалуйста как это...

Консольное приложение. Создать меню, которое будет располагаться по середине
Всем привет. Как всегда курсовая :wall: Нужно создать меню, которое будет располагаться по...

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.