예제 #1
0
        private void FormNew_Load(object sender, EventArgs e)
        {
            //设置提示文字
            DwmApi.SetTextBoxTipText(txtInput.Handle, "将网页地址粘贴或填写到此处");
            //显示默认文字
            if (!string.IsNullOrEmpty(u))
            {
                txtInput.Text = u;
            }
            cboPath.Items.Add(CoreManager.ConfigManager.Settings.SavePath);
            cboPath.Items.AddRange(CoreManager.ConfigManager.Settings.SaveFolders.ToArray());
            cboPath.Items.Add(CLEAR_HISTORY);
            cboPath.SelectedIndex = 0;
            //填充代理服务器
            LoadProxys();

            //下载类型
            for (int i = 0; i < lstDownloadType.Items.Count; i++)
            {
                lstDownloadType.SetItemChecked(i, true);
            }

            //解析关联的下载项
            chkParseRelated.Checked = CoreManager.ConfigManager.Settings.ParseRelated;
            //自动应答
            chkAutoAnswer.Checked = CoreManager.ConfigManager.Settings.AutoAnswer;
            //缓存提取
            chkExtractCache.Checked = CoreManager.ConfigManager.Settings.ExtractCache;

            //设置焦点
            btnAdd.Focus();
        }
예제 #2
0
 private void FormStart_Load(object sender, EventArgs e)
 {
     //设置AERO效果
     marg = new DwmApi.MARGINS(this.Width, this.Height, this.Width, this.Height);
     if (Config.IsWindowsVistaOrHigher())      //如果是vista以上
     {
         if (DwmApi.DwmIsCompositionEnabled()) //如果dwm被启用了(有AERO效果)
         {
             this.BackColor         = Color.Black;
             this.picIcon.BackColor = Color.Black;
             DwmApi.DwmExtendFrameIntoClientArea(this.Handle, marg);
         }
     }
 }
예제 #3
0
 //窗体重绘事件
 private void FormStart_Paint(object sender, PaintEventArgs e)
 {
     if (Config.IsWindowsVistaOrHigher())
     {
         //定义重绘的矩形范围
         Rectangle rect = new Rectangle(0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height);
         //如果操作系统dwm启用
         if (DwmApi.DwmIsCompositionEnabled())
         {
             //使用黑色画刷进行重绘
             using (SolidBrush blackbrush = new SolidBrush(Color.Black))
             {
                 e.Graphics.FillRectangle(blackbrush, rect);//重绘玻璃部分
             }
         }
     }
 }
예제 #4
0
        /// <summary>
        /// 创建文件关联
        /// </summary>
        /// <param name="programFile">应用程序文件的完整路径("C:\abc\def.exe")</param>
        /// <param name="extension">文件扩展名(例如 ".txt")</param>
        /// <param name="typeName">文件类型名称</param>
        /// <param name="description">文件类型描述</param>
        /// <param name="argument">附加参数(不包括"%1")</param>
        /// <returns></returns>
        public static bool CreateAssociate(string programFile, string extension, string typeName, string description, string argument)
        {
            argument = argument ?? "";
            try
            {
                RegistryKey key;
                //设置自定义文件的双击打开
                key = Registry.ClassesRoot.OpenSubKey(typeName);
                if (key == null)
                {
                    key = Registry.ClassesRoot.CreateSubKey(typeName);
                }
                key.SetValue("", description);
                key = key.CreateSubKey("shell");
                key = key.CreateSubKey("open");
                key = key.CreateSubKey("command");
                key.SetValue("", string.Format(@"""{0}"" ""%1"" {1}", programFile, argument));

                //设置自定义文件的默认图标
                //key = Registry.ClassesRoot.OpenSubKey(typeName, true);
                //key = key.CreateSubKey("DefaultIcon");
                //key.SetValue("", string.Format("{0},0", programFile));

                //新增的扩展名和设置关联
                key = Registry.ClassesRoot.OpenSubKey(extension);
                if (key == null)
                {
                    key = Registry.ClassesRoot.CreateSubKey(extension);
                }
                key.SetValue("", typeName);

                //刷新Explorer
                DwmApi.RefreshNotify();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
예제 #5
0
        //设置文件关联
        private void btnSetFileAsso_Click(object sender, EventArgs e)
        {
            Process p = new Process();

            p.StartInfo = new ProcessStartInfo()
            {
                FileName  = Application.ExecutablePath,
                Arguments = "regasso",
                Verb      = "runas"
            };
            //WinXP不使用Verb
            if (!DwmApi.IsWindowsVistaOrHigher())
            {
                p.StartInfo.Verb = "";
            }
            try
            {
                p.Start();
            }
            catch { }
        }
예제 #6
0
        private void FormConfig_Load(object sender, EventArgs e)
        {
            //视觉效果
            DwmApi.SetListViewVisualEffect(this.lsvProxy);
            DwmApi.SetShieldIcon(btnSetFileAsso);

            //Mono
            if (Tools.IsRunningOnMono)
            {
                chkWatch.Enabled         = false;
                chkWatchShortUrl.Enabled = false;
                chkEnableWin7.Enabled    = false;
            }

            //设置控件状态
            chkOpenFolder.Checked = CoreManager.ConfigManager.Settings.OpenFolderAfterComplete;
            chkPlaySound.Checked  = CoreManager.ConfigManager.Settings.PlaySound;
            if (!string.IsNullOrEmpty(CoreManager.ConfigManager.Settings.SoundFile))
            {
                chkCustomSound.Checked = true;
                txtCustomSound.Text    = CoreManager.ConfigManager.Settings.SoundFile;
            }
            chkParseRelated.Checked       = CoreManager.ConfigManager.Settings.ParseRelated;
            chkEnableExtractCache.Checked = CoreManager.ConfigManager.Settings.ExtractCache;
            numCacheSize.Value            = CoreManager.ConfigManager.Settings.CacheSize;
            txtSavePath.Text         = CoreManager.ConfigManager.Settings.SavePath;
            chkEnableLog.Checked     = CoreManager.ConfigManager.Settings.Logging;
            chkWatch.Checked         = CoreManager.ConfigManager.Settings.WatchClipboard;
            chkWatchShortUrl.Checked = CoreManager.ConfigManager.Settings.WatchClipboardShortUrl;
            chkDeleteFile.Checked    = CoreManager.ConfigManager.Settings.DeleteTaskAndFile;
            if (!DwmApi.IsWindows7OrHigher())
            {
                chkEnableWin7.Enabled = false;
            }
            chkEnableWin7.Checked            = CoreManager.ConfigManager.Settings.Windows7Feature;
            chkHideWhenClose.Checked         = CoreManager.ConfigManager.Settings.HideWhenClose;
            cboMaxRunningCount.SelectedIndex = CoreManager.ConfigManager.Settings.MaxRunningTaskCount - 1;
            txtSearchText.Text           = CoreManager.ConfigManager.Settings.SearchQuery;
            udRefreshInfo.Value          = CoreManager.ConfigManager.Settings.RefreshInfoInterval;
            udToolFormTimeout.Value      = CoreManager.ConfigManager.Settings.ToolFormTimeout;
            chkEnableCheckUpdate.Checked = CoreManager.ConfigManager.Settings.CheckUpdate;
            udNetworkTimeout.Value       = CoreManager.ConfigManager.Settings.NetworkTimeout;

            if (CoreManager.ConfigManager.Settings.CheckUpdateDocument == "stable")
            {
                rdoChannelStable.Checked = true;
            }
            else if (CoreManager.ConfigManager.Settings.CheckUpdateDocument == "develop")
            {
                rdoChannelDevelop.Checked = true;
            }
            else
            {
                rdoChannelCustom.Checked = true;
                txtUpdateDocument.Text   = CoreManager.ConfigManager.Settings.CheckUpdateDocument;
            }
            udRetryTimes.Value      = CoreManager.ConfigManager.Settings.RetryTimes;
            udRetryWatingTime.Value = CoreManager.ConfigManager.Settings.RetryWaitingTime / 1000;

            //代理服务器设置
            if (CoreManager.ConfigManager.Settings.Proxy_Settings != null)
            {
                foreach (AcDownProxy item in CoreManager.ConfigManager.Settings.Proxy_Settings)
                {
                    lsvProxy.Items.Add(new ListViewItem(new string[]
                    {
                        item.Name,
                        item.Address,
                        item.Port.ToString(),
                        item.Username,
                        item.Password
                    }));
                }
            }
        }
예제 #7
0
        //初始化数据
        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();
            }));
        }