2014-03-28 2 views
0

Я устанавливаю файл ttf в папку C:/Windows/Fonts из моего приложения WPF на C#. При установке я получаю System.AccessViolation Exception. Мой код ниже:C# AccessViolationException

int result = -1; 
      int error = 0; 
      var windowsDirectory = Environment.GetEnvironmentVariable("SystemRoot") + "\\Fonts\\"; 
      var directoryInfo = new DirectoryInfo("../../Assets/Fonts"); 

      foreach (var file in directoryInfo.GetFiles()) 
      { 
       result = AddFontResource((new FileInfo(windowsDirectory + file.Name)).ToString()); 
       error = Marshal.GetLastWin32Error(); 
       if (error != 0) 
       { 
        System.Diagnostics.Debug.WriteLine(new Win32Exception(error).Message); 
       } 
       else 
       { 
        System.Diagnostics.Debug.WriteLine((result == 0) ? "Font is already installed." : 
                 "Font installed successfully."); 
       } 
      } 

Как Iresolve мой вопрос

+0

Вы искали тип ошибки на MSDN? Очень ясно, в чем проблема после того, как вы ее прочитали. –

+0

Я знаю, в чем проблема. Я пытаюсь написать папку C:/Windows/Fonts, которая требует административных прав. Я спрашиваю, есть ли способ разрешить его прямо из кода WPF C# – user2877090

+0

возможного дубликата [Как заставить мое приложение .NET работать под управлением Windows 7?] (Http://stackoverflow.com/questions/2818179/ как к силе, моя внутрисетевые-приложение к запуску, как администратор-на-Windows-7) –

ответ

0

В случае исключение действительно основано на отсутствие прав администратора, вы можете прочитать this articel о том, как настроить приложение конфигурации прав администратора ,

Смежные вопросы