فهرست منبع

redraw the UI, remove useless code

shenjian Office PC 7 سال پیش
والد
کامیت
63a11639d1

BIN
AVDB - with form.accdb


+ 12 - 15
PicSo.sln → AvSorter.sln

@@ -1,14 +1,14 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26730.16
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PicSo", "PicSo\PicSo.csproj", "{1A9F40ED-0402-4145-9140-0C153B989983}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gets", "Gets\Gets.csproj", "{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entity", "Entity\Entity.csproj", "{21D25A8A-680F-4C0A-815B-AE394905A64A}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gets", "Gets\Gets.csproj", "{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -23,14 +23,6 @@ Global
 		{1A9F40ED-0402-4145-9140-0C153B989983}.Release|Any CPU.ActiveCfg = Release|x86
 		{1A9F40ED-0402-4145-9140-0C153B989983}.Release|x86.ActiveCfg = Release|x86
 		{1A9F40ED-0402-4145-9140-0C153B989983}.Release|x86.Build.0 = Release|x86
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|x86.Build.0 = Debug|Any CPU
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|x86.ActiveCfg = Release|Any CPU
-		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|x86.Build.0 = Release|Any CPU
 		{21D25A8A-680F-4C0A-815B-AE394905A64A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{21D25A8A-680F-4C0A-815B-AE394905A64A}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{21D25A8A-680F-4C0A-815B-AE394905A64A}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -39,11 +31,16 @@ Global
 		{21D25A8A-680F-4C0A-815B-AE394905A64A}.Release|Any CPU.Build.0 = Release|Any CPU
 		{21D25A8A-680F-4C0A-815B-AE394905A64A}.Release|x86.ActiveCfg = Release|Any CPU
 		{21D25A8A-680F-4C0A-815B-AE394905A64A}.Release|x86.Build.0 = Release|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Debug|x86.Build.0 = Debug|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|x86.ActiveCfg = Release|Any CPU
+		{9262F4C4-2D81-41AB-A444-57D3A21CEA9B}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {6AD05AF0-E76E-4406-AB61-B4253158443D}
-	EndGlobalSection
 EndGlobal

+ 0 - 1
Entity/Entity.csproj

@@ -57,7 +57,6 @@
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
     <Compile Include="ResultArzon.cs" />
-    <Compile Include="SearchItem.cs" />
     <Compile Include="Tools.cs" />
   </ItemGroup>
   <ItemGroup>

+ 0 - 318
Entity/SearchItem.cs

@@ -1,318 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-
-namespace AVSORTER
-{
-    public class SearchItem
-    {
-        #region 构造函数 public FileItem(string codeString,IGetable getor)
-
-        public SearchItem(string codeString, IGetable getor)
-        {
-            this._queryString = codeString;
-            this.Getor = getor;
-        }
-        #endregion
-
-        #region 属性 查询字符串public string SeedString
-
-        private string _queryString;
-        public string SeedString
-        {
-            get { return _queryString; }
-        }
-        #endregion
-
-        #region 属性 影片信息 public Movie MovieDetail
-        private Movie _mv;
-
-        public Movie MovieDetail
-        {
-            get { return _mv; }
-
-        }
-        #endregion
-
-        /// <summary>
-        /// 结果列表
-        /// </summary>
-        public List<MovieBasic> MovieBasicList { get; set; }
-
-        private QStatus _status = QStatus.未开始;
-
-        public QStatus Status
-        {
-            get { return _status; }
-            set { _status = value; }
-        }
-        public object Tag { get; set; }
-
-        /// <summary>
-        /// 设定选择结果
-        /// </summary>
-        /// <param name="index"></param>
-        public void Select(int index)
-        {
-            this.chooseIndex = index;
-
-            _startGetMovie();
-        }
-        public bool IsSelected
-        {
-            get
-            {
-                if (this.chooseIndex == -1)
-                {
-                    return false;
-                }
-                else
-                {
-                    return true;
-                }
-            }
-        }
-        /// <summary>
-        /// 设定选择结果
-        /// </summary>
-        /// <param name="basic"></param>
-        public void Select(MovieBasic basic)
-        {
-            this.chooseIndex = MovieBasicList.IndexOf(basic);
-            _startGetMovie();
-        }
-
-        public MovieBasic SelectedMovieBasic
-        {
-            get
-            {
-                if (this.IsSelected)
-                {
-                    return this.MovieBasicList[chooseIndex];
-                }
-                else
-                {
-                    return null;
-                }
-            }
-        }
-
-        private void _startGetMovie()
-        {
-            if (OnAboutToLoadImage == null)
-            {
-                throw new Exception("必须注册这个事件");
-            }
-            else
-            {
-                OnAboutToLoadImage(this, new EventArgs());
-            }
-
-            try
-            {
-                if (this.chooseIndex != -1)
-                {
-                    Func<MovieBasic, Movie> fuc = new Func<MovieBasic, Movie>(Getor.GetMovie);
-                    fuc.BeginInvoke(this.MovieBasicList[this.chooseIndex], _getMovieCallback, fuc);
-                    RaiseStatusChangeEvent(QStatus.查询完成一个结果, QStatus.获取信息中, "");
-                }
-                else
-                {
-                    this._status = QStatus.出错;
-                    throw new Exception("还没有选定影片");
-                }
-            }
-            catch (Exception ee)
-            {
-
-                throw ee;
-            }
-        }
-        private void _getMovieCallback(IAsyncResult res)
-        {
-
-            try
-            {
-                this._mv = (res.AsyncState as Func<MovieBasic, Movie>).EndInvoke(res);
-                this._status = QStatus.获取信息完成;
-                if (IsDownloadCover)
-                {
-
-                    RaiseStatusChangeEvent(QStatus.获取信息中, QStatus.获取信息完成, "已经获取影片信息!");
-                    this._status = QStatus.下载封面中;
-                    RaiseStatusChangeEvent(QStatus.获取信息完成, QStatus.下载封面中, "已经获取影片信息!");
-                    _startGetCover();
-                }
-                else
-                {
-                    this._status = QStatus.准备好移动文件;
-                    RaiseStatusChangeEvent(QStatus.获取信息中, QStatus.准备好移动文件, "已经获取影片信息,不要求获取封面!");
-                }
-            }
-            catch (Exception)
-            {
-                RaiseStatusChangeEvent(QStatus.获取信息中, QStatus.出错, "获取影片信息时出错!");
-            }
-            finally
-            {
-                if (OnCompletedLoadImage == null)
-                {
-                    throw new Exception("必须注册这个事件");
-                }
-                else
-                {
-                    OnCompletedLoadImage(this, new EventArgs());
-                }
-            }
-
-        }
-
-        private void _startGetCover()
-        {
-            if (IsDownloadCover)
-            {
-                Func<Movie, bool> fuc = new Func<Movie, bool>(Getor.GetCover);
-                fuc.BeginInvoke(this._mv, _getCoverCallBack, fuc);
-            }
-        }
-        private void _getCoverCallBack(IAsyncResult res)
-        {
-            try
-            {
-                var ress = (res.AsyncState as Func<Movie, bool>).EndInvoke(res);
-
-                this._status = QStatus.准备好移动文件;
-                RaiseStatusChangeEvent(QStatus.下载封面中, QStatus.准备好移动文件, "封面下载完毕");
-            }
-            catch (Exception)
-            {
-                RaiseStatusChangeEvent(QStatus.下载封面中, QStatus.出错, "下载封面出错");
-            }
-
-        }
-
-        virtual protected void RaiseStatusChangeEvent(QStatus b, QStatus aft, string msg)
-        {
-            this._status = aft;
-            if (OnStatusChange != null)
-            {
-                OnStatusChange(this, new StatusChangeEventArgs(b, aft, msg));
-            }
-        }
-
-        public event StatusChangeEvent OnStatusChange;
-
-        private int chooseIndex = -1;
-
-        public IGetable Getor
-        {
-            get;
-            set;
-        }
-
-        public void StartQuery()
-        {
-            if (OnAboutToLoadInfo == null)
-            {
-                throw new Exception("必须注册这个事件");
-            }
-            else
-            {
-				OnAboutToLoadInfo(this, new EventArgs());
-            }
-
-
-            if (this.Getor != null)
-            {
-                //this.MovieBasicList = Getor.Query(SeedString);
-                Func<string, List<MovieBasic>> fuc = new Func<string, List<MovieBasic>>(Getor.Query);
-                fuc.BeginInvoke(SeedString, queryFinishCallBack, fuc);
-
-                RaiseStatusChangeEvent(QStatus.未开始, QStatus.查询中, "");
-            }
-            else
-            {
-                RaiseStatusChangeEvent(QStatus.查询中, QStatus.出错, "查询影片出错");
-            }
-        }
-        private void queryFinishCallBack(IAsyncResult obj)
-        {
-            try
-            {
-                this.MovieBasicList = (obj.AsyncState as Func<string, List<MovieBasic>>).EndInvoke(obj);
-                if (this.MovieBasicList.Count > 1)
-                {
-                    RaiseStatusChangeEvent(QStatus.查询中, QStatus.多个结果请选择一个, "");
-                }
-                else if (this.MovieBasicList.Count == 1)
-                {
-                    RaiseStatusChangeEvent(QStatus.查询中, QStatus.查询完成一个结果, "");
-                    if (this.IsAutoSelect)
-                    {
-                        RaiseStatusChangeEvent(QStatus.查询完成一个结果, QStatus.获取信息中, "");
-                        Select(0);
-                    }
-                }
-                else
-                {
-                    RaiseStatusChangeEvent(QStatus.查询中, QStatus.查询完成无匹配, "");
-                }
-            }
-            catch (Exception)
-            {
-                RaiseStatusChangeEvent(QStatus.查询中, QStatus.出错, "查询出错");
-                this.MovieBasicList = null;
-                this.chooseIndex = -1;
-            }
-            finally
-            {
-                if (OnCompletedLoadInfo == null)
-                {
-                    throw new Exception("必须注册这个事件");
-                }
-                else
-                {
-                    OnCompletedLoadInfo(this, new EventArgs());
-                }
-            }
-
-        }
-
-        public class StatusChangeEventArgs : EventArgs
-        {
-            public QStatus Before { get; set; }
-            public QStatus After { get; set; }
-            public string Message { get; set; }
-            public StatusChangeEventArgs(QStatus _before, QStatus _after, string _msg)
-            {
-                this.Before = _before;
-                this.After = _after;
-                this.Message = _msg;
-            }
-        }
-
-        public delegate void StatusChangeEvent(object sender, StatusChangeEventArgs e);
-
-        public event EventHandler OnAboutToLoadInfo;
-
-        public event EventHandler OnCompletedLoadInfo;
-
-        public event EventHandler OnAboutToLoadImage;
-
-        public event EventHandler OnCompletedLoadImage;
-
-
-
-        /// <summary>
-        /// 是否自动下载封面
-        /// </summary>
-        public bool IsDownloadCover { get; set; }
-        /// <summary>
-        /// 当查询结果只有一个时候,是否自动下载详细信息。
-        /// </summary>
-        public bool IsAutoSelect { get; set; }
-    }
-
-}

+ 1 - 1
Gets/Arzon.cs

@@ -248,7 +248,7 @@ namespace Gets
 
                 //AV女優:
                 var item1 = docc.DocumentNode.SelectSingleNode("//table[@class='item']/tr[1]/td[2]").InnerText.Trim();
-                var actorsArr = item1.Split(new char[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList<string>();
+                var actorsArr = item1.Split(new char[] { '\r',' ', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList<string>();
 
                 //AVメーカー    制造厂
                 var item2 = docc.DocumentNode.SelectSingleNode("//table[@class='item']/tr[2]/td[2]").InnerText.Trim();

+ 188 - 0
PicSo/AboutBox1.Designer.cs

@@ -0,0 +1,188 @@
+namespace PicSo
+{
+    partial class AboutBox1
+    {
+        /// <summary>
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows 窗体设计器生成的代码
+
+        /// <summary>
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox1));
+            this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+            this.logoPictureBox = new System.Windows.Forms.PictureBox();
+            this.labelProductName = new System.Windows.Forms.Label();
+            this.labelVersion = new System.Windows.Forms.Label();
+            this.labelCopyright = new System.Windows.Forms.Label();
+            this.labelCompanyName = new System.Windows.Forms.Label();
+            this.textBoxDescription = new System.Windows.Forms.TextBox();
+            this.okButton = new System.Windows.Forms.Button();
+            this.tableLayoutPanel.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // tableLayoutPanel
+            // 
+            this.tableLayoutPanel.ColumnCount = 4;
+            this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
+            this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
+            this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+            this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 21F));
+            this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
+            this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
+            this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
+            this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
+            this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
+            this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
+            this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
+            this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanel.Location = new System.Drawing.Point(9, 8);
+            this.tableLayoutPanel.Name = "tableLayoutPanel";
+            this.tableLayoutPanel.RowCount = 6;
+            this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+            this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+            this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+            this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+            this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+            this.tableLayoutPanel.Size = new System.Drawing.Size(591, 329);
+            this.tableLayoutPanel.TabIndex = 0;
+            // 
+            // logoPictureBox
+            // 
+            this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
+            this.logoPictureBox.Location = new System.Drawing.Point(3, 3);
+            this.logoPictureBox.Name = "logoPictureBox";
+            this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
+            this.logoPictureBox.Size = new System.Drawing.Size(175, 323);
+            this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+            this.logoPictureBox.TabIndex = 12;
+            this.logoPictureBox.TabStop = false;
+            // 
+            // labelProductName
+            // 
+            this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.labelProductName.Location = new System.Drawing.Point(187, 0);
+            this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+            this.labelProductName.MaximumSize = new System.Drawing.Size(0, 16);
+            this.labelProductName.Name = "labelProductName";
+            this.labelProductName.Size = new System.Drawing.Size(359, 16);
+            this.labelProductName.TabIndex = 19;
+            this.labelProductName.Text = "产品名称";
+            this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // labelVersion
+            // 
+            this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.labelVersion.Location = new System.Drawing.Point(187, 32);
+            this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+            this.labelVersion.MaximumSize = new System.Drawing.Size(0, 16);
+            this.labelVersion.Name = "labelVersion";
+            this.labelVersion.Size = new System.Drawing.Size(359, 16);
+            this.labelVersion.TabIndex = 0;
+            this.labelVersion.Text = "版本";
+            this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // labelCopyright
+            // 
+            this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.labelCopyright.Location = new System.Drawing.Point(187, 64);
+            this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+            this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 16);
+            this.labelCopyright.Name = "labelCopyright";
+            this.labelCopyright.Size = new System.Drawing.Size(359, 16);
+            this.labelCopyright.TabIndex = 21;
+            this.labelCopyright.Text = "版权";
+            this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // labelCompanyName
+            // 
+            this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.labelCompanyName.Location = new System.Drawing.Point(187, 96);
+            this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+            this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 16);
+            this.labelCompanyName.Name = "labelCompanyName";
+            this.labelCompanyName.Size = new System.Drawing.Size(359, 16);
+            this.labelCompanyName.TabIndex = 22;
+            this.labelCompanyName.Text = "公司名称";
+            this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // textBoxDescription
+            // 
+            this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.textBoxDescription.Location = new System.Drawing.Point(187, 131);
+            this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
+            this.textBoxDescription.Multiline = true;
+            this.textBoxDescription.Name = "textBoxDescription";
+            this.textBoxDescription.ReadOnly = true;
+            this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+            this.textBoxDescription.Size = new System.Drawing.Size(359, 158);
+            this.textBoxDescription.TabIndex = 23;
+            this.textBoxDescription.TabStop = false;
+            this.textBoxDescription.Text = "说明";
+            // 
+            // okButton
+            // 
+            this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.okButton.Location = new System.Drawing.Point(471, 305);
+            this.okButton.Name = "okButton";
+            this.okButton.Size = new System.Drawing.Size(75, 21);
+            this.okButton.TabIndex = 24;
+            this.okButton.Text = "确定(&O)";
+            // 
+            // AboutBox1
+            // 
+            this.AcceptButton = this.okButton;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(609, 345);
+            this.Controls.Add(this.tableLayoutPanel);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "AboutBox1";
+            this.Padding = new System.Windows.Forms.Padding(9, 8, 9, 8);
+            this.ShowIcon = false;
+            this.ShowInTaskbar = false;
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.Text = "AboutBox1";
+            this.tableLayoutPanel.ResumeLayout(false);
+            this.tableLayoutPanel.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
+        private System.Windows.Forms.PictureBox logoPictureBox;
+        private System.Windows.Forms.Label labelProductName;
+        private System.Windows.Forms.Label labelVersion;
+        private System.Windows.Forms.Label labelCopyright;
+        private System.Windows.Forms.Label labelCompanyName;
+        private System.Windows.Forms.TextBox textBoxDescription;
+        private System.Windows.Forms.Button okButton;
+    }
+}

+ 104 - 0
PicSo/AboutBox1.cs

@@ -0,0 +1,104 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Reflection;
+using System.Windows.Forms;
+
+namespace PicSo
+{
+    partial class AboutBox1 : Form
+    {
+        public AboutBox1()
+        {
+            InitializeComponent();
+            this.Text = String.Format("关于 {0}", AssemblyTitle);
+            this.labelProductName.Text = AssemblyProduct;
+            this.labelVersion.Text = String.Format("版本 {0}", AssemblyVersion);
+            this.labelCopyright.Text = AssemblyCopyright;
+            this.labelCompanyName.Text = AssemblyCompany;
+            this.textBoxDescription.Text = AssemblyDescription;
+        }
+
+        #region 程序集特性访问器
+
+        public string AssemblyTitle
+        {
+            get
+            {
+                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+                if (attributes.Length > 0)
+                {
+                    AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
+                    if (titleAttribute.Title != "")
+                    {
+                        return titleAttribute.Title;
+                    }
+                }
+                return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+            }
+        }
+
+        public string AssemblyVersion
+        {
+            get
+            {
+                return Assembly.GetExecutingAssembly().GetName().Version.ToString();
+            }
+        }
+
+        public string AssemblyDescription
+        {
+            get
+            {
+                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+                if (attributes.Length == 0)
+                {
+                    return "";
+                }
+                return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+            }
+        }
+
+        public string AssemblyProduct
+        {
+            get
+            {
+                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
+                if (attributes.Length == 0)
+                {
+                    return "";
+                }
+                return ((AssemblyProductAttribute)attributes[0]).Product;
+            }
+        }
+
+        public string AssemblyCopyright
+        {
+            get
+            {
+                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
+                if (attributes.Length == 0)
+                {
+                    return "";
+                }
+                return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
+            }
+        }
+
+        public string AssemblyCompany
+        {
+            get
+            {
+                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
+                if (attributes.Length == 0)
+                {
+                    return "";
+                }
+                return ((AssemblyCompanyAttribute)attributes[0]).Company;
+            }
+        }
+        #endregion
+    }
+}

+ 604 - 0
PicSo/AboutBox1.resx

@@ -0,0 +1,604 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        AAAAAElFTkSuQmCC
+</value>
+  </data>
+</root>

+ 260 - 476
PicSo/Form1.Designer.cs

@@ -35,69 +35,47 @@
             this.menu_BrowerFile = new System.Windows.Forms.ToolStripMenuItem();
             this.menu_ChangeFcode = new System.Windows.Forms.ToolStripMenuItem();
             this.menu_remove = new System.Windows.Forms.ToolStripMenuItem();
-            this.lbl_YouMaStatus = new System.Windows.Forms.Label();
             this.tabPage1 = new System.Windows.Forms.TabPage();
-            this.btn_rebuild = new System.Windows.Forms.Button();
-            this.groupBox2 = new System.Windows.Forms.GroupBox();
-            this.btn_paste_new = new System.Windows.Forms.Button();
-            this.btn_AddNewEmptyItem = new System.Windows.Forms.Button();
-            this.txt_EmptyItemKeyWord = new System.Windows.Forms.TextBox();
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+            this.btn_brower = new System.Windows.Forms.Button();
+            this.txt_Dest = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.txt_sub = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
             this.listView1 = new System.Windows.Forms.ListView();
             this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.btn_removeItem = new System.Windows.Forms.Button();
-            this.btn_brower = new System.Windows.Forms.Button();
-            this.cb_AutoSelect = new System.Windows.Forms.CheckBox();
+            this.button1 = new System.Windows.Forms.Button();
             this.btn_Clear = new System.Windows.Forms.Button();
-            this.cb_isCoverDownload = new System.Windows.Forms.CheckBox();
-            this.btn_GO = new System.Windows.Forms.Button();
-            this.btn_select = new System.Windows.Forms.Button();
-            this.groupBox1 = new System.Windows.Forms.GroupBox();
-            this.btn_MoveFile = new System.Windows.Forms.Button();
+            this.btn_AddNewEmptyItem = new System.Windows.Forms.Button();
+            this.btn_removeItem = new System.Windows.Forms.Button();
+            this.btn_paste_new = new System.Windows.Forms.Button();
             this.cb_IsShowlog = new System.Windows.Forms.CheckBox();
-            this.txt_Dest = new System.Windows.Forms.TextBox();
-            this.label2 = new System.Windows.Forms.Label();
-            this.txt_sub = new System.Windows.Forms.TextBox();
-            this.label1 = new System.Windows.Forms.Label();
+            this.btn_MoveFile = new System.Windows.Forms.Button();
             this.tabControl1 = new System.Windows.Forms.TabControl();
             this.tabPage2 = new System.Windows.Forms.TabPage();
             this.listBox1 = new System.Windows.Forms.ListBox();
             this.cb_AutoCorrect = new System.Windows.Forms.CheckBox();
             this.btn_LocalSearch = new System.Windows.Forms.Button();
             this.txt_LocalSearchKeyWord = new System.Windows.Forms.TextBox();
-            this.tabPage3 = new System.Windows.Forms.TabPage();
-            this.label3 = new System.Windows.Forms.Label();
-            this.nud_ActorLessThan = new System.Windows.Forms.NumericUpDown();
-            this.txt_FindStatus = new System.Windows.Forms.TextBox();
-            this.btnFind = new System.Windows.Forms.Button();
-            this.txt_url = new System.Windows.Forms.TextBox();
-            this.tabPage4 = new System.Windows.Forms.TabPage();
-            this.lbl_p4_status = new System.Windows.Forms.Label();
-            this.btn_p4_Go1_paste = new System.Windows.Forms.Button();
-            this.btn_p4_Clear = new System.Windows.Forms.Button();
-            this.lv_p4_result = new System.Windows.Forms.ListView();
-            this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             this.cmenu_p4 = new System.Windows.Forms.ContextMenuStrip(this.components);
             this.cmenu_p4_item_copy = new System.Windows.Forms.ToolStripMenuItem();
-            this.btn_p4_Go1 = new System.Windows.Forms.Button();
-            this.label4 = new System.Windows.Forms.Label();
-            this.txt_p4_keyword = new System.Windows.Forms.TextBox();
-            this.button1 = new System.Windows.Forms.Button();
-            this.bc = new AVSORTER.BasicContainer();
+            this.lbl_Path_preview = new System.Windows.Forms.Label();
+            this.statusStrip1 = new System.Windows.Forms.StatusStrip();
+            this.sl_Network = new System.Windows.Forms.ToolStripStatusLabel();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.panel2 = new System.Windows.Forms.Panel();
             this.movieContainer1 = new PicSo.MovieContainer();
             this.contextMenuStrip1.SuspendLayout();
             this.tabPage1.SuspendLayout();
-            this.groupBox2.SuspendLayout();
-            this.groupBox1.SuspendLayout();
+            this.tableLayoutPanel1.SuspendLayout();
             this.tabControl1.SuspendLayout();
             this.tabPage2.SuspendLayout();
-            this.tabPage3.SuspendLayout();
-            ((System.ComponentModel.ISupportInitialize)(this.nud_ActorLessThan)).BeginInit();
-            this.tabPage4.SuspendLayout();
             this.cmenu_p4.SuspendLayout();
+            this.statusStrip1.SuspendLayout();
+            this.panel1.SuspendLayout();
+            this.panel2.SuspendLayout();
             this.SuspendLayout();
             // 
             // contextMenuStrip1
@@ -139,87 +117,103 @@
             this.menu_remove.Text = "移除项目";
             this.menu_remove.Click += new System.EventHandler(this.menu_remove_Click);
             // 
-            // lbl_YouMaStatus
-            // 
-            this.lbl_YouMaStatus.AutoSize = true;
-            this.lbl_YouMaStatus.BackColor = System.Drawing.Color.Red;
-            this.lbl_YouMaStatus.Location = new System.Drawing.Point(14, 607);
-            this.lbl_YouMaStatus.Name = "lbl_YouMaStatus";
-            this.lbl_YouMaStatus.Size = new System.Drawing.Size(77, 12);
-            this.lbl_YouMaStatus.TabIndex = 26;
-            this.lbl_YouMaStatus.Text = "骑兵组件状态";
-            // 
             // tabPage1
             // 
-            this.tabPage1.Controls.Add(this.btn_rebuild);
-            this.tabPage1.Controls.Add(this.groupBox2);
-            this.tabPage1.Controls.Add(this.btn_select);
-            this.tabPage1.Controls.Add(this.groupBox1);
-            this.tabPage1.Controls.Add(this.bc);
+            this.tabPage1.Controls.Add(this.tableLayoutPanel1);
             this.tabPage1.Location = new System.Drawing.Point(4, 22);
             this.tabPage1.Name = "tabPage1";
             this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
-            this.tabPage1.Size = new System.Drawing.Size(965, 557);
+            this.tabPage1.Size = new System.Drawing.Size(924, 761);
             this.tabPage1.TabIndex = 0;
             this.tabPage1.Text = "批量文件处理";
             this.tabPage1.UseVisualStyleBackColor = true;
             // 
-            // btn_rebuild
-            // 
-            this.btn_rebuild.Location = new System.Drawing.Point(681, 342);
-            this.btn_rebuild.Name = "btn_rebuild";
-            this.btn_rebuild.Size = new System.Drawing.Size(119, 60);
-            this.btn_rebuild.TabIndex = 20;
-            this.btn_rebuild.Text = "重建数据库\r\n\r\n不移动文件";
-            this.btn_rebuild.UseVisualStyleBackColor = true;
-            this.btn_rebuild.Click += new System.EventHandler(this.btn_rebuild_Click);
-            // 
-            // groupBox2
-            // 
-            this.groupBox2.Controls.Add(this.button1);
-            this.groupBox2.Controls.Add(this.btn_paste_new);
-            this.groupBox2.Controls.Add(this.btn_AddNewEmptyItem);
-            this.groupBox2.Controls.Add(this.txt_EmptyItemKeyWord);
-            this.groupBox2.Controls.Add(this.listView1);
-            this.groupBox2.Controls.Add(this.btn_removeItem);
-            this.groupBox2.Controls.Add(this.btn_brower);
-            this.groupBox2.Controls.Add(this.cb_AutoSelect);
-            this.groupBox2.Controls.Add(this.btn_Clear);
-            this.groupBox2.Controls.Add(this.cb_isCoverDownload);
-            this.groupBox2.Controls.Add(this.btn_GO);
-            this.groupBox2.Location = new System.Drawing.Point(6, 6);
-            this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(800, 324);
-            this.groupBox2.TabIndex = 25;
-            this.groupBox2.TabStop = false;
-            this.groupBox2.Text = "文件列表处理";
+            // tableLayoutPanel1
+            // 
+            this.tableLayoutPanel1.ColumnCount = 6;
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
+            this.tableLayoutPanel1.Controls.Add(this.listView1, 0, 2);
+            this.tableLayoutPanel1.Controls.Add(this.button1, 5, 0);
+            this.tableLayoutPanel1.Controls.Add(this.btn_Clear, 4, 1);
+            this.tableLayoutPanel1.Controls.Add(this.btn_brower, 0, 0);
+            this.tableLayoutPanel1.Controls.Add(this.btn_AddNewEmptyItem, 0, 1);
+            this.tableLayoutPanel1.Controls.Add(this.btn_removeItem, 4, 0);
+            this.tableLayoutPanel1.Controls.Add(this.btn_paste_new, 1, 1);
+            this.tableLayoutPanel1.Controls.Add(this.btn_MoveFile, 5, 3);
+            this.tableLayoutPanel1.Controls.Add(this.lbl_Path_preview, 0, 6);
+            this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 3);
+            this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 4);
+            this.tableLayoutPanel1.Controls.Add(this.cb_IsShowlog, 4, 3);
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+            this.tableLayoutPanel1.RowCount = 8;
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(918, 755);
+            this.tableLayoutPanel1.TabIndex = 26;
             // 
-            // btn_paste_new
+            // btn_brower
             // 
-            this.btn_paste_new.Location = new System.Drawing.Point(159, 49);
-            this.btn_paste_new.Name = "btn_paste_new";
-            this.btn_paste_new.Size = new System.Drawing.Size(107, 23);
-            this.btn_paste_new.TabIndex = 20;
-            this.btn_paste_new.Text = "粘贴新建";
-            this.btn_paste_new.UseVisualStyleBackColor = true;
-            this.btn_paste_new.Click += new System.EventHandler(this.btn_paste_new_Click);
+            this.btn_brower.BackColor = System.Drawing.Color.Gold;
+            this.tableLayoutPanel1.SetColumnSpan(this.btn_brower, 2);
+            this.btn_brower.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.btn_brower.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btn_brower.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btn_brower.Location = new System.Drawing.Point(3, 3);
+            this.btn_brower.Name = "btn_brower";
+            this.btn_brower.Size = new System.Drawing.Size(299, 34);
+            this.btn_brower.TabIndex = 3;
+            this.btn_brower.Text = "浏览文件夹...";
+            this.btn_brower.UseVisualStyleBackColor = false;
+            this.btn_brower.Click += new System.EventHandler(this.btn_brower_Click);
             // 
-            // btn_AddNewEmptyItem
+            // txt_Dest
             // 
-            this.btn_AddNewEmptyItem.Location = new System.Drawing.Point(75, 49);
-            this.btn_AddNewEmptyItem.Name = "btn_AddNewEmptyItem";
-            this.btn_AddNewEmptyItem.Size = new System.Drawing.Size(78, 23);
-            this.btn_AddNewEmptyItem.TabIndex = 19;
-            this.btn_AddNewEmptyItem.Text = "新建";
-            this.btn_AddNewEmptyItem.UseVisualStyleBackColor = true;
-            this.btn_AddNewEmptyItem.Click += new System.EventHandler(this.btn_AddNewEmptyItem_Click);
+            this.txt_Dest.Location = new System.Drawing.Point(62, 1);
+            this.txt_Dest.Name = "txt_Dest";
+            this.txt_Dest.Size = new System.Drawing.Size(497, 21);
+            this.txt_Dest.TabIndex = 9;
+            this.txt_Dest.Leave += new System.EventHandler(this.UIParamChange);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(3, 6);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 12);
+            this.label2.TabIndex = 13;
+            this.label2.Text = "分类路径";
+            // 
+            // txt_sub
+            // 
+            this.txt_sub.Location = new System.Drawing.Point(62, 1);
+            this.txt_sub.Name = "txt_sub";
+            this.txt_sub.Size = new System.Drawing.Size(497, 21);
+            this.txt_sub.TabIndex = 8;
+            this.txt_sub.Text = "演员\\[番号]标题";
+            this.txt_sub.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
+            this.txt_sub.Leave += new System.EventHandler(this.UIParamChange);
             // 
-            // txt_EmptyItemKeyWord
+            // label1
             // 
-            this.txt_EmptyItemKeyWord.Location = new System.Drawing.Point(6, 49);
-            this.txt_EmptyItemKeyWord.Name = "txt_EmptyItemKeyWord";
-            this.txt_EmptyItemKeyWord.Size = new System.Drawing.Size(63, 21);
-            this.txt_EmptyItemKeyWord.TabIndex = 18;
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(3, 7);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 12;
+            this.label1.Text = "目标路径";
             // 
             // listView1
             // 
@@ -228,11 +222,13 @@
             this.columnHeader1,
             this.columnHeader2,
             this.columnHeader3});
+            this.tableLayoutPanel1.SetColumnSpan(this.listView1, 6);
             this.listView1.ContextMenuStrip = this.contextMenuStrip1;
+            this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.listView1.FullRowSelect = true;
-            this.listView1.Location = new System.Drawing.Point(6, 79);
+            this.listView1.Location = new System.Drawing.Point(3, 83);
             this.listView1.Name = "listView1";
-            this.listView1.Size = new System.Drawing.Size(788, 238);
+            this.listView1.Size = new System.Drawing.Size(912, 539);
             this.listView1.TabIndex = 6;
             this.listView1.UseCompatibleStateImageBehavior = false;
             this.listView1.View = System.Windows.Forms.View.Details;
@@ -257,178 +253,129 @@
             this.columnHeader3.Text = "状态";
             this.columnHeader3.Width = 158;
             // 
-            // btn_removeItem
-            // 
-            this.btn_removeItem.Location = new System.Drawing.Point(139, 20);
-            this.btn_removeItem.Name = "btn_removeItem";
-            this.btn_removeItem.Size = new System.Drawing.Size(127, 23);
-            this.btn_removeItem.TabIndex = 4;
-            this.btn_removeItem.Text = "删除选择项目";
-            this.btn_removeItem.UseVisualStyleBackColor = true;
-            this.btn_removeItem.Click += new System.EventHandler(this.btn_removeItem_Click);
-            // 
-            // btn_brower
-            // 
-            this.btn_brower.Location = new System.Drawing.Point(6, 20);
-            this.btn_brower.Name = "btn_brower";
-            this.btn_brower.Size = new System.Drawing.Size(127, 23);
-            this.btn_brower.TabIndex = 3;
-            this.btn_brower.Text = "浏览文件夹...";
-            this.btn_brower.UseVisualStyleBackColor = true;
-            this.btn_brower.Click += new System.EventHandler(this.btn_brower_Click);
-            // 
-            // cb_AutoSelect
+            // button1
             // 
-            this.cb_AutoSelect.AutoSize = true;
-            this.cb_AutoSelect.Checked = true;
-            this.cb_AutoSelect.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.cb_AutoSelect.Location = new System.Drawing.Point(406, 24);
-            this.cb_AutoSelect.Name = "cb_AutoSelect";
-            this.cb_AutoSelect.Size = new System.Drawing.Size(120, 16);
-            this.cb_AutoSelect.TabIndex = 17;
-            this.cb_AutoSelect.Text = "自动对应唯一结果";
-            this.cb_AutoSelect.UseVisualStyleBackColor = true;
+            this.button1.BackColor = System.Drawing.Color.GreenYellow;
+            this.button1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.button1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.button1.Location = new System.Drawing.Point(764, 3);
+            this.button1.Name = "button1";
+            this.tableLayoutPanel1.SetRowSpan(this.button1, 2);
+            this.button1.Size = new System.Drawing.Size(151, 74);
+            this.button1.TabIndex = 21;
+            this.button1.Text = "Go";
+            this.button1.UseVisualStyleBackColor = false;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
             // 
             // btn_Clear
             // 
-            this.btn_Clear.Location = new System.Drawing.Point(272, 20);
+            this.btn_Clear.BackColor = System.Drawing.Color.Red;
+            this.btn_Clear.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.btn_Clear.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btn_Clear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btn_Clear.Location = new System.Drawing.Point(612, 43);
             this.btn_Clear.Name = "btn_Clear";
-            this.btn_Clear.Size = new System.Drawing.Size(128, 50);
+            this.btn_Clear.Size = new System.Drawing.Size(146, 34);
             this.btn_Clear.TabIndex = 10;
-            this.btn_Clear.Text = "清除";
-            this.btn_Clear.UseVisualStyleBackColor = true;
+            this.btn_Clear.Text = "清除全部";
+            this.btn_Clear.UseVisualStyleBackColor = false;
             this.btn_Clear.Click += new System.EventHandler(this.btn_Clear_Click);
             // 
-            // cb_isCoverDownload
-            // 
-            this.cb_isCoverDownload.AutoSize = true;
-            this.cb_isCoverDownload.Checked = true;
-            this.cb_isCoverDownload.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.cb_isCoverDownload.Location = new System.Drawing.Point(406, 41);
-            this.cb_isCoverDownload.Name = "cb_isCoverDownload";
-            this.cb_isCoverDownload.Size = new System.Drawing.Size(72, 16);
-            this.cb_isCoverDownload.TabIndex = 16;
-            this.cb_isCoverDownload.Text = "下载封面";
-            this.cb_isCoverDownload.UseVisualStyleBackColor = true;
-            // 
-            // btn_GO
-            // 
-            this.btn_GO.Location = new System.Drawing.Point(532, 20);
-            this.btn_GO.Name = "btn_GO";
-            this.btn_GO.Size = new System.Drawing.Size(110, 50);
-            this.btn_GO.TabIndex = 15;
-            this.btn_GO.Text = "DownloadInfo";
-            this.btn_GO.UseVisualStyleBackColor = true;
-            this.btn_GO.Click += new System.EventHandler(this.btn_GO_Click);
-            // 
-            // btn_select
-            // 
-            this.btn_select.Location = new System.Drawing.Point(423, 341);
-            this.btn_select.Name = "btn_select";
-            this.btn_select.Size = new System.Drawing.Size(147, 27);
-            this.btn_select.TabIndex = 24;
-            this.btn_select.Text = "将左侧选定为确定结果";
-            this.btn_select.UseVisualStyleBackColor = true;
-            this.btn_select.Click += new System.EventHandler(this.btn_select_Click);
-            // 
-            // groupBox1
-            // 
-            this.groupBox1.Controls.Add(this.btn_MoveFile);
-            this.groupBox1.Controls.Add(this.cb_IsShowlog);
-            this.groupBox1.Controls.Add(this.txt_Dest);
-            this.groupBox1.Controls.Add(this.label2);
-            this.groupBox1.Controls.Add(this.txt_sub);
-            this.groupBox1.Controls.Add(this.label1);
-            this.groupBox1.Location = new System.Drawing.Point(423, 410);
-            this.groupBox1.Name = "groupBox1";
-            this.groupBox1.Size = new System.Drawing.Size(377, 111);
-            this.groupBox1.TabIndex = 14;
-            this.groupBox1.TabStop = false;
-            this.groupBox1.Text = "文件移动设置";
-            this.groupBox1.Enter += new System.EventHandler(this.groupBox1_Enter);
+            // btn_AddNewEmptyItem
             // 
-            // btn_MoveFile
+            this.btn_AddNewEmptyItem.BackColor = System.Drawing.Color.Orange;
+            this.btn_AddNewEmptyItem.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.btn_AddNewEmptyItem.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btn_AddNewEmptyItem.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btn_AddNewEmptyItem.Location = new System.Drawing.Point(3, 43);
+            this.btn_AddNewEmptyItem.Name = "btn_AddNewEmptyItem";
+            this.btn_AddNewEmptyItem.Size = new System.Drawing.Size(147, 34);
+            this.btn_AddNewEmptyItem.TabIndex = 19;
+            this.btn_AddNewEmptyItem.Text = "新建空项目";
+            this.btn_AddNewEmptyItem.UseVisualStyleBackColor = false;
+            this.btn_AddNewEmptyItem.Click += new System.EventHandler(this.btn_AddNewEmptyItem_Click);
             // 
-            this.btn_MoveFile.Location = new System.Drawing.Point(272, 74);
-            this.btn_MoveFile.Name = "btn_MoveFile";
-            this.btn_MoveFile.Size = new System.Drawing.Size(99, 23);
-            this.btn_MoveFile.TabIndex = 25;
-            this.btn_MoveFile.Text = "移动文件";
-            this.btn_MoveFile.UseVisualStyleBackColor = true;
-            this.btn_MoveFile.Click += new System.EventHandler(this.btn_MoveFile_Click);
+            // btn_removeItem
+            // 
+            this.btn_removeItem.BackColor = System.Drawing.Color.Red;
+            this.btn_removeItem.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.btn_removeItem.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btn_removeItem.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btn_removeItem.Location = new System.Drawing.Point(612, 3);
+            this.btn_removeItem.Name = "btn_removeItem";
+            this.btn_removeItem.Size = new System.Drawing.Size(146, 34);
+            this.btn_removeItem.TabIndex = 4;
+            this.btn_removeItem.Text = "删除选择项目";
+            this.btn_removeItem.UseVisualStyleBackColor = false;
+            this.btn_removeItem.Click += new System.EventHandler(this.btn_removeItem_Click);
+            // 
+            // btn_paste_new
+            // 
+            this.btn_paste_new.BackColor = System.Drawing.Color.Orange;
+            this.btn_paste_new.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.btn_paste_new.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btn_paste_new.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btn_paste_new.Location = new System.Drawing.Point(156, 43);
+            this.btn_paste_new.Name = "btn_paste_new";
+            this.btn_paste_new.Size = new System.Drawing.Size(146, 34);
+            this.btn_paste_new.TabIndex = 20;
+            this.btn_paste_new.Text = "剪贴板新建";
+            this.btn_paste_new.UseVisualStyleBackColor = false;
+            this.btn_paste_new.Click += new System.EventHandler(this.btn_paste_new_Click);
             // 
             // cb_IsShowlog
             // 
             this.cb_IsShowlog.AutoSize = true;
             this.cb_IsShowlog.Checked = true;
             this.cb_IsShowlog.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.cb_IsShowlog.Location = new System.Drawing.Point(23, 78);
+            this.cb_IsShowlog.Dock = System.Windows.Forms.DockStyle.Right;
+            this.cb_IsShowlog.Location = new System.Drawing.Point(650, 628);
             this.cb_IsShowlog.Name = "cb_IsShowlog";
-            this.cb_IsShowlog.Size = new System.Drawing.Size(108, 16);
+            this.tableLayoutPanel1.SetRowSpan(this.cb_IsShowlog, 2);
+            this.cb_IsShowlog.Size = new System.Drawing.Size(108, 54);
             this.cb_IsShowlog.TabIndex = 18;
             this.cb_IsShowlog.Text = "完成后显示日志";
             this.cb_IsShowlog.UseVisualStyleBackColor = true;
             this.cb_IsShowlog.CheckedChanged += new System.EventHandler(this.UIParamChange);
             // 
-            // txt_Dest
-            // 
-            this.txt_Dest.Location = new System.Drawing.Point(75, 20);
-            this.txt_Dest.Name = "txt_Dest";
-            this.txt_Dest.Size = new System.Drawing.Size(296, 21);
-            this.txt_Dest.TabIndex = 9;
-            this.txt_Dest.Leave += new System.EventHandler(this.UIParamChange);
-            // 
-            // label2
-            // 
-            this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(16, 50);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(53, 12);
-            this.label2.TabIndex = 13;
-            this.label2.Text = "分类路径";
-            // 
-            // txt_sub
-            // 
-            this.txt_sub.Location = new System.Drawing.Point(75, 47);
-            this.txt_sub.Name = "txt_sub";
-            this.txt_sub.Size = new System.Drawing.Size(296, 21);
-            this.txt_sub.TabIndex = 8;
-            this.txt_sub.Text = "演员\\[番号]标题";
-            this.txt_sub.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
-            this.txt_sub.Leave += new System.EventHandler(this.UIParamChange);
-            // 
-            // label1
+            // btn_MoveFile
             // 
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(16, 23);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(53, 12);
-            this.label1.TabIndex = 12;
-            this.label1.Text = "目标路径";
+            this.btn_MoveFile.BackColor = System.Drawing.Color.DarkOrange;
+            this.btn_MoveFile.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.btn_MoveFile.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btn_MoveFile.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btn_MoveFile.Location = new System.Drawing.Point(764, 628);
+            this.btn_MoveFile.Name = "btn_MoveFile";
+            this.tableLayoutPanel1.SetRowSpan(this.btn_MoveFile, 2);
+            this.btn_MoveFile.Size = new System.Drawing.Size(151, 54);
+            this.btn_MoveFile.TabIndex = 25;
+            this.btn_MoveFile.Text = "移动文件";
+            this.btn_MoveFile.UseVisualStyleBackColor = false;
+            this.btn_MoveFile.Click += new System.EventHandler(this.btn_MoveFile_Click);
             // 
             // tabControl1
             // 
             this.tabControl1.Controls.Add(this.tabPage1);
             this.tabControl1.Controls.Add(this.tabPage2);
-            this.tabControl1.Controls.Add(this.tabPage3);
-            this.tabControl1.Controls.Add(this.tabPage4);
-            this.tabControl1.Location = new System.Drawing.Point(12, 12);
+            this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tabControl1.Location = new System.Drawing.Point(0, 0);
             this.tabControl1.Name = "tabControl1";
             this.tabControl1.SelectedIndex = 0;
-            this.tabControl1.Size = new System.Drawing.Size(973, 583);
+            this.tabControl1.Size = new System.Drawing.Size(932, 605);
             this.tabControl1.TabIndex = 26;
             // 
             // tabPage2
             // 
+            this.tabPage2.Controls.Add(this.movieContainer1);
             this.tabPage2.Controls.Add(this.listBox1);
             this.tabPage2.Controls.Add(this.cb_AutoCorrect);
             this.tabPage2.Controls.Add(this.btn_LocalSearch);
             this.tabPage2.Controls.Add(this.txt_LocalSearchKeyWord);
-            this.tabPage2.Controls.Add(this.movieContainer1);
             this.tabPage2.Location = new System.Drawing.Point(4, 22);
             this.tabPage2.Name = "tabPage2";
             this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
-            this.tabPage2.Size = new System.Drawing.Size(965, 557);
+            this.tabPage2.Size = new System.Drawing.Size(924, 579);
             this.tabPage2.TabIndex = 1;
             this.tabPage2.Text = "本地查询";
             this.tabPage2.UseVisualStyleBackColor = true;
@@ -473,145 +420,6 @@
             this.txt_LocalSearchKeyWord.TabIndex = 0;
             this.txt_LocalSearchKeyWord.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txt_LocalSearchKeyWord_KeyPress);
             // 
-            // tabPage3
-            // 
-            this.tabPage3.Controls.Add(this.label3);
-            this.tabPage3.Controls.Add(this.nud_ActorLessThan);
-            this.tabPage3.Controls.Add(this.txt_FindStatus);
-            this.tabPage3.Controls.Add(this.btnFind);
-            this.tabPage3.Controls.Add(this.txt_url);
-            this.tabPage3.Location = new System.Drawing.Point(4, 22);
-            this.tabPage3.Name = "tabPage3";
-            this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
-            this.tabPage3.Size = new System.Drawing.Size(965, 557);
-            this.tabPage3.TabIndex = 2;
-            this.tabPage3.Text = "番号提取";
-            this.tabPage3.UseVisualStyleBackColor = true;
-            // 
-            // label3
-            // 
-            this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(87, 43);
-            this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(185, 12);
-            this.label3.TabIndex = 4;
-            this.label3.Text = "不统计演员人数超过此数量的影片";
-            // 
-            // nud_ActorLessThan
-            // 
-            this.nud_ActorLessThan.Location = new System.Drawing.Point(278, 38);
-            this.nud_ActorLessThan.Name = "nud_ActorLessThan";
-            this.nud_ActorLessThan.Size = new System.Drawing.Size(48, 21);
-            this.nud_ActorLessThan.TabIndex = 3;
-            this.nud_ActorLessThan.Value = new decimal(new int[] {
-            1,
-            0,
-            0,
-            0});
-            // 
-            // txt_FindStatus
-            // 
-            this.txt_FindStatus.Location = new System.Drawing.Point(6, 67);
-            this.txt_FindStatus.Multiline = true;
-            this.txt_FindStatus.Name = "txt_FindStatus";
-            this.txt_FindStatus.Size = new System.Drawing.Size(953, 187);
-            this.txt_FindStatus.TabIndex = 2;
-            this.txt_FindStatus.Text = "粘贴arzon.jp的影片网址列表,要列表模式,不要图片模式";
-            // 
-            // btnFind
-            // 
-            this.btnFind.Location = new System.Drawing.Point(6, 38);
-            this.btnFind.Name = "btnFind";
-            this.btnFind.Size = new System.Drawing.Size(75, 23);
-            this.btnFind.TabIndex = 1;
-            this.btnFind.Text = "开始";
-            this.btnFind.UseVisualStyleBackColor = true;
-            this.btnFind.Click += new System.EventHandler(this.btnFind_Click);
-            // 
-            // txt_url
-            // 
-            this.txt_url.Location = new System.Drawing.Point(6, 11);
-            this.txt_url.Name = "txt_url";
-            this.txt_url.Size = new System.Drawing.Size(953, 21);
-            this.txt_url.TabIndex = 0;
-            // 
-            // tabPage4
-            // 
-            this.tabPage4.Controls.Add(this.lbl_p4_status);
-            this.tabPage4.Controls.Add(this.btn_p4_Go1_paste);
-            this.tabPage4.Controls.Add(this.btn_p4_Clear);
-            this.tabPage4.Controls.Add(this.lv_p4_result);
-            this.tabPage4.Controls.Add(this.btn_p4_Go1);
-            this.tabPage4.Controls.Add(this.label4);
-            this.tabPage4.Controls.Add(this.txt_p4_keyword);
-            this.tabPage4.Location = new System.Drawing.Point(4, 22);
-            this.tabPage4.Name = "tabPage4";
-            this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
-            this.tabPage4.Size = new System.Drawing.Size(965, 557);
-            this.tabPage4.TabIndex = 3;
-            this.tabPage4.Text = "下载地址搜索";
-            this.tabPage4.UseVisualStyleBackColor = true;
-            // 
-            // lbl_p4_status
-            // 
-            this.lbl_p4_status.AutoSize = true;
-            this.lbl_p4_status.Location = new System.Drawing.Point(330, 13);
-            this.lbl_p4_status.Name = "lbl_p4_status";
-            this.lbl_p4_status.Size = new System.Drawing.Size(77, 12);
-            this.lbl_p4_status.TabIndex = 7;
-            this.lbl_p4_status.Text = "正在搜索……";
-            this.lbl_p4_status.Visible = false;
-            // 
-            // btn_p4_Go1_paste
-            // 
-            this.btn_p4_Go1_paste.Location = new System.Drawing.Point(249, 8);
-            this.btn_p4_Go1_paste.Name = "btn_p4_Go1_paste";
-            this.btn_p4_Go1_paste.Size = new System.Drawing.Size(75, 23);
-            this.btn_p4_Go1_paste.TabIndex = 6;
-            this.btn_p4_Go1_paste.Text = "粘贴搜索";
-            this.btn_p4_Go1_paste.UseVisualStyleBackColor = true;
-            this.btn_p4_Go1_paste.Click += new System.EventHandler(this.btn_p4_Go1_paste_Click);
-            // 
-            // btn_p4_Clear
-            // 
-            this.btn_p4_Clear.Location = new System.Drawing.Point(17, 528);
-            this.btn_p4_Clear.Name = "btn_p4_Clear";
-            this.btn_p4_Clear.Size = new System.Drawing.Size(75, 23);
-            this.btn_p4_Clear.TabIndex = 5;
-            this.btn_p4_Clear.Text = "清空结果";
-            this.btn_p4_Clear.UseVisualStyleBackColor = true;
-            this.btn_p4_Clear.Click += new System.EventHandler(this.btn_p4_Clear_Click);
-            // 
-            // lv_p4_result
-            // 
-            this.lv_p4_result.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.columnHeader4,
-            this.columnHeader5,
-            this.columnHeader6});
-            this.lv_p4_result.ContextMenuStrip = this.cmenu_p4;
-            this.lv_p4_result.FullRowSelect = true;
-            this.lv_p4_result.Location = new System.Drawing.Point(17, 37);
-            this.lv_p4_result.Name = "lv_p4_result";
-            this.lv_p4_result.Size = new System.Drawing.Size(923, 485);
-            this.lv_p4_result.TabIndex = 4;
-            this.lv_p4_result.UseCompatibleStateImageBehavior = false;
-            this.lv_p4_result.View = System.Windows.Forms.View.Details;
-            // 
-            // columnHeader4
-            // 
-            this.columnHeader4.Text = "名称";
-            this.columnHeader4.Width = 537;
-            // 
-            // columnHeader5
-            // 
-            this.columnHeader5.Text = "大小";
-            this.columnHeader5.Width = 100;
-            // 
-            // columnHeader6
-            // 
-            this.columnHeader6.Text = "链接";
-            this.columnHeader6.Width = 254;
-            // 
             // cmenu_p4
             // 
             this.cmenu_p4.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -624,94 +432,91 @@
             this.cmenu_p4_item_copy.Name = "cmenu_p4_item_copy";
             this.cmenu_p4_item_copy.Size = new System.Drawing.Size(124, 22);
             this.cmenu_p4_item_copy.Text = "复制地址";
-            this.cmenu_p4_item_copy.Click += new System.EventHandler(this.cmenu_p4_item_copy_Click);
-            // 
-            // btn_p4_Go1
-            // 
-            this.btn_p4_Go1.Location = new System.Drawing.Point(168, 8);
-            this.btn_p4_Go1.Name = "btn_p4_Go1";
-            this.btn_p4_Go1.Size = new System.Drawing.Size(75, 23);
-            this.btn_p4_Go1.TabIndex = 2;
-            this.btn_p4_Go1.Text = "搜索";
-            this.btn_p4_Go1.UseVisualStyleBackColor = true;
-            this.btn_p4_Go1.Click += new System.EventHandler(this.btn_p4_Go1_Click);
-            // 
-            // label4
-            // 
-            this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(15, 13);
-            this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(41, 12);
-            this.label4.TabIndex = 1;
-            this.label4.Text = "关键字";
             // 
-            // txt_p4_keyword
-            // 
-            this.txt_p4_keyword.Location = new System.Drawing.Point(62, 10);
-            this.txt_p4_keyword.Name = "txt_p4_keyword";
-            this.txt_p4_keyword.Size = new System.Drawing.Size(100, 21);
-            this.txt_p4_keyword.TabIndex = 0;
-            // 
-            // button1
-            // 
-            this.button1.Location = new System.Drawing.Point(648, 20);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(110, 50);
-            this.button1.TabIndex = 21;
-            this.button1.Text = "CPUs";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
-            // 
-            // bc
-            // 
-            this.bc.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.bc.IsShowPic = false;
-            this.bc.ListMovieBasic = null;
-            this.bc.Location = new System.Drawing.Point(6, 341);
-            this.bc.MovieB = null;
-            this.bc.Name = "bc";
-            this.bc.Size = new System.Drawing.Size(411, 180);
-            this.bc.TabIndex = 7;
-            this.bc.Load += new System.EventHandler(this.bc_Load);
+            // lbl_Path_preview
+            // 
+            this.lbl_Path_preview.AutoSize = true;
+            this.tableLayoutPanel1.SetColumnSpan(this.lbl_Path_preview, 6);
+            this.lbl_Path_preview.Location = new System.Drawing.Point(3, 705);
+            this.lbl_Path_preview.Name = "lbl_Path_preview";
+            this.lbl_Path_preview.Size = new System.Drawing.Size(53, 12);
+            this.lbl_Path_preview.TabIndex = 13;
+            this.lbl_Path_preview.Text = "路径预览";
+            // 
+            // statusStrip1
+            // 
+            this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.sl_Network});
+            this.statusStrip1.Location = new System.Drawing.Point(0, 583);
+            this.statusStrip1.Name = "statusStrip1";
+            this.statusStrip1.Size = new System.Drawing.Size(932, 22);
+            this.statusStrip1.TabIndex = 27;
+            this.statusStrip1.Text = "statusStrip1";
+            // 
+            // sl_Network
+            // 
+            this.sl_Network.BackColor = System.Drawing.Color.Crimson;
+            this.sl_Network.Name = "sl_Network";
+            this.sl_Network.Size = new System.Drawing.Size(68, 17);
+            this.sl_Network.Text = "网络不可用";
+            // 
+            // panel1
+            // 
+            this.tableLayoutPanel1.SetColumnSpan(this.panel1, 4);
+            this.panel1.Controls.Add(this.label1);
+            this.panel1.Controls.Add(this.txt_Dest);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel1.Location = new System.Drawing.Point(3, 628);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(603, 24);
+            this.panel1.TabIndex = 26;
+            // 
+            // panel2
+            // 
+            this.tableLayoutPanel1.SetColumnSpan(this.panel2, 4);
+            this.panel2.Controls.Add(this.label2);
+            this.panel2.Controls.Add(this.txt_sub);
+            this.panel2.Location = new System.Drawing.Point(3, 658);
+            this.panel2.Name = "panel2";
+            this.panel2.Size = new System.Drawing.Size(603, 24);
+            this.panel2.TabIndex = 27;
             // 
             // movieContainer1
             // 
             this.movieContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.movieContainer1.Location = new System.Drawing.Point(6, 176);
+            this.movieContainer1.IsShowOtherButton = false;
+            this.movieContainer1.Location = new System.Drawing.Point(6, 175);
             this.movieContainer1.Movie = null;
             this.movieContainer1.MovieList = null;
             this.movieContainer1.Name = "movieContainer1";
-            this.movieContainer1.Size = new System.Drawing.Size(913, 375);
-            this.movieContainer1.TabIndex = 2;
+            this.movieContainer1.Size = new System.Drawing.Size(915, 410);
+            this.movieContainer1.TabIndex = 5;
             // 
             // Form1
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(997, 635);
-            this.Controls.Add(this.lbl_YouMaStatus);
+            this.ClientSize = new System.Drawing.Size(932, 605);
+            this.Controls.Add(this.statusStrip1);
             this.Controls.Add(this.tabControl1);
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.MaximizeBox = false;
             this.Name = "Form1";
             this.Text = "AVSorter";
             this.Load += new System.EventHandler(this.Form1_Load);
             this.contextMenuStrip1.ResumeLayout(false);
             this.tabPage1.ResumeLayout(false);
-            this.groupBox2.ResumeLayout(false);
-            this.groupBox2.PerformLayout();
-            this.groupBox1.ResumeLayout(false);
-            this.groupBox1.PerformLayout();
+            this.tableLayoutPanel1.ResumeLayout(false);
+            this.tableLayoutPanel1.PerformLayout();
             this.tabControl1.ResumeLayout(false);
             this.tabPage2.ResumeLayout(false);
             this.tabPage2.PerformLayout();
-            this.tabPage3.ResumeLayout(false);
-            this.tabPage3.PerformLayout();
-            ((System.ComponentModel.ISupportInitialize)(this.nud_ActorLessThan)).EndInit();
-            this.tabPage4.ResumeLayout(false);
-            this.tabPage4.PerformLayout();
             this.cmenu_p4.ResumeLayout(false);
+            this.statusStrip1.ResumeLayout(false);
+            this.statusStrip1.PerformLayout();
+            this.panel1.ResumeLayout(false);
+            this.panel1.PerformLayout();
+            this.panel2.ResumeLayout(false);
+            this.panel2.PerformLayout();
             this.ResumeLayout(false);
             this.PerformLayout();
 
@@ -723,60 +528,39 @@
         private System.Windows.Forms.ToolStripMenuItem menu_BrowerFile;
         private System.Windows.Forms.ToolStripMenuItem menu_ChangeFcode;
         private System.Windows.Forms.ToolStripMenuItem menu_remove;
-        private System.Windows.Forms.Label lbl_YouMaStatus;
         private System.Windows.Forms.ToolStripMenuItem menu_BigCover;
         private System.Windows.Forms.TabPage tabPage1;
-        private System.Windows.Forms.GroupBox groupBox2;
-        private System.Windows.Forms.ListView listView1;
-        private System.Windows.Forms.ColumnHeader columnHeader1;
-        private System.Windows.Forms.ColumnHeader columnHeader2;
-        private System.Windows.Forms.ColumnHeader columnHeader3;
         private System.Windows.Forms.Button btn_removeItem;
         private System.Windows.Forms.Button btn_brower;
-        private System.Windows.Forms.CheckBox cb_AutoSelect;
         private System.Windows.Forms.Button btn_Clear;
-        private System.Windows.Forms.CheckBox cb_isCoverDownload;
-        private System.Windows.Forms.Button btn_GO;
-        private System.Windows.Forms.Button btn_select;
-        private System.Windows.Forms.GroupBox groupBox1;
         private System.Windows.Forms.Button btn_MoveFile;
         private System.Windows.Forms.CheckBox cb_IsShowlog;
         private System.Windows.Forms.TextBox txt_Dest;
         private System.Windows.Forms.Label label2;
         private System.Windows.Forms.TextBox txt_sub;
         private System.Windows.Forms.Label label1;
-        private AVSORTER.BasicContainer bc;
         private System.Windows.Forms.TabControl tabControl1;
         private System.Windows.Forms.Button btn_AddNewEmptyItem;
-        private System.Windows.Forms.TextBox txt_EmptyItemKeyWord;
         private System.Windows.Forms.TabPage tabPage2;
         private System.Windows.Forms.Button btn_LocalSearch;
         private System.Windows.Forms.TextBox txt_LocalSearchKeyWord;
-        private MovieContainer movieContainer1;
         private System.Windows.Forms.CheckBox cb_AutoCorrect;
-        private System.Windows.Forms.Button btn_rebuild;
         private System.Windows.Forms.ListBox listBox1;
-        private System.Windows.Forms.TabPage tabPage3;
-        private System.Windows.Forms.Button btnFind;
-        private System.Windows.Forms.TextBox txt_url;
-        private System.Windows.Forms.TextBox txt_FindStatus;
-        private System.Windows.Forms.NumericUpDown nud_ActorLessThan;
-        private System.Windows.Forms.Label label3;
-        private System.Windows.Forms.TabPage tabPage4;
-        private System.Windows.Forms.Button btn_p4_Go1;
-        private System.Windows.Forms.Label label4;
-        private System.Windows.Forms.TextBox txt_p4_keyword;
-        private System.Windows.Forms.ListView lv_p4_result;
-        private System.Windows.Forms.ColumnHeader columnHeader4;
-        private System.Windows.Forms.ColumnHeader columnHeader5;
-        private System.Windows.Forms.ColumnHeader columnHeader6;
         private System.Windows.Forms.ContextMenuStrip cmenu_p4;
         private System.Windows.Forms.ToolStripMenuItem cmenu_p4_item_copy;
-        private System.Windows.Forms.Button btn_p4_Clear;
         private System.Windows.Forms.Button btn_paste_new;
-        private System.Windows.Forms.Button btn_p4_Go1_paste;
-        private System.Windows.Forms.Label lbl_p4_status;
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+        private System.Windows.Forms.ListView listView1;
+        private System.Windows.Forms.ColumnHeader columnHeader1;
+        private System.Windows.Forms.ColumnHeader columnHeader2;
+        private System.Windows.Forms.ColumnHeader columnHeader3;
         private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.Label lbl_Path_preview;
+        private System.Windows.Forms.StatusStrip statusStrip1;
+        private System.Windows.Forms.ToolStripStatusLabel sl_Network;
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.Panel panel2;
+        private MovieContainer movieContainer1;
     }
 }
 

+ 182 - 273
PicSo/Form1.cs

@@ -34,7 +34,8 @@ namespace PicSo
 
         void arzon_InitCompleted(object sender, EventArgs e)
         {
-            lbl_YouMaStatus.BackColor = Color.Green;
+            sl_Network.Text = "网络OK!";
+            sl_Network.BackColor = Color.Green;
         }
 
         Gets.Arzon arzon;
@@ -117,73 +118,6 @@ namespace PicSo
         Semaphore sem1_bmovie = new Semaphore(2, 2);
         Semaphore sem2_movie = new Semaphore(2, 2);
 
-        private void btn_GO_Click(object sender, EventArgs e)
-        {
-            //newGOGOGO();
-            //return;
-
-
-
-            foreach (ListViewItem item in listView1.Items)
-            {
-                var fi = new AVSORTER.SearchItem(item.SubItems[1].Text, arzon.Clone() as AVSORTER.IGetable);
-                item.Tag = fi;
-                fi.OnStatusChange += fi_OnStatusChange;
-                fi.Tag = item;
-                fi.IsAutoSelect = cb_AutoSelect.Checked;
-                fi.IsDownloadCover = cb_isCoverDownload.Checked;
-                //等一个许可信号
-                fi.OnAboutToLoadInfo += Fi_OnAboutToLoadInfo;
-                //释放放一个许可
-                fi.OnCompletedLoadInfo += Fi_OnCompletedLoadInfo;
-
-                fi.OnAboutToLoadImage += Fi_OnAboutToLoadImage;
-
-                fi.OnCompletedLoadImage += Fi_OnCompletedLoadImage;
-
-                fi.StartQuery();
-            }
-        }
-        private void newGOGOGO()
-        {
-
-            CancellationTokenSource tokenSource = new CancellationTokenSource();
-            CancellationToken token = tokenSource.Token;
-
-
-            Task<List<AVSORTER.MovieBasic>>[] tasks = new Task<List<AVSORTER.MovieBasic>>[listView1.Items.Count];
-            int i = -1;
-
-            foreach (ListViewItem item in listView1.Items)
-            {
-                i++;
-                AVSORTER.IGetable getor = arzon.Clone() as AVSORTER.IGetable;
-                tasks[i] = new Task<List<AVSORTER.MovieBasic>>(() =>
-                {
-                    return getor.Query(item.SubItems[1].Text);
-                }, token);
-
-                tasks[i].ContinueWith<AVSORTER.Movie>((mbasics) =>
-                {
-                    if (mbasics.Result.Count == 1)
-                    {
-                        return getor.GetMovie(mbasics.Result[0]);
-                    }
-                    else
-                    {
-                        return null;
-                    }
-                });
-
-                tasks[i].Start();
-
-            }
-
-
-        }
-
-
-
 
         private void Fi_OnAboutToLoadImage(object sender, EventArgs e)
         {
@@ -204,10 +138,6 @@ namespace PicSo
             sem1_bmovie.WaitOne();
         }
 
-        void fi_OnStatusChange(object sender, AVSORTER.SearchItem.StatusChangeEventArgs e)
-        {
-            ((sender as AVSORTER.SearchItem).Tag as ListViewItem).SubItems[2].Text = e.After.ToString();
-        }
 
         private void UIParamChange(object sender, EventArgs e)
         {
@@ -230,22 +160,6 @@ namespace PicSo
             }
         }
 
-        private void btn_select_Click(object sender, EventArgs e)
-        {
-
-            MessageBox.Show("不需要了");
-            return;
-
-
-            if (listView1.SelectedItems.Count == 1)
-            {
-                if (listView1.SelectedItems[0].Tag != null)
-                {
-                    (listView1.SelectedItems[0].Tag as AVSORTER.SearchItem).Select(this.bc.MovieB);
-                }
-
-            }
-        }
 
         private void btn_MoveFile_Click(object sender, EventArgs e)
         {
@@ -367,20 +281,23 @@ namespace PicSo
 
         private void btn_AddNewEmptyItem_Click(object sender, EventArgs e)
         {
-
-            var li = new ListViewItem("No File");
-            li.SubItems.Add(AVSORTER.Tools.Fcode(this.txt_EmptyItemKeyWord.Text));
-            li.SubItems.Add("");
-
-            this.listView1.Items.Add(li);
-
+            InputBox inp = new InputBox();
+            if (inp.ShowDialog() == DialogResult.OK)
+            {
+                var li = new ListViewItem("No File");
+                li.SubItems.Add(AVSORTER.Tools.Fcode(inp.InputText));
+                li.SubItems.Add(QStatus.未开始.ToString());
+                this.listView1.Items.Add(li);
+            }
         }
         private void btn_paste_new_Click(object sender, EventArgs e)
         {
             if (Clipboard.ContainsText())
             {
-                txt_EmptyItemKeyWord.Text = Clipboard.GetText();
-                btn_AddNewEmptyItem_Click(this, new EventArgs());
+                var li = new ListViewItem("No File");
+                li.SubItems.Add(AVSORTER.Tools.Fcode(Clipboard.GetText()));
+                li.SubItems.Add(QStatus.未开始.ToString());
+                this.listView1.Items.Add(li);
             }
         }
 
@@ -410,31 +327,23 @@ namespace PicSo
         }
 
 
-        private void btn_rebuild_Click(object sender, EventArgs e)
+        private void rebuildDatabase()
         {
             MessageBox.Show("未实现");
             return;
-            this.btn_MoveFile.Enabled = false;
             initFileProcessor();
             foreach (ListViewItem item in listView1.Items)
             {
-                if ((item.Tag as AVSORTER.SearchItem).IsSelected == true)
+
+                if (item.Text != "No File")
                 {
-                    if (item.Text != "No File")
-                    {
-                        AVSORTER.FileProcessor.GetInstance().MakeDataBase((item.Tag as AVSORTER.SearchItem).MovieDetail, item.Text);
-                        item.SubItems[2].Text = "成功!";
-                    }
-                    else
-                    {
-                        item.SubItems[2].Text = "未动";
-                    }
+                    AVSORTER.FileProcessor.GetInstance().MakeDataBase((item.Tag as AVSORTER.ResultArzon).Movie, item.Text);
+                    item.SubItems[2].Text = "成功!";
                 }
                 else
                 {
-                    item.SubItems[2].Text = "未指定对应影片信息";
+                    item.SubItems[2].Text = "未动";
                 }
-
             }
             AVSORTER.FileProcessor.GetInstance().WriteLog();
             this.btn_MoveFile.Enabled = true;
@@ -488,172 +397,172 @@ namespace PicSo
         #region Page3
 
 
-        private void btnFind_Click(object sender, EventArgs e)
-        {
-            BackgroundWorker worker = new BackgroundWorker();
-            worker.WorkerReportsProgress = true;
-            worker.ProgressChanged += worker_ProgressChanged;
-            worker.DoWork += worker_DoWork;
-            worker.RunWorkerCompleted += worker_RunWorkerCompleted;
-            worker.RunWorkerAsync(worker);
-        }
-
-        void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
-        {
-            //throw new NotImplementedException();
-        }
-
-        void worker_DoWork(object sender, DoWorkEventArgs e)
-        {
-            var worker = (e.Argument as BackgroundWorker);
-            List<AVSORTER.Movie> list = new List<AVSORTER.Movie>();
-            var mvbs = arzon.FindInURL(txt_url.Text);
-            worker.ReportProgress(0, "共找到影片:" + mvbs.Count.ToString());
-            int no = 0;
-            int totalNo = mvbs.Count;
-            foreach (var mvb in mvbs)
-            {
-                var fi = arzon.Clone() as AVSORTER.IGetable;
-                var mv = fi.GetMovie(mvb);
-                no++;
-                worker.ReportProgress(0, no.ToString() + "/" + totalNo.ToString());
-                worker.ReportProgress(0, mv.AVCode + "\t" + mv.Title);
-                if (mv.Actor != null && mv.Actor.Count <= nud_ActorLessThan.Value)
-                {
-                    Gets.MyWebClient wc = new Gets.MyWebClient();
-                    wc.ReferURL = mvb.ItemURL;
-                    string fn = mvb.Title + ".jpg";
-                    fn = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SmallImageFindInURL", Path.ChangeExtension(fn, "jpg"));
-                    try
-                    {
-                        if (!Directory.Exists(Path.GetDirectoryName(fn)))
-                        {
-                            Directory.CreateDirectory(Path.GetDirectoryName(fn));
-                        }
-                        if (!File.Exists(fn))
-                        {
-                            wc.DownloadFile(mvb.Img_s, fn);
-                        }
-                        else
-                        {
-                            Console.WriteLine("已有封面" + fn);
-                        }
-                        worker.ReportProgress(0, mv.AVCode + "\t封面OK!");
-
-                    }
-                    catch
-                    { }
-                    mv.CoverFile = fn;
-                    list.Add(mv);
-                }
-                else
-                {
-                    worker.ReportProgress(0, mv.AVCode + "\t演员人数超限制\t" + mv.Title);
-                }
-            }
-            StringBuilder sb = new StringBuilder();
-            foreach (AVSORTER.Movie item in list)
-            {
-                sb.Append("<div id = \"" + item.AVCode + "\" class = \"item\"><img src = \"" + item.CoverFile + "\" /><input type=\"checkbox\" />" + item.AVCode + "</div>");
-            }
-            var htmlResult = Properties.Resources.htmlResultStart + sb + Properties.Resources.htmlResultEnd;
-            System.IO.File.WriteAllText("temp.html", htmlResult);
-            System.Diagnostics.Process.Start("temp.html");
-        }
-
-        void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
-        {
-            if (e.ProgressPercentage == 0)
-            {
-                txt_FindStatus.AppendText(e.UserState as string + "\r\n");
-            }
-        }
+        //private void btnFind_Click(object sender, EventArgs e)
+        //{
+        //    BackgroundWorker worker = new BackgroundWorker();
+        //    worker.WorkerReportsProgress = true;
+        //    worker.ProgressChanged += worker_ProgressChanged;
+        //    worker.DoWork += worker_DoWork;
+        //    worker.RunWorkerCompleted += worker_RunWorkerCompleted;
+        //    worker.RunWorkerAsync(worker);
+        //}
+
+        //void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
+        //{
+        //    throw new NotImplementedException();
+        //}
+
+        //void worker_DoWork(object sender, DoWorkEventArgs e)
+        //{
+        //    var worker = (e.Argument as BackgroundWorker);
+        //    List<AVSORTER.Movie> list = new List<AVSORTER.Movie>();
+        //    var mvbs = arzon.FindInURL(txt_url.Text);
+        //    worker.ReportProgress(0, "共找到影片:" + mvbs.Count.ToString());
+        //    int no = 0;
+        //    int totalNo = mvbs.Count;
+        //    foreach (var mvb in mvbs)
+        //    {
+        //        var fi = arzon.Clone() as AVSORTER.IGetable;
+        //        var mv = fi.GetMovie(mvb);
+        //        no++;
+        //        worker.ReportProgress(0, no.ToString() + "/" + totalNo.ToString());
+        //        worker.ReportProgress(0, mv.AVCode + "\t" + mv.Title);
+        //        if (mv.Actor != null && mv.Actor.Count <= nud_ActorLessThan.Value)
+        //        {
+        //            Gets.MyWebClient wc = new Gets.MyWebClient();
+        //            wc.ReferURL = mvb.ItemURL;
+        //            string fn = mvb.Title + ".jpg";
+        //            fn = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SmallImageFindInURL", Path.ChangeExtension(fn, "jpg"));
+        //            try
+        //            {
+        //                if (!Directory.Exists(Path.GetDirectoryName(fn)))
+        //                {
+        //                    Directory.CreateDirectory(Path.GetDirectoryName(fn));
+        //                }
+        //                if (!File.Exists(fn))
+        //                {
+        //                    wc.DownloadFile(mvb.Img_s, fn);
+        //                }
+        //                else
+        //                {
+        //                    Console.WriteLine("已有封面" + fn);
+        //                }
+        //                worker.ReportProgress(0, mv.AVCode + "\t封面OK!");
+
+        //            }
+        //            catch
+        //            { }
+        //            mv.CoverFile = fn;
+        //            list.Add(mv);
+        //        }
+        //        else
+        //        {
+        //            worker.ReportProgress(0, mv.AVCode + "\t演员人数超限制\t" + mv.Title);
+        //        }
+        //    }
+        //    StringBuilder sb = new StringBuilder();
+        //    foreach (AVSORTER.Movie item in list)
+        //    {
+        //        sb.Append("<div id = \"" + item.AVCode + "\" class = \"item\"><img src = \"" + item.CoverFile + "\" /><input type=\"checkbox\" />" + item.AVCode + "</div>");
+        //    }
+        //    var htmlResult = Properties.Resources.htmlResultStart + sb + Properties.Resources.htmlResultEnd;
+        //    System.IO.File.WriteAllText("temp.html", htmlResult);
+        //    System.Diagnostics.Process.Start("temp.html");
+        //}
+
+        //void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
+        //{
+        //    if (e.ProgressPercentage == 0)
+        //    {
+        //        txt_FindStatus.AppendText(e.UserState as string + "\r\n");
+        //    }
+        //}
 
         #endregion
 
 
-        #region Page4
-        private void btn_p4_Go1_Click(object sender, EventArgs e)
-        {
-            lbl_p4_status.Visible = true;
-            btn_p4_Go1.Enabled = false;
-            btn_p4_Go1_paste.Enabled = false;
-
-
-            BackgroundWorker workerP4 = new BackgroundWorker();
-            workerP4.WorkerReportsProgress = true;
-            workerP4.ProgressChanged += workerP4_ProgressChanged;
-            workerP4.DoWork += workerP4_DoWork;
-            workerP4.RunWorkerCompleted += workerP4_RunWorkerCompleted;
-            workerP4.RunWorkerAsync();
-
-        }
-        void workerP4_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
-        {
-            lbl_p4_status.Visible = false;
-            btn_p4_Go1.Enabled = true;
-            btn_p4_Go1_paste.Enabled = true;
-        }
-        /// <summary>
-        /// torrentKitty
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        void workerP4_DoWork(object sender, DoWorkEventArgs e)
-        {
-            Gets.HttpHelper help = new Gets.HttpHelper(new System.Net.CookieContainer());
-            var html = help.GetHtml("http://www.torrentkitty.net/search/" + txt_p4_keyword.Text.Trim());
-            Console.WriteLine(html);
-            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
-            doc.LoadHtml(html);
-
-            if (doc.DocumentNode.SelectNodes("//table[@id='archiveResult']/tr") == null)
-            {
-                return;
-            }
-
-            int n = doc.DocumentNode.SelectNodes("//table[@id='archiveResult']/tr").Count;
-
-            for (int i = 2; i < n; i++)
-            {
-                var name = doc.DocumentNode.SelectSingleNode("//table[@id='archiveResult']/tr[" + i + "]/td[@class='name']").InnerText;
-                ListViewItem li = new ListViewItem(name);
-                var size = doc.DocumentNode.SelectSingleNode("//table[@id='archiveResult']/tr[" + i + "]/td[@class='size']").InnerText;
-                li.SubItems.Add(size);
-                var link = doc.DocumentNode.SelectSingleNode("//table[@id='archiveResult']/tr[" + i + "]/td[@class='action']/a[2]").Attributes["href"].Value;
-                li.SubItems.Add(link);
-                lv_p4_result.Items.Add(li);
-            }
-            lv_p4_result.Items.Add(new ListViewItem("====="));
-        }
-
-        void workerP4_ProgressChanged(object sender, ProgressChangedEventArgs e)
-        {
-
-        }
-        private void cmenu_p4_item_copy_Click(object sender, EventArgs e)
-        {
-            if (lv_p4_result.SelectedItems.Count == 1)
-            {
-                var link = lv_p4_result.SelectedItems[0].SubItems[2].Text;
-
-                Clipboard.SetText(link);
-
-            }
-        }
-        private void btn_p4_Clear_Click(object sender, EventArgs e)
-        {
-            lv_p4_result.Items.Clear();
-        }
-        private void btn_p4_Go1_paste_Click(object sender, EventArgs e)
-        {
-            if (Clipboard.ContainsText())
-            {
-                txt_p4_keyword.Text = Clipboard.GetText();
-                btn_p4_Go1_Click(this, new EventArgs());
-            }
-        }
-        #endregion
+        //#region Page4
+        //private void btn_p4_Go1_Click(object sender, EventArgs e)
+        //{
+        //    lbl_p4_status.Visible = true;
+        //    btn_p4_Go1.Enabled = false;
+        //    btn_p4_Go1_paste.Enabled = false;
+
+
+        //    BackgroundWorker workerP4 = new BackgroundWorker();
+        //    workerP4.WorkerReportsProgress = true;
+        //    workerP4.ProgressChanged += workerP4_ProgressChanged;
+        //    workerP4.DoWork += workerP4_DoWork;
+        //    workerP4.RunWorkerCompleted += workerP4_RunWorkerCompleted;
+        //    workerP4.RunWorkerAsync();
+
+        //}
+        //void workerP4_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
+        //{
+        //    lbl_p4_status.Visible = false;
+        //    btn_p4_Go1.Enabled = true;
+        //    btn_p4_Go1_paste.Enabled = true;
+        //}
+        ///// <summary>
+        ///// torrentKitty
+        ///// </summary>
+        ///// <param name="sender"></param>
+        ///// <param name="e"></param>
+        //void workerP4_DoWork(object sender, DoWorkEventArgs e)
+        //{
+        //    Gets.HttpHelper help = new Gets.HttpHelper(new System.Net.CookieContainer());
+        //    var html = help.GetHtml("http://www.torrentkitty.net/search/" + txt_p4_keyword.Text.Trim());
+        //    Console.WriteLine(html);
+        //    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
+        //    doc.LoadHtml(html);
+
+        //    if (doc.DocumentNode.SelectNodes("//table[@id='archiveResult']/tr") == null)
+        //    {
+        //        return;
+        //    }
+
+        //    int n = doc.DocumentNode.SelectNodes("//table[@id='archiveResult']/tr").Count;
+
+        //    for (int i = 2; i < n; i++)
+        //    {
+        //        var name = doc.DocumentNode.SelectSingleNode("//table[@id='archiveResult']/tr[" + i + "]/td[@class='name']").InnerText;
+        //        ListViewItem li = new ListViewItem(name);
+        //        var size = doc.DocumentNode.SelectSingleNode("//table[@id='archiveResult']/tr[" + i + "]/td[@class='size']").InnerText;
+        //        li.SubItems.Add(size);
+        //        var link = doc.DocumentNode.SelectSingleNode("//table[@id='archiveResult']/tr[" + i + "]/td[@class='action']/a[2]").Attributes["href"].Value;
+        //        li.SubItems.Add(link);
+        //        lv_p4_result.Items.Add(li);
+        //    }
+        //    lv_p4_result.Items.Add(new ListViewItem("====="));
+        //}
+
+        //void workerP4_ProgressChanged(object sender, ProgressChangedEventArgs e)
+        //{
+
+        //}
+        //private void cmenu_p4_item_copy_Click(object sender, EventArgs e)
+        //{
+        //    if (lv_p4_result.SelectedItems.Count == 1)
+        //    {
+        //        var link = lv_p4_result.SelectedItems[0].SubItems[2].Text;
+
+        //        Clipboard.SetText(link);
+
+        //    }
+        //}
+        //private void btn_p4_Clear_Click(object sender, EventArgs e)
+        //{
+        //    lv_p4_result.Items.Clear();
+        //}
+        //private void btn_p4_Go1_paste_Click(object sender, EventArgs e)
+        //{
+        //    if (Clipboard.ContainsText())
+        //    {
+        //        txt_p4_keyword.Text = Clipboard.GetText();
+        //        btn_p4_Go1_Click(this, new EventArgs());
+        //    }
+        //}
+        //#endregion
         SearchController currentSearchController;
         private void button1_Click(object sender, EventArgs e)
         {

+ 3 - 0
PicSo/Form1.resx

@@ -123,6 +123,9 @@
   <metadata name="cmenu_p4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>182, 17</value>
   </metadata>
+  <metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>294, 17</value>
+  </metadata>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>58</value>
   </metadata>

+ 1 - 1
PicSo/MovieContainer.Designer.cs

@@ -286,7 +286,7 @@
             this.Controls.Add(this.txt_Actor);
             this.Controls.Add(this.pictureBox1);
             this.Name = "MovieContainer";
-            this.Size = new System.Drawing.Size(907, 371);
+            this.Size = new System.Drawing.Size(915, 377);
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
             this.ResumeLayout(false);
             this.PerformLayout();

+ 17 - 0
PicSo/MovieContainer.cs

@@ -11,6 +11,23 @@ namespace PicSo
 {
     public partial class MovieContainer : UserControl
     {
+        private bool _showOtherButton;
+
+        public bool IsShowOtherButton
+        {
+            get
+            {
+                this.Size = new Size(this.Width, this.Height + 30);
+                return _showOtherButton;
+            }
+            set
+            {
+                this.Size = new Size(this.Width, this.Height - 30);
+
+                _showOtherButton = value;
+            }
+        }
+
         public MovieContainer()
         {
             InitializeComponent();

+ 9 - 0
PicSo/PicSo.csproj

@@ -53,6 +53,12 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="AboutBox1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="AboutBox1.Designer.cs">
+      <DependentUpon>AboutBox1.cs</DependentUpon>
+    </Compile>
     <Compile Include="BasicContainer.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -81,6 +87,9 @@
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="SearchController.cs" />
+    <EmbeddedResource Include="AboutBox1.resx">
+      <DependentUpon>AboutBox1.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="BasicContainer.resx">
       <DependentUpon>BasicContainer.cs</DependentUpon>
     </EmbeddedResource>

BIN
PicSo/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache