private void Window_Loaded(object sender, RoutedEventArgs e) { try { // Получаем и отображаем текущий integrity level IntegrityLevel il = ProccessIntegrityLevelHelper.GetCurrentProcessIntegrityLevel(); switch (il) { case IntegrityLevel.Unknown: lblIntegrityLevel.Content = "Неизвестный"; break; case IntegrityLevel.Untrusted: lblIntegrityLevel.Content = "Недоверенный"; break; case IntegrityLevel.Low: lblIntegrityLevel.Content = "Низкий"; break; case IntegrityLevel.Medium: lblIntegrityLevel.Content = "Средний"; break; case IntegrityLevel.High: lblIntegrityLevel.Content = "Высокий"; break; case IntegrityLevel.System: lblIntegrityLevel.Content = "Системный"; break; } } catch (Win32Exception) { lblIntegrityLevel.Content = "N/A"; } }
private void OnRunButton_Click(object sender, RoutedEventArgs e) { try { // Пытаемся запустить свою копию с низким integrity уровнем ProccessIntegrityLevelHelper.CreateLowIntegrityProcess(GetExecutablePath()); } catch (Win32Exception ex) { MessageBox.Show(ex.Message, "CreateLowIntegrityProcess Error", MessageBoxButton.OK, MessageBoxImage.Error); } }