private static async Task ResetService()
{
var secondResponse = ActionExtension.InvokeInMainThread(() => MessageDialog.Show(
"Would you like to reset FTH system to make sure changes are applied? Otherwise, you would need to restart Windows.[br][br]It’ll need to run this command:[br][mono]Rundll32.exe fthsvc.dll,FthSysprepSpecialize[/mono][br][br]Or, Content Manager can simply prepare a .bat-file for you to inspect and run manually. [url=\"https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap\"]Learn more[/url].",
"One more thing",
new MessageDialogButton(MessageBoxButton.YesNo, MessageBoxResult.Yes)
{
[MessageBoxResult.Yes] = "Reset automatically",
[MessageBoxResult.No] = "Prepare a .bat-file only"
}));
if (secondResponse == MessageBoxResult.Cancel)
{
return;
}
var filename = FilesStorage.Instance.GetTemporaryFilename("RunElevated", "FixFTH.bat");
File.WriteAllText(filename, @"@echo off
:: More info: https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap
echo Running rundll32.exe fthsvc.dll,FthSysprepSpecialize...
cd %windir%\system32
%windir%\system32\rundll32.exe fthsvc.dll,FthSysprepSpecialize
echo Done
pause");
if (secondResponse == MessageBoxResult.Yes)
{
var procRunDll32 = ProcessExtension.Start("explorer.exe", new[] { filename }, new ProcessStartInfo {
Verb = "runas"
});
await procRunDll32.WaitForExitAsync().ConfigureAwait(false);
Logging.Debug("Done: " + procRunDll32.ExitCode);
}
else if (secondResponse == MessageBoxResult.No)
{
WindowsHelper.ViewFile(filename);
}
}