我们有一个应用程序使用Windows 7性能计数器来跟踪总CPU使用率。 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Perflib \ 009中的注册表经常会损坏,只是为空。
手动执行此处找到的步骤http://support.microsoft.com/kb/300956非常有效。但是,当我创建一个C#程序以编程方式替换所提到的2个文件时没有错误,异常等。但是文件没有保存到正确的目录中。
以下是我用来测试的内容:
static void Main(string[] args)
{
string fileToReadPath1 = @"perfc009.dat";
string fileToReadPath2 = @"perfh009.dat";
FileInfo fileToRead1 = new FileInfo(fileToReadPath1);
FileInfo fileToRead2 = new FileInfo(fileToReadPath2);
FileInfo fileToReplaceInfo1 = new FileInfo(@"C:\Windows\System32\perfc009.dat");
FileInfo fileToReplaceInfo2 = new FileInfo(@"C:\Windows\System32\perfh009.dat");
File.Copy(fileToRead1.FullName, fileToReplaceInfo1.FullName, true);
File.Copy(fileToRead2.FullName, fileToReplaceInfo2.FullName, true);
}
我确保使用管理权限运行它。
任何人都知道为什么该程序似乎运行良好,但不能将文件复制到该目录?是否有一些Windows安全措施阻止了这一点?
答案 0 :(得分:0)
感谢Mike Z和上述评论中分享的链接。事实证明,因为我在32位进程中运行,操作系统不允许它编辑这些文件。编译为64位确实有效。
重新发布链接: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx