为什么我不能在windows 7中编程替换perfc009.dat
本文关键字:编程 替换 perfc009 dat 不能 windows 为什么 | 更新日期: 2023-09-27 18:14:20
我们有一个应用程序,它使用Windows 7性能计数器来跟踪总CPU使用情况。每过一段时间,HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows NT'CurrentVersion'Perflib'009的注册表就会被损坏,只是空的。
手动按照这里找到的步骤http://support.microsoft.com/kb/300956工作完美。但是,当我编写c#程序以编程方式替换上述两个文件时,没有错误,异常等。但是文件没有保存到正确的目录。
下面是我用来测试的代码:
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的安全问题阻止了这个吗?
感谢Mike Z和上面评论中分享的链接。结果因为我运行的是32位进程,操作系统不允许编辑这些文件。编译到64位可以工作。
转发链接:http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187 (v = vs.85) . aspx