Я создал свое собственное приложение для родительского контроля, используя C # для мониторинга активности моих детей.Он записывает весь ввод с клавиатуры и экраны в фоновом режиме, с единственным графическим изображением на панели задач.До сих пор я просто позволил этому запускаться в моей учетной записи администратора, и все разделяют ту же учетную запись, и она отлично работает.Проблема в том, что, когда дети растут, они нашли способ убить его из диспетчера задач.Итак, мне нужно использовать более изощренный способ защиты моего приложения.Я думал, что смогу легко решить эту проблему, создав отдельную стандартную учетную запись для каждого ребенка, и я могу настроить свое приложение для запуска в качестве администратора для отслеживания всех их действий.Однако я столкнулся с множеством проблем.
Кажется, что перехваты клавиатуры перестают работать, когда я переключаюсь на другую учетную запись пользователя.Это правда?Я думал, что это глобальный хук - это просто глобально в учетной записи пользователя?
Захват экрана также не работает на другой учетной записи пользователя.Это мой код, и
на g.CopyFromScreen произошел сбой с ошибкой «дескриптор неверен»:
RECT rc = Win32.GetWindowRect();
using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(rc.Width, rc.Height))
{
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap))
{
g.CopyFromScreen(rc.Location, System.Drawing.Point.Empty, new System.Drawing.Size(rc.Width, rc.Height));
string fileName = Settings.Instance.GetImageFileName();
bitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
}
}
Ваша помощь очень ценится.