private void BtnOK_Click(object sender, RoutedEventArgs e) { bool Restart = false; if (chkAutoStart.IsChecked == true) { App.SetConfig("Startup", "Tray", true); App.TrayIcon.Visible = true; App.AutoStart(true); if (chkService.IsChecked == true) { Priv10Service.Install(); App.Log.SetupEventLog(App.Key); Restart = true; } } if (chkNoUAC.IsChecked == true) { AdminFunc.SkipUacEnable(App.Key, true); } if (chkUseFW.IsChecked == true) { App.SetConfig("Firewall", "Enabled", 1); FirewallManager.FilteringModes Mode = FirewallManager.FilteringModes.WhiteList; App.SetConfig("Firewall", "Mode", Mode.ToString()); App.client.SetFilteringMode(Mode); FirewallMonitor.Auditing audit = FirewallMonitor.Auditing.All; App.SetConfig("Firewall", "AuditPol", audit.ToString()); App.client.SetAuditPolicy(audit); App.SetConfig("Firewall", "NotifyConnections", chkNotifyFW.IsChecked == true ? 1 : 0); if (!App.client.IsConnected()) { App.StartEngine(); App.client.Connect(); } } App.SetConfig("Startup", "ShowSetup", 0); if (Restart) { App.Restart(); } this.DialogResult = true; }
private void chkNoUAC_Click(object sender, RoutedEventArgs e) { if (bHold) { return; } if (!AdminFunc.IsAdministrator()) { if (MessageBox.Show(Translate.fmt("msg_admin_prompt", App.Title), App.Title, MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { App.Restart(true); } return; } AdminFunc.SkipUacEnable(App.Key, chkNoUAC.IsChecked == true); }
private void BtnOK_Click(object sender, RoutedEventArgs e) { bool Restart = false; if (chkAutoStart.IsChecked == true) { App.SetConfig("Startup", "Tray", true); App.mTray.Visible = true; App.AutoStart(true); if (chkService.IsChecked == true) { App.svc.Install(); Restart = true; } } if (chkNoUAC.IsChecked == true) { AdminFunc.SkipUacEnable(App.mName, true); } if (chkUseFW.IsChecked == true) { App.SetConfig("Firewall", "Enabled", 1); Firewall.FilteringModes Mode = Firewall.FilteringModes.WhiteList; App.SetConfig("Firewall", "Mode", Mode.ToString()); App.itf.SetFilteringMode(Mode); Firewall.Auditing audit = Firewall.Auditing.All; App.SetConfig("Firewall", "AuditPol", audit.ToString()); App.itf.SetAuditPol(audit); App.SetConfig("Firewall", "NotifyBlocked", chkNotifyFW.IsChecked == true ? 1 : 0); } App.SetConfig("Startup", "ShowSetup", 0); if (Restart) { App.Restart(); } this.DialogResult = true; }
static bool ExecuteCommands() { if (TestArg("-help") || TestArg("/?")) { string Message = "Available command line options\r\n"; string[] Help = { "Available Console Commands:", "========================================", "", "-state\t\t\tShow instalation state", "-uninstall\t\tUninstall Private Win10", "-shutdown\t\tClose Private Win10 instances", "-restart\t\tRestart Win10 and reload settings", "", "-svc_install\t\tInstall priv10 service (invokes -log_install)", "-svc_remove\t\tRemove priv10 service", "", "-log_install\t\tInstall PrivateWin10 Custom Event Log", "-log_remove\t\tRemove PrivateWin10 Custom Event Log", "", "-restore_dns\t\tRestore original DNS Configuration", "", "-console\t\tShow console with debug output", "-help\t\t\tShow this help message" }; if (!HasConsole) { MessageBox.Show(Message + string.Join("\r\n", Help)); } else { Console.WriteLine(Message); for (int j = 0; j < Help.Length; j++) { Console.WriteLine(" " + Help[j]); } } return(true); } bool bDone = false; if (TestArg("-uninstall")) { AppLog.Debug("Uninstalling Private Win10"); bDone = true; } if (TestArg("-svc_remove") || (Priv10Service.IsInstalled() && TestArg("-uninstall"))) { AppLog.Debug("Removing Service..."); Priv10Service.Uninstall(); bDone = true; } if (TestArg("-shutdown") || TestArg("-restart") || TestArg("-restore") || TestArg("-uninstall")) { AppLog.Debug("Closing instances..."); if (Priv10Service.IsInstalled()) { Priv10Service.Terminate(); } Thread.Sleep(500); foreach (var proc in Process.GetProcessesByName(App.Key)) { if (proc.Id == ProcFunc.CurID) { continue; } proc.Kill(); } bDone = true; } if (TestArg("-restore")) { string zipPath = GetArg("-restore"); try { if (zipPath == null || !File.Exists(zipPath)) { throw new Exception("Data backup zip not specifyed or invalid path"); } Console.WriteLine("Restoring settings from {0}", zipPath); string extractPath = App.dataPath; // Normalizes the path. extractPath = Path.GetFullPath(extractPath); // Ensures that the last character on the extraction path // is the directory separator char. // Without this, a malicious zip file could try to traverse outside of the expected // extraction path. if (!extractPath.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal)) { extractPath += Path.DirectorySeparatorChar; } // create data directory if (!Directory.Exists(dataPath)) { Directory.CreateDirectory(dataPath); } // ensure its writable by non administrators FileOps.SetAnyDirSec(dataPath); // Extract the backuped files using (ZipArchive archive = ZipFile.OpenRead(zipPath)) { foreach (ZipArchiveEntry entry in archive.Entries) { // Gets the full path to ensure that relative segments are removed. string destinationPath = Path.GetFullPath(Path.Combine(extractPath, entry.FullName)); // Ordinal match is safest, case-sensitive volumes can be mounted within volumes that // are case-insensitive. if (!destinationPath.StartsWith(extractPath, StringComparison.Ordinal)) { continue; } Console.WriteLine("Restored file {0}", entry.FullName); if (File.Exists(destinationPath)) { FileOps.DeleteFile(destinationPath); } else if (!Directory.Exists(Path.GetDirectoryName(destinationPath))) { Directory.CreateDirectory(Path.GetDirectoryName(destinationPath)); } entry.ExtractToFile(destinationPath); } } } catch (Exception err) { Console.WriteLine(err.Message); MessageBox.Show(Translate.fmt("msg_restore_error", err.Message), App.Title, MessageBoxButton.OK, MessageBoxImage.Stop); } bDone = true; } if (TestArg("-restart") || TestArg("-restore")) { Thread.Sleep(500); AppLog.Debug("Starting instances..."); if (Priv10Service.IsInstalled()) { Priv10Service.Startup(); } Thread.Sleep(500); ProcessStartInfo startInfo = new ProcessStartInfo(App.exePath); startInfo.UseShellExecute = true; startInfo.Verb = "runas"; Process.Start(startInfo); bDone = true; } if (TestArg("-log_remove") || (Log.UsingEventLog() && TestArg("-uninstall"))) { AppLog.Debug("Removing Event Log..."); Log.RemoveEventLog(Key); bDone = true; } if (TestArg("-svc_install")) { AppLog.Debug("Installing Service..."); Priv10Service.Install(TestArg("-svc_start")); bDone = true; } if (TestArg("-log_install") || TestArg("-svc_install")) // service needs the event log { AppLog.Debug("Setting up Event Log..."); Log.SetupEventLog(Key); bDone = true; } if (TestArg("-restore_dns") || (DnsConfigurator.IsAnyLocalDNS() && TestArg("-uninstall"))) { AppLog.Debug("Restoring DNS Config..."); DnsConfigurator.RestoreDNS(); bDone = true; } if (TestArg("-uninstall") && AdminFunc.IsSkipUac(App.Key)) { AppLog.Debug("Removing UAC Bypass..."); AdminFunc.SkipUacEnable(App.Key, false); bDone = true; } if (TestArg("-uninstall") && App.IsAutoStart()) { AppLog.Debug("Removing Autostart..."); App.AutoStart(false); bDone = true; } if (bDone) { AppLog.Debug("done"); } if (TestArg("-state")) { Console.WriteLine(); Console.WriteLine("Instalation State:"); Console.WriteLine("========================="); // 25 Console.Write("Auto Start:\t"); Console.WriteLine(App.IsAutoStart()); Console.Write("UAC Bypass:\t"); Console.WriteLine(AdminFunc.IsSkipUac(App.Key)); Console.Write("Service:\t"); Console.WriteLine(Priv10Service.IsInstalled()); Console.Write("Event Log:\t"); Console.WriteLine(Log.UsingEventLog()); Console.Write("Local DNS:\t"); Console.WriteLine(DnsConfigurator.IsAnyLocalDNS()); Console.WriteLine(); bDone = true; } if (TestArg("-wait")) { Console.WriteLine(); for (int i = 10; i >= 0; i--) { Console.Write("\r{0}% ", i); Thread.Sleep(1000); } } return(bDone); }
static bool ExecuteCommands() { if (TestArg("-help") || TestArg("/?")) { string Message = "Available command line options\r\n"; string[] Help = { "Available Console Commands:", "========================================", "", "-state\t\t\tShow instalation state", "-uninstall\t\tUninstall PrivateWinTen", "", "-svc_install\t\tInstall priv10 service (invokes -log_install)", "-svc_remove\t\tRemove priv10 service", "", "-log_install\t\tInstall PrivateWin10 Custom Event Log", "-log_remove\t\tRemove PrivateWin10 Custom Event Log", "", "-console\t\tShow console with debug output", "-help\t\t\tShow this help message" }; if (!HasConsole) { MessageBox.Show(Message + string.Join("\r\n", Help)); } else { Console.WriteLine(Message); for (int j = 0; j < Help.Length; j++) { Console.WriteLine(" " + Help[j]); } } return(true); } bool bDone = false; if (TestArg("-svc_install")) { AppLog.Debug("Installing Service..."); svc.Install(TestArg("-svc_start")); bDone = true; } if (TestArg("-log_install") || TestArg("-svc_install")) // service needs the event log { AppLog.Debug("Setting up Event Log..."); Log.SetupEventLog(mAppName); bDone = true; } if (TestArg("-uninstall")) { AppLog.Debug("Uninstalling PrivateWinTen"); bDone = true; } if (TestArg("-svc_remove") || (svc.IsInstalled() && TestArg("-uninstall"))) { AppLog.Debug("Removing Service..."); svc.Uninstall(); bDone = true; } if (TestArg("-log_remove") || (Log.UsingEventLog() && TestArg("-uninstall"))) { AppLog.Debug("Removing Event Log..."); Log.RemoveEventLog(mAppName); bDone = true; } if (TestArg("-uninstall") && AdminFunc.IsSkipUac(mName)) { AppLog.Debug("Removing UAC Bypass..."); AdminFunc.SkipUacEnable(mName, false); bDone = true; } if (TestArg("-uninstall") && App.IsAutoStart()) { AppLog.Debug("Removing Autostart..."); App.AutoStart(false); bDone = true; } if (bDone) { AppLog.Debug("done"); } if (TestArg("-state")) { Console.WriteLine(); Console.WriteLine("Instalation State:"); Console.WriteLine("========================="); // 25 Console.Write("Auto Start:\t"); Console.WriteLine(App.IsAutoStart()); Console.Write("UAC Bypass:\t"); Console.WriteLine(AdminFunc.IsSkipUac(mName)); Console.Write("Event Log:\t"); Console.WriteLine(Log.UsingEventLog()); Console.Write("Service:\t"); Console.WriteLine(svc.IsInstalled()); Console.WriteLine(); } if (TestArg("-wait")) { Console.WriteLine(); for (int i = 10; i >= 0; i--) { Console.Write("\r{0}% ", i); Thread.Sleep(1000); } } return(bDone); }