Я пытаюсь создать прототип приложения для журнала и сохранить активность пользователей. Для этого я использую GetForegroundWindow (), чтобы получить настоящее название приложения. И мне нужно сохранить эти журналы в БД, прежде чем выключить. Я использую некоторые системные события для этого. но это не работает для меня. < /p>
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
static string connectionString = "XXXXXXXXXXXXXX";
static string filePath = "xxxxxxxxxxxxxxxxxxxxxx";
static Dictionary appDurations = new Dictionary();
static void Main()
{
SystemEvents.PowerModeChanged += async (sender, e) => await OnPowerModeChanged(sender, e);
SystemEvents.SessionEnding += async (sender, e) => await OnSessionEnding(sender, e);
SystemEvents.EventsThreadShutdown += async (sender, e) => await ProcessLogs();
SystemEvents.SessionEnded += async (sender, e) => await ProcessLogs();
string currentApp = "";
DateTime startTime = DateTime.Now;
while (true)
{
string activeApp = GetActiveWindowTitle();
if (activeApp != currentApp)
{
if (!string.IsNullOrEmpty(currentApp))
{
LogAppUsage(currentApp, startTime, DateTime.Now);
}
currentApp = activeApp;
startTime = DateTime.Now;
}
Thread.Sleep(1000);
}
}
static string GetActiveWindowTitle()
{
const int nChars = 256;
StringBuilder buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
if (GetWindowText(handle, buff, nChars) > 0)
return buff.ToString();
return "Unknown";
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... e-shutdown
Системные события не работают перед выключением ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Запросы Python – как использовать системные сертификаты CA (debian/ubuntu)?
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Собственный образ GraalVM, загрузка Spring, процесс AOT и системные среды во время сборки.
Anonymous » » в форуме JAVA - 0 Ответы
- 40 Просмотры
-
Последнее сообщение Anonymous
-