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セキュリティの問題はありますか?