mKhemraj Ответов: 2

Как открыть восстановление системы ('rstrui.exe') использование C#


Привет.
Может ли кто-нибудь, пожалуйста, сказать мне код, чтобы открыть Восстановление системы в Windows.
Заранее спасибо.

Что я уже пробовал:

Я попробовал процесс.Начало("C:\Windows\System32\rstrui.exe") и это не сработало. Это точное местоположение файла. Я тоже пытался
System.Diagnostics.Process.Start(Environment.SystemDirectory + "\rstrui.exe") and System.Diagnostics.Process.Start(Environment.SystemDirectory + "\restore\rstrui.exe")..  

Они тоже не работали.

Примечание: Я проверил каталог system32 и rstrui.exe существуйте в нем.когда я открываю его вручную, то он успешно открывается

lw@zi

Какую ошибку вы получаете?

mKhemraj

система не может найти указанный файл

Richard MacCutchan

Что "не работать" значит?

mKhemraj

получение ошибки - система не может найти указанный файл

Richard MacCutchan

Тогда ваш путь неверен,или у вас есть проблема с разрешениями.
Ваша строка содержит неэкранированную обратную косую черту, которая делает два символа \r действуйте как возврат кареты. Используйте @ префикс или двойная обратная косая черта в строке.

mKhemraj

тот же код прекрасно работает в windows7 32bit, но в windows8 64 и windows10 64 не работает.

Richard MacCutchan

Не стоит говорить такие вещи, как "не работать"- мы понятия не имеем, что это должно означать. Отредактируйте свой вопрос, покажите код, который не работает, и дайте правильные сведения о сбое.

2 Ответов

Рейтинг:
12

lw@zi

Итак, вы должны убедиться, что здесь есть несколько вещей:

1. вы строите конфигурацию AnyCPU.
2. Вы работаете против имени администратора.
3. Вы используете путь к файлу, как c:\windows\sysnative\rstrui.exe на 64-битных машинах. (Перенаправитель Файловой Системы (Windows)[^])


mKhemraj

Большое спасибо!.. он работает нормально..

Рейтинг:
1

OriginalGriff

Здесь есть несколько проблем: Windows и Windows\System32 являются системными папками, поэтому доступ к ним не гарантирован - и если вы не можете получить доступ к папке, вы не можете получить доступ к приложению. Начните с проверки разрешений, которые пользователь, от имени которого будет работать ваше приложение, имеет для доступа к папкам.

Во-вторых, то, что вы хотите сделать, довольно странно: восстановление вашей системы из приложения-это странный способ поведения.

Хотя если я попробую:

string path = Path.Combine(Environment.SystemDirectory, "rstrui.exe");
Process.Start(path);

Это работает для меня - и я немедленно нажимаю кнопку Отмена! :смеяться:


mKhemraj

спасибо OriginalGriff, но я проверил же... он не работает..