private void btnImportConfig_Click(object sender, EventArgs e) { // Let the user select the config dir FolderBrowserDialog folderBrowser = new FolderBrowserDialog(); folderBrowser.Description = "选择原来的Steam桌面身份验证器安装的文件夹"; DialogResult userClickedOK = folderBrowser.ShowDialog(); if (userClickedOK == DialogResult.OK) { string path = folderBrowser.SelectedPath; string pathToCopy = null; if (Directory.Exists(path + "/maFiles")) { // User selected the root install dir pathToCopy = path + "/maFiles"; } else if (File.Exists(path + "/manifest.json")) { // User selected the maFiles dir pathToCopy = path; } else { // Could not find either. MessageBox.Show("此文件夹不包含manifest.json文件或maFiles文件。请选择您安装Steam Desktop Authenticator的位置。", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Copy the contents of the config dir to the new config dir string currentPath = Manifest.GetExecutableDir(); // Create config dir if we don't have it if (!Directory.Exists(currentPath + "/maFiles")) { Directory.CreateDirectory(currentPath + "/maFiles"); } // Copy all files from the old dir to the new one foreach (string newPath in Directory.GetFiles(pathToCopy, "*.*", SearchOption.AllDirectories)) { File.Copy(newPath, newPath.Replace(pathToCopy, currentPath + "/maFiles"), true); } // Set first run in manifest try { man = Manifest.GetManifest(true); man.FirstRun = false; man.Save(); } catch (ManifestParseException) { // Manifest file was corrupted, generate a new one. try { MessageBox.Show("您的设置意外损坏,重置为初始值。", "Steam桌面验证器", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); man = Manifest.GenerateNewManifest(true); } catch (MaFileEncryptedException) { // An maFile was encrypted, we're f****d. MessageBox.Show("对不起,由于您使用了加密,SDA无法恢复您的帐户。您需要通过删除验证器来恢复您的Steam帐户。单击确认查看指示。", "Steam桌面验证器", MessageBoxButtons.OK, MessageBoxIcon.Error); System.Diagnostics.Process.Start(@"https://github.com/Jessecar96/SteamDesktopAuthenticator/wiki/Help!-I'm-locked-out-of-my-account"); this.Close(); return; } } // All done! MessageBox.Show("所有帐户和设置都已导入!单击“确定”继续。", "导入账号", MessageBoxButtons.OK, MessageBoxIcon.Information); showMainForm(); } }
static void Main(string[] args) { // run the program only once if (PriorProcess() != null) { MessageBox.Show("Another instance of the app is already running."); return; } // Parse command line arguments var options = new Options(); Parser.Default.ParseArguments(args, options); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Manifest man; try { man = Manifest.GetManifest(); } catch (ManifestParseException) { // Manifest file was corrupted, generate a new one. try { MessageBox.Show("Your settings were unexpectedly corrupted and were reset to defaults.", "Steam Desktop Authenticator", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); man = Manifest.GenerateNewManifest(true); } catch (MaFileEncryptedException) { // An maFile was encrypted, we're f****d. MessageBox.Show("Sorry, but SDA was unable to recover your accounts since you used encryption.\nYou'll need to recover your Steam accounts by removing the authenticator.\nClick OK to view instructions.", "Steam Desktop Authenticator", MessageBoxButtons.OK, MessageBoxIcon.Error); System.Diagnostics.Process.Start(@"https://github.com/Jessecar96/SteamDesktopAuthenticator/wiki/Help!-I'm-locked-out-of-my-account"); return; } } if (man.FirstRun) { // Install VC++ Redist and wait new InstallRedistribForm().ShowDialog(); if (man.Entries.Count > 0) { // Already has accounts, just run MainForm mf = new MainForm(); mf.SetEncryptionKey(options.EncryptionKey); mf.StartSilent(options.Silent); Application.Run(mf); } else { // No accounts, run welcome form Application.Run(new WelcomeForm()); } } else { MainForm mf = new MainForm(); mf.SetEncryptionKey(options.EncryptionKey); mf.StartSilent(options.Silent); Application.Run(mf); } }
private void btnImportConfig_Click(object sender, EventArgs e) { // Let the user select the config dir FolderBrowserDialog folderBrowser = new FolderBrowserDialog(); folderBrowser.Description = "Select the folder of your old Steam Desktop Authenticator install"; DialogResult userClickedOK = folderBrowser.ShowDialog(); if (userClickedOK == DialogResult.OK) { string path = folderBrowser.SelectedPath; string pathToCopy = null; if (Directory.Exists(path + "/maFiles")) { // User selected the root install dir pathToCopy = path + "/maFiles"; } else if (File.Exists(path + "/manifest.json")) { // User selected the maFiles dir pathToCopy = path; } else { // Could not find either. MessageBox.Show("This folder does not contain either a manifest.json or an maFiles folder.\nPlease select the location where you had Steam Desktop Authenticator installed.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Copy the contents of the config dir to the new config dir string currentPath = Manifest.GetExecutableDir(); // Create config dir if we don't have it if (!Directory.Exists(currentPath + "/maFiles")) { Directory.CreateDirectory(currentPath + "/maFiles"); } // Copy all files from the old dir to the new one foreach (string newPath in Directory.GetFiles(pathToCopy, "*.*", SearchOption.AllDirectories)) { File.Copy(newPath, newPath.Replace(pathToCopy, currentPath + "/maFiles"), true); } // Set first run in manifest try { man = Manifest.GetManifest(true); man.FirstRun = false; man.Save(); } catch (ManifestParseException) { // Manifest file was corrupted, generate a new one. try { MessageBox.Show("Your settings were unexpectedly corrupted and were reset to defaults.", "Steam Desktop Authenticator", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); man = Manifest.GenerateNewManifest(true); } catch (MaFileEncryptedException) { // An maFile was encrypted, we're f****d. MessageBox.Show("Sorry, but SDA was unable to recover your accounts since you used encryption.\nYou'll need to recover your Steam accounts by removing the authenticator.\nClick OK to view instructions.", "Steam Desktop Authenticator", MessageBoxButtons.OK, MessageBoxIcon.Error); System.Diagnostics.Process.Start(@"https://github.com/Jessecar96/SteamDesktopAuthenticator/wiki/Help!-I'm-locked-out-of-my-account"); this.Close(); return; } } // All done! MessageBox.Show("All accounts and settings have been imported! Click OK to continue.", "Import accounts", MessageBoxButtons.OK, MessageBoxIcon.Information); showMainForm(); } }
static void Main(string[] args) { // run the program only once if (PriorProcess() != null) { MessageBox.Show("该应用程序的另一个实例已经在运行。"); return; } // Parse command line arguments var options = new CommandLineOptions(); Parser.Default.ParseArguments(args, options); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Manifest man; try { man = Manifest.GetManifest(); } catch (ManifestParseException) { // Manifest file was corrupted, generate a new one. try { MessageBox.Show("您的设置意外损坏,重置为初始值。", "Steam桌面验证器", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); man = Manifest.GenerateNewManifest(true); } catch (MaFileEncryptedException) { // An maFile was encrypted, we're f****d. MessageBox.Show("对不起,由于您使用了加密,SDA无法恢复您的帐户。您需要通过删除验证器来恢复您的Steam帐户。单击确认查看指示。", "Steam桌面验证器", MessageBoxButtons.OK, MessageBoxIcon.Error); System.Diagnostics.Process.Start(@"https://github.com/Jessecar96/SteamDesktopAuthenticator/wiki/Help!-I'm-locked-out-of-my-account"); return; } } if (man.FirstRun) { // Install VC++ Redist and wait new InstallRedistribForm().ShowDialog(); if (man.Entries.Count > 0) { // Already has accounts, just run MainForm mf = new MainForm(); mf.SetEncryptionKey(options.EncryptionKey); mf.StartSilent(options.Silent); Application.Run(mf); } else { // No accounts, run welcome form Application.Run(new WelcomeForm()); } } else { MainForm mf = new MainForm(); mf.SetEncryptionKey(options.EncryptionKey); mf.StartSilent(options.Silent); Application.Run(mf); } }