在不使用kernel32.dll的情况下使用C#.NET设置系统时间

在不使用kernel32.dll的情况下使用C#.NET设置系统时间,.net,pinvoke,kernel32,systemtime,.net,Pinvoke,Kernel32,Systemtime,有没有办法不用kernel32.dll在C#.NET中设置系统时间 我在一个64位系统上,调用set time函数似乎会返回“false”。对于这种性质的低级系统管理问题,.NET framework通常不关心 这里的问题是,你不能在不告诉我们为什么它对你很重要的情况下问这样的问题,这样人们就可以在不需要通灵的情况下为你恰当地解释答案 你为什么要这么做?会更快吗?您是否担心DLL可能不在系统上:D 找到答案的一种方法是使用Reflector(趁热获取)来查找kernel32方法名称——不管是什么

有没有办法不用kernel32.dll在C#.NET中设置系统时间


我在一个64位系统上,调用set time函数似乎会返回“false”。

对于这种性质的低级系统管理问题,.NET framework通常不关心

这里的问题是,你不能在不告诉我们为什么它对你很重要的情况下问这样的问题,这样人们就可以在不需要通灵的情况下为你恰当地解释答案

你为什么要这么做?会更快吗?您是否担心DLL可能不在系统上:D


找到答案的一种方法是使用Reflector(趁热获取)来查找kernel32方法名称——不管是什么包装,它都可能使用p/Invoke,除非他们付钱,否则愚蠢的窃听者只会对包装存根使用相同的名称。

尝试以管理员身份运行或禁用UAC-如果有的话-

你的问题不正确。应该是
当我尝试使用p/invoke XXXX设置系统时间时,我得到一个错误,说YYY,我如何更正方法调用?
要求解决方法是错误的。您运行提升吗?那就必须到位扰乱时间是一种特权操作。我不喜欢文件kernel32.dll的名称。文件名看起来很奇怪,因为我正在编写一个64位程序。我正在寻找解决方法,因为您建议DLL可能丢失。@broiyan:我对文件可能因为某种原因而被删除的建议表示了微笑。Syswow64和friends以及,system32并不总是意味着“32位文件就在这里”,这是不将32和64作为文件名面值的众多原因之一。我建议阅读雷蒙德·陈(Raymond Chen)博客(thatoldnewthing.com)上的32/64篇文章,以获得良好的背景知识。