//恢复默认设置 private void btnDefault_Click(object sender, EventArgs e) { //询问是否恢复默认设置 if (MessageBox.Show("恢复默认设置?当前未保存的设置将会丢失", "恢复默认设置", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Cancel) { return; } //保存新设置 AcDownSettings s = new AcDownSettings(); CoreManager.ConfigManager.Settings = s; CoreManager.ConfigManager.SaveSettings(); //删除Firstrun文件 FirstrunHandler fh = new FirstrunHandler(); fh.DeleteFirstRunFile(); //关闭窗体 this.Close(); }
//初始化数据 private void LoadData() { //官方插件 var plugins = new Collection<IPlugin>() { new AcFunPlugin(), new YoukuPlugin(), //new YouTubePlugin(), new NicoPlugin(), new BilibiliPlugin(), new TudouPlugin(), new ImanhuaPlugin(), //new TiebaAlbumPlugin(), new SfAcgPlugin(), new TucaoPlugin(), new XiamiPlugin(), new GoodmangaPlugin(), new JiyingDmPlugin(), new Dm530Plugin(), new FlvcdPlugin(), //new AcDown.Downloader.AcDown.AcDownPlugin() }; //初始化核心 CoreManager.Initialize( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Kaedei" + Path.DirectorySeparatorChar + "AcDown" + Path.DirectorySeparatorChar), new UIDelegateContainer(null, null, null, null, null, null, null, null), plugins); //检查是否是首次运行 var firstrun = new FirstrunHandler(); if (firstrun.IsFirstRun()) { Process p = new Process(); p.StartInfo = new ProcessStartInfo() { FileName = Application.ExecutablePath, Arguments = "firstrun", Verb = "runas" }; //WinXP不使用Verb if (!DwmApi.IsWindowsVistaOrHigher()) p.StartInfo.Verb = ""; try { p.Start(); } catch { } } if (this.Disposing || this.IsDisposed) return; this.Invoke(new MethodInvoker(() => { //加载主窗体 Program.frmMain = new FormMain(); Program.frmMain.Show(); this.Hide(); })); }
static void Main(string[] args) { if (args.Length > 0) { string firstarg = ""; //检查第一个参数 firstarg = args[0]; //设置配置文件路径 CoreManager.StartupPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Kaedei" + Path.DirectorySeparatorChar + "AcDown" + Path.DirectorySeparatorChar); if (File.Exists(firstarg)) { string filename = new FileInfo(firstarg).FullName; //安装插件 if (firstarg.EndsWith(".acp", StringComparison.CurrentCultureIgnoreCase)) { try { var attrib = PluginManager.InstallPlugin(filename); MessageBox.Show("插件添加成功!" + Environment.NewLine + Environment.NewLine + "名称: " + attrib.FriendlyName + Environment.NewLine + "版本: " + attrib.Version.ToString() + Environment.NewLine + "作者: " + attrib.Author + Environment.NewLine + "来自: " + attrib.SupportUrl + Environment.NewLine + Environment.NewLine + "这个插件会在您下一次启动AcDown之后被加载", "添加插件成功", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (PluginFileNotSupportedException) { MessageBox.Show("未能成功加载此插件文件" + Environment.NewLine + "这个文件可能不是正确的AcDown插件", "插件加载失败", MessageBoxButtons.OK, MessageBoxIcon.Stop); } catch (Exception) { MessageBox.Show("文件读取失败" + Environment.NewLine + "如果您想重新安装一个已有的插件,请退出所有正在运行中的AcDown后再安装", "插件加载失败", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } else { //如果程序以临时文件启动 if (Updater.CheckIfUpdating(Application.ExecutablePath)) { //以自身覆盖目标文件 if (!Updater.CopyTempFileToTargetFile(filename)) MessageBox.Show("自动更新失败: 旧版本的AcDown可能尚未完全退出", "AcDown自动更新", MessageBoxButtons.OK, MessageBoxIcon.Warning); Process.Start(filename, "updated");//重新执行目标文件 } } //退出当前程序 return; } else if (firstarg.Equals("updated", StringComparison.CurrentCultureIgnoreCase)) { //如果参数为"updated",删除临时文件 Updater.DeleteTempFile(); } else if (firstarg.Equals("regasso", StringComparison.CurrentCultureIgnoreCase)) { if (Tools.IsRunningOnMono) //MessageBox.Show("此功能暂时不能在非 Windows 上使用。"); return; //注册.acplay关联 AssociateRegistrar.CreateAssociate( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Kaedei" + Path.DirectorySeparatorChar + "AcPlay" + Path.DirectorySeparatorChar + "acplay.exe"), ".acplay", "AcPlayFile", "弹幕播放快捷方式", ""); //注册.acp关联 AssociateRegistrar.CreateAssociate(Application.ExecutablePath, ".acp", "AcDownPlugin", "AcDown插件", ""); return; } else if (firstarg.Equals("firstrun", StringComparison.CurrentCultureIgnoreCase)) { var fr = new FirstrunHandler(); fr.RunFirstRun(); return; } } bool isAcDownNotStarted = false; Mutex mLocker = new Mutex(true, "AcDown", out isAcDownNotStarted); if (isAcDownNotStarted) { mLocker.WaitOne(); } else { if (MessageBox.Show("AcDown正在工作中,您是否希望运行一个新的AcDown实例?" + Environment.NewLine + "(同时打开多个AcDown容易出现不稳定的状况)", "启动多个AcDown", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Program.frmStart = new FormStart(); Application.Run(Program.frmStart); mLocker.ReleaseMutex(); }
//初始化数据 private void LoadData() { //官方插件 var plugins = new Collection <IPlugin>() { new AcFunPlugin(), new YoukuPlugin(), //new YouTubePlugin(), new NicoPlugin(), new BilibiliPlugin(), new TudouPlugin(), new ImanhuaPlugin(), //new TiebaAlbumPlugin(), new SfAcgPlugin(), new TucaoPlugin(), new XiamiPlugin(), new GoodmangaPlugin(), new JiyingDmPlugin(), new Dm530Plugin(), new FlvcdPlugin(), //new AcDown.Downloader.AcDown.AcDownPlugin() }; //初始化核心 CoreManager.Initialize( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Kaedei" + Path.DirectorySeparatorChar + "AcDown" + Path.DirectorySeparatorChar), new UIDelegateContainer(null, null, null, null, null, null, null, null), plugins); //检查是否是首次运行 var firstrun = new FirstrunHandler(); if (firstrun.IsFirstRun()) { Process p = new Process(); p.StartInfo = new ProcessStartInfo() { FileName = Application.ExecutablePath, Arguments = "firstrun", Verb = "runas" }; //WinXP不使用Verb if (!DwmApi.IsWindowsVistaOrHigher()) { p.StartInfo.Verb = ""; } try { p.Start(); } catch { } } if (this.Disposing || this.IsDisposed) { return; } this.Invoke(new MethodInvoker(() => { //加载主窗体 Program.frmMain = new FormMain(); Program.frmMain.Show(); this.Hide(); })); }