Member 10850253 Ответов: 1

Изменение времени windows 10 в C#


Ранее я сделал приложение для изменения времени windows в c# на предыдущее время, и оно отлично работало в windows 7, но теперь в windows 10 оно просто не будет работать.

Что я уже пробовал:

private void button1_Click_1(object sender, EventArgs e)
        {
            
            h1 = h;//hours
            m1 = m;//minutes
            s1 = s;//seconds
            //booleano is my boolean value that starts in true
            //MessageBox.Show(""+booleano);
            if (booleano)
            {
                foreach (String st in tokens1)
                {
                    time = tokens1[0] + "," + tokens1[1] + "," + tokens1[2] + "," + h1 + "," + m1 + "," + s1 + "," + false.ToString() + "," + true.ToString();
                }

                System.IO.File.WriteAllText(Application.StartupPath + "\\time.txt", time);
                //MessageBox.Show(Application.StartupPath);               
                st.wYear = short.Parse(""+2014); // must be short
                st.wMonth = short.Parse(""+1);
                st.wDay = short.Parse(""+1);
                SetSystemTime(ref st);
                booleano = false;
            }
            else
            {
                booleano = true;
                FileStream file = new FileStream(Application.StartupPath+"\\time.txt", FileMode.Open, FileAccess.Read);
                StreamReader sr = new StreamReader(file);
                sr.ReadLine();
                var textLines = File.ReadAllLines(Application.StartupPath + "\\time.txt");
                foreach (var line in textLines)
                {
                    string[] dataArray = line.Split(',');
                    st.wYear= short.Parse(dataArray[0]);
                    st.wMonth = short.Parse(dataArray[1]);
                    st.wDay = short.Parse(dataArray[2]);
                    st.wHour = short.Parse(dataArray[3]);
                    st.wMinute = short.Parse(dataArray[4]);
                    st.wSecond = short.Parse(dataArray[5]);                    
                }
                file.Close();
                SetSystemTime(ref st);
            }
            
        }

Это код, который у меня есть на кнопке для изменения времени

Jochen Arndt

Выполняется ли приложение с правами администратора?

Если нет, то вы должны предоставить учетной записи необходимые привилегии.
В Windows 10 это можно сделать с помощью редактора групповой политики, который доступен только в версиях Pro и Enterprise.

1 Ответов

Рейтинг:
1

OriginalGriff

Во - первых, вы не хотите этого делать-нет никаких веских причин для изменения времени, так как большинство установок Windows теперь используют NTP - сервер по умолчанию для точного поддержания системного времени, - и NTP-сервер все равно переопределит ваше приложение.

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

Основная причина игры с системной датой и / или временем заключается в том, чтобы обойти пробные периоды истечения срока действия программного обеспечения - и это не является законным использованием. Мы не потворствуем, не поддерживаем и не помогаем в создании вредоносного кода каким-либо образом, в какой-либо форме или способом. Это профессиональный сайт для профессиональных разработчиков. Поэтому, если у вас нет очень законного использования, которое вы можете объяснить нам, вы не получите здесь помощи.


Member 10850253

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

Gonzalo Méndez Díaz

В моем случае мне нужно разрешить конечным пользователям планшетов под управлением windows 10 изменять настройки даты и времени. Они даже не могут выйти из приложения.
Я считаю, что если кто-то знает ответ и хочет помочь, он просто должен дать ответ, Не судя, есть ли для этого веская причина или нет. Для выполнения требования могут быть миллионы законных причин, и если они хотят изменить дату и время для обмана элементов управления лицензированием, им не нужно создавать приложение для этого.

Member 10744185

Причина изменения системного времени? Потому что некоторые устройства Windows IOT (например, Raspberry Pi) не имеют часов реального времени, и вам нужно устанавливать системное время каждый раз, когда вы включаете его. Совершенно законно, я полагаю