none
如何修改 win10的系统时间 我找了几个例子都改不了`` DateTime.Now.ToString(); 为 03/18/周六 22:42:09 有没有关系?

    问题

  • 如何修改 win10的系统时间 我找了几个例子都改不了`` DateTime.Now.ToString(); 为   03/18/周六 22:42:09    有没有关系?

      基本就是这个按钮的代码是怎么写的

    2017年3月18日 14:44

答案

  • 来公布下可以用的,其实都是可以用的 好奇葩的系统

    __________________________________________________________


               public class SetSystemDateTime//设置系统日期类
            {
                [DllImportAttribute("Kernel32.dll")]
                public static extern void GetLocalTime(SystemTime st);
                [DllImportAttribute("Kernel32.dll")]
                public static extern void SetLocalTime(SystemTime st);
            }//这种模式也是可以用的

    ___________________________________________________

      [DllImport("kernel32.dll", SetLastError = true)]
            public static extern bool SetSystemTime(ref SYSTEMTIME st);
            [StructLayout(LayoutKind.Sequential)]
            public struct SYSTEMTIME
            {
                public short wYear;
                public short wMonth;
                public short wDayOfWeek;
                public short wDay;
                public short wHour;
                public short wMinute;
                public short wSecond;
                public short wMilliseconds;
            }

            private void button1_Click(object sender, EventArgs e)
            {
                SYSTEMTIME st = new SYSTEMTIME();
                st.wYear = 2009; // must be short
                st.wMonth = 1;
                st.wDay = 1;
                st.wHour = 0;
                st.wMinute = 0;
                st.wSecond = 0;

                SetSystemTime(ref st);
            }

    然而这还不行, 还是没反应,那么这个奇葩在什么地方?管理员运行!! 我就是管理员呀 是不是不可思议?

    这个管理员运行?怎么弄个代码能改了?

    看看系统的设置模式直接管理员运行

    接下来就是改权限的时候了  http://www.cnblogs.com/babycool/p/3569183.html

    一: 在Visual Studio 中--解决方案资源管理器--右键项目名称--属性,找到“安全性”选项,

    二:勾选“启用ClickOnce安全设置”,

    三:这时,在项目下面会多出一个“app.manifest”的文件,选中它,并找到代码段<requestedExecutionLevel level="asInvoker" uiAccess="false" />,将其改为:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />,

    打开:

    将上图部分修改为:

    四:改正后,不要急于重新编译生成,再次打开“属性--安全性”界面,

    将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。 不然程序会报错无法运行。

     

    五:最后,保存修改,重新编译运行程序。

    打开程序时,会提示“用户账户控制”来获取管理员权限运行,点击“是”则获取了管理员权限。




    2017年3月20日 7:38

全部回复

  • 给方法传参数

    string format="...";

    DateTime.Now.ToString(format)

    format的值参考这里

    http://www.cnblogs.com/xvqm00/archive/2009/02/19/1394093.html

    http://haitaowang.blog.163.com/blog/static/128023119201092344732346/


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年3月20日 0:12
  • 你需要使用系统 API 「SetSystemTime」修改时间

    https://social.msdn.microsoft.com/Forums/en-US/2e754abd-54a6-46ac-9e32-a30a9953c177/how-to-set-system-time-in-device-application-using-c?forum=vssmartdevicesvbcs


    http://feiyun0112.cnblogs.com/

    2017年3月20日 3:01
    版主
  • Hi,

    感谢在MSDN论坛发帖。

    有尝试过使用SetSystemTime 方法吗?

    这个是win32的方法,可以设置系统的时间。

    如果你要使用在.NET Framework 下面,你需要进行封装。

    [StructLayout(LayoutKind.Sequential)]
    public struct SYSTEMTIME
    {
        public short wYear;
        public short wMonth;
        public short wDayOfWeek;
        public short wDay;
        public short wHour;
        public short wMinute;
        public short wSecond;
        public short wMilliseconds;
    }


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


    SYSTEMTIME st = new SYSTEMTIME();
    st.wYear = 2009; // must be short
    st.wMonth = 1;
    st.wDay = 1;
    st.wHour = 0;
    st.wMinute = 0;
    st.wSecond = 0;
    
    SetSystemTime(ref st); // invoke this method.

    这边有详细的解释。希望对你有所帮助。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年3月20日 7:09
    版主
  • 来公布下可以用的,其实都是可以用的 好奇葩的系统

    __________________________________________________________


               public class SetSystemDateTime//设置系统日期类
            {
                [DllImportAttribute("Kernel32.dll")]
                public static extern void GetLocalTime(SystemTime st);
                [DllImportAttribute("Kernel32.dll")]
                public static extern void SetLocalTime(SystemTime st);
            }//这种模式也是可以用的

    ___________________________________________________

      [DllImport("kernel32.dll", SetLastError = true)]
            public static extern bool SetSystemTime(ref SYSTEMTIME st);
            [StructLayout(LayoutKind.Sequential)]
            public struct SYSTEMTIME
            {
                public short wYear;
                public short wMonth;
                public short wDayOfWeek;
                public short wDay;
                public short wHour;
                public short wMinute;
                public short wSecond;
                public short wMilliseconds;
            }

            private void button1_Click(object sender, EventArgs e)
            {
                SYSTEMTIME st = new SYSTEMTIME();
                st.wYear = 2009; // must be short
                st.wMonth = 1;
                st.wDay = 1;
                st.wHour = 0;
                st.wMinute = 0;
                st.wSecond = 0;

                SetSystemTime(ref st);
            }

    然而这还不行, 还是没反应,那么这个奇葩在什么地方?管理员运行!! 我就是管理员呀 是不是不可思议?

    这个管理员运行?怎么弄个代码能改了?

    看看系统的设置模式直接管理员运行

    接下来就是改权限的时候了  http://www.cnblogs.com/babycool/p/3569183.html

    一: 在Visual Studio 中--解决方案资源管理器--右键项目名称--属性,找到“安全性”选项,

    二:勾选“启用ClickOnce安全设置”,

    三:这时,在项目下面会多出一个“app.manifest”的文件,选中它,并找到代码段<requestedExecutionLevel level="asInvoker" uiAccess="false" />,将其改为:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />,

    打开:

    将上图部分修改为:

    四:改正后,不要急于重新编译生成,再次打开“属性--安全性”界面,

    将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。 不然程序会报错无法运行。

     

    五:最后,保存修改,重新编译运行程序。

    打开程序时,会提示“用户账户控制”来获取管理员权限运行,点击“是”则获取了管理员权限。




    2017年3月20日 7:38
  • 来公布下可以用的,其实都是可以用的 好奇葩的系统

    __________________________________________________________


               public class SetSystemDateTime//设置系统日期类
            {
                [DllImportAttribute("Kernel32.dll")]
                public static extern void GetLocalTime(SystemTime st);
                [DllImportAttribute("Kernel32.dll")]
                public static extern void SetLocalTime(SystemTime st);
            }//这种模式也是可以用的

    ___________________________________________________

      [DllImport("kernel32.dll", SetLastError = true)]
            public static extern bool SetSystemTime(ref SYSTEMTIME st);
            [StructLayout(LayoutKind.Sequential)]
            public struct SYSTEMTIME
            {
                public short wYear;
                public short wMonth;
                public short wDayOfWeek;
                public short wDay;
                public short wHour;
                public short wMinute;
                public short wSecond;
                public short wMilliseconds;
            }

            private void button1_Click(object sender, EventArgs e)
            {
                SYSTEMTIME st = new SYSTEMTIME();
                st.wYear = 2009; // must be short
                st.wMonth = 1;
                st.wDay = 1;
                st.wHour = 0;
                st.wMinute = 0;
                st.wSecond = 0;

                SetSystemTime(ref st);
            }

    然而这还不行, 还是没反应,那么这个奇葩在什么地方?管理员运行!! 我就是管理员呀 是不是不可思议?

    这个管理员运行?怎么弄个代码能改了?

    看看系统的设置模式直接管理员运行

    接下来就是改权限的时候了  http://www.cnblogs.com/babycool/p/3569183.html

    一: 在Visual Studio 中--解决方案资源管理器--右键项目名称--属性,找到“安全性”选项,

    二:勾选“启用ClickOnce安全设置”,

    三:这时,在项目下面会多出一个“app.manifest”的文件,选中它,并找到代码段<requestedExecutionLevel level="asInvoker" uiAccess="false" />,将其改为:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />,

    打开:

    将上图部分修改为:

    四:改正后,不要急于重新编译生成,再次打开“属性--安全性”界面,

    将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。 不然程序会报错无法运行。

     

    五:最后,保存修改,重新编译运行程序。

    打开程序时,会提示“用户账户控制”来获取管理员权限运行,点击“是”则获取了管理员权限。




    标记一下

    please verify my account

    2017年3月22日 3:27