SetSystemTime вылетает Windows 10, если включены фильтры записи - PullRequest
0 голосов
/ 14 апреля 2020

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

И под этим я подразумеваю всплывающее сообщение с заголовком

Microsoft Windows

и текстом

Приложение не отвечает. Программа может ответить снова, если вы подождете.

... с помощью кнопок [Завершить процесс] и [Отмена].

Я ждал довольно долго (например, 20 минут ) и он не исчез.

Если я завершу процесс или отмена, панель задач исчезнет, ​​а окно сообщения исчезнет. Но если я нажимаю любую клавишу на клавиатуре, окно сообщения возвращается. Я не могу просмотреть диспетчер задач с системой в этом состоянии. Нажатие Ctrl-Alt-Delete ничего не делает, также как и Ctrl-Shift-Es c.

Дело в том, что это происходит не каждый раз, и это происходит только тогда, когда фильтры записи (UWF)

Вот мой код для установки системного времени:

    [StructLayout(LayoutKind.Sequential)]
    internal struct SystemTime
    {
        public short Year;
        public short Month;
        public short DayOfWeek;
        public short Day;
        public short Hour;
        public short Minute;
        public short Second;
        public short Milliseconds;
    }

    [DllImport("kernel32.dll", SetLastError = true)]
    internal static extern bool SetSystemTime(ref SystemTime st);

затем

        short year, month, day, hour, minute, second;
        SystemTime systemTime = new SystemTime();

        // code to populate all the components of the time.

        systemTime.Year = year;
        systemTime.Month = month;
        systemTime.Day = day;
        systemTime.Hour = hour;
        systemTime.Minute = minute;
        systemTime.Second = second;

        if (SetSystemTime(ref systemTime))
        {
            MessageBox.Show("Time changed!");
        }
        else 
        {
            MessageBox.Show("Time change failed.");
        }
    }

Что вызывает этот взлом sh и как его предотвратить ? Что я должен исключить из фильтров записи?

...