281 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			281 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using DotNet4.Utilities; | |||
|  | using HtmlAgilityPack; | |||
|  | using ICSharpCode.TextEditor.Document; | |||
|  | using Microsoft.Win32; | |||
|  | using ryCommon; | |||
|  | using ryCommonDb; | |||
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.ComponentModel; | |||
|  | using System.Data; | |||
|  | using System.Drawing; | |||
|  | using System.IO; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Text.RegularExpressions; | |||
|  | using System.Threading; | |||
|  | using System.Windows.Forms; | |||
|  | using System.Xml; | |||
|  | using WeifenLuo.WinFormsUI.Docking; | |||
|  | using 开发辅助工具.Manager; | |||
|  | using 开发辅助工具.Tools; | |||
|  | 
 | |||
|  | namespace 开发辅助工具 | |||
|  | { | |||
|  |     public partial class Form1 : Form | |||
|  |     { | |||
|  |         string _ProjectPath = ""; | |||
|  |         public Form1(string ProjectPath,string mode) | |||
|  |         { | |||
|  |             _ProjectPath = ProjectPath;            | |||
|  |             InitializeComponent(); | |||
|  |             if(ProjectPath!="") | |||
|  |             { | |||
|  |                 if (mode == "get") | |||
|  |                 { | |||
|  |                     FrmProject frm = new FrmProject(ProjectPath); | |||
|  |                     frm.Show(dockPanel1); | |||
|  |                 } | |||
|  |                 else if (mode == "open") | |||
|  |                 { | |||
|  |                     FrmPathInfo frm = new FrmPathInfo(ProjectPath); | |||
|  |                     frm.Show(dockPanel1); | |||
|  |                 } | |||
|  |             } | |||
|  |             Manager.Itrycn_Db.CreateSysTable(); | |||
|  |             Manager.Itrycn_Db.CreateUserTable(); | |||
|  |             LoadBaseTools(); | |||
|  |         } | |||
|  |         public void HideDownList() | |||
|  |         { | |||
|  |             table1.Visible = false; | |||
|  |         } | |||
|  |         private void LoadBaseTools() | |||
|  |         { | |||
|  |             DataProvider mydb = new DataProvider(); | |||
|  |             IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); | |||
|  |             if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1) | |||
|  |             { | |||
|  |                 DataSet ds = db.ReadData("select * from Starts order by ClickCount desc,editTime desc"); | |||
|  |                 if(mydb.HaveData(ds)) | |||
|  |                 { | |||
|  |                     for (int i = 0; i < ds.Tables[0].Rows.Count; i++) | |||
|  |                     { | |||
|  |                         DataRow row = ds.Tables[0].Rows[i]; | |||
|  |                         Type type = Type.GetType(row["Addr"].ToString()); | |||
|  |                         if (type == null) { continue; } | |||
|  |                         ShowForm(type);                                              | |||
|  |                     } | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     ShowForm(typeof(FrmWebGet)); | |||
|  |                     ShowForm(typeof(FrmXpath)); | |||
|  |                     ShowForm(typeof(FrmRegex)); | |||
|  |                     ShowForm(typeof(FrmEncode)); | |||
|  |                 } | |||
|  |             } | |||
|  |             db.Free(); | |||
|  |             //ShowForm(Type.GetType("开发辅助工具.Tools.FrmWebGet")); | |||
|  |             //ShowForm(typeof(FrmToolsBox)); | |||
|  |             //FrmProject frm = new FrmProject(ProjectPath); | |||
|  |             //frm.Show(dockPanel1); | |||
|  |         } | |||
|  |         private void ShowForm(Type type) | |||
|  |         { | |||
|  |             DockContent frm = (DockContent)Activator.CreateInstance(type); | |||
|  |             frm.Click += Frm_Click; | |||
|  |             frm.Show(dockPanel1); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void Frm_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             HideDownList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void Form1_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             Text = "开发辅助工具 V"+ryCommon.RySoft.VersionStr; | |||
|  |             bool test_mode = false; | |||
|  |             if (System.IO.File.Exists(Application.StartupPath + "\\测试.txt")){test_mode = true;} | |||
|  |             BtnTools.Visible = test_mode; | |||
|  |             BtnSetting.Visible = test_mode; | |||
|  |             BtnCreateProject.Visible = test_mode; | |||
|  |             DataProvider mydb = new DataProvider(); | |||
|  |             IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); | |||
|  |             if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1) | |||
|  |             { | |||
|  |                 RyQuickSQL mySQL = new RyQuickSQL("Urls"); | |||
|  |                 mySQL.AddField("editTime",DateTime.Now.AddDays(-10)); | |||
|  |                 db.ExecuteNonQuery("DELETE FROM Urls WHERE id IN (SELECT id FROM Urls ORDER BY ClickCount desc,editTime desc LIMIT 1000,50) and editTime<=@editTime", mySQL); | |||
|  |             } | |||
|  |             db.Free(); | |||
|  |         } | |||
|  |         | |||
|  |         private void BtnTools_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             FrmToolsSearch frm = new FrmToolsSearch(); | |||
|  |             frm.ShowDialog(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void RySearch1_OnTextChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             string sql_where = ""; | |||
|  |             if (rySearch1.Text != ""){ sql_where = " where (Name like @SearchText or Des like @SearchText or Keys like @SearchText or PY like @SearchText)"; } | |||
|  |             #region 重新载入数据 | |||
|  |             tableModel1.Rows.Clear(); | |||
|  |             tableModel1.Selections.Clear(); | |||
|  |             DataProvider mydb = new DataProvider(); | |||
|  |             IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); | |||
|  |             if (db.ConnDb(Itrycn_Db.Sys_SQLConn) == 1) | |||
|  |             { | |||
|  |                 db.AddParameter("SearchText", "%" + rySearch1.Text + "%"); | |||
|  |                 DataSet ds = db.ReadData("select * from Tools"+ sql_where+ " order by sort desc, addTime desc", db.GetParameter()); | |||
|  |                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) | |||
|  |                 { | |||
|  |                     DataRow row = ds.Tables[0].Rows[i]; | |||
|  |                     XPTable.Models.Row itemList = new XPTable.Models.Row() | |||
|  |                     { | |||
|  |                         Tag = row["Addr"].ToString() | |||
|  |                     }; | |||
|  |                     //需要修改此处 | |||
|  |                     itemList.Cells.Add(new XPTable.Models.Cell(row["Name"].ToString()));//示例 | |||
|  |                     var cell = new XPTable.Models.Cell(row["Des"].ToString()); | |||
|  |                     cell.ForeColor = Color.Gray; | |||
|  |                     itemList.Cells.Add(cell); | |||
|  |                     tableModel1.Rows.Add(itemList); | |||
|  |                 } | |||
|  |                 db.Free(); | |||
|  |                 textColumn4.Text = "工具名称("+ tableModel1.Rows.Count+ ")"; | |||
|  |                 table1.Visible = tableModel1.Rows.Count!=0;  | |||
|  |             } | |||
|  |             #endregion | |||
|  |         } | |||
|  | 
 | |||
|  |         private void RySearch1_KeyDown(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             if(e.KeyCode==Keys.Down) | |||
|  |             { | |||
|  |                 if (table1.Visible) | |||
|  |                 { | |||
|  |                     table1.TableModel.Selections.Clear(); | |||
|  |                     table1.TableModel.Selections.AddCells(0, 0, 0, columnModel1.Columns.Count - 1); | |||
|  |                     table1.Focus(); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private void Table1_KeyDown(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             if (e.KeyCode == Keys.Up) | |||
|  |             { | |||
|  |                 if (table1.SelectedItems.Length>0 && table1.SelectedItems[0].Index==0) | |||
|  |                 { | |||
|  |                     table1.TableModel.Selections.Clear(); | |||
|  |                     rySearch1.Select(); | |||
|  |                 } | |||
|  |             } | |||
|  |             else if(e.KeyCode==Keys.Enter) | |||
|  |             { | |||
|  |                 ClickItem(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private void DockPanel1_Enter(object sender, EventArgs e) | |||
|  |         { | |||
|  |             table1.Visible = false; | |||
|  |         } | |||
|  | 
 | |||
|  |         private void Panel1_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             table1.Visible = false; | |||
|  |         } | |||
|  |         private void ClickItem() | |||
|  |         { | |||
|  |             if (table1.SelectedItems.Length > 0) | |||
|  |             { | |||
|  |                 table1.Visible = false; | |||
|  |                 Application.DoEvents(); | |||
|  |                 string addr = table1.SelectedItems[0].Tag.ToString(); | |||
|  |                 Type type = Type.GetType("开发辅助工具." + addr); | |||
|  |                 if (type == null) | |||
|  |                 { | |||
|  |                     MessageBox.Show("无法找到工具", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     ShowForm(type); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  |         private void Table1_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             ClickItem(); | |||
|  |         } | |||
|  |         private const int WM_COPYDATA = 0x004A; | |||
|  |         protected override void WndProc(ref Message m) | |||
|  |         { | |||
|  |             //Console.WriteLine(m.Msg); | |||
|  |             const int WM_SYSCOMMAND = 0x0112; | |||
|  |             const int SC_CLOSE = 0xF060; | |||
|  |             #region 关闭软件时 | |||
|  |             if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE) | |||
|  |             { | |||
|  |                 //捕捉关闭窗体消息       | |||
|  |                 //用户点击关闭窗体控制按钮   注释为最小化窗体    | |||
|  |                 //this.WindowState = FormWindowState.Minimized; | |||
|  |                 if (Itrycn_Db.IsCloseConfirm) | |||
|  |                 { | |||
|  |                     switch (MessageBox.Show("是否确定要关闭所有窗口?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) | |||
|  |                     { | |||
|  |                         case DialogResult.Cancel: | |||
|  |                             RyForm.SetActiveWindow(Handle); | |||
|  |                             return; | |||
|  |                         case DialogResult.OK: | |||
|  |                             Itrycn_Db.IsCloseConfirm = false; | |||
|  |                             break; | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             #endregion | |||
|  |             base.WndProc(ref m); | |||
|  |         } | |||
|  |         private void Form1_FormClosing(object sender, FormClosingEventArgs e) | |||
|  |         { | |||
|  |             Itrycn_Db.IsCloseConfirm = false; | |||
|  |         } | |||
|  | 
 | |||
|  |         private void RySearch1_Leave(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!table1.Focused) | |||
|  |             { | |||
|  |                 table1.Visible = false; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private void Table1_Leave(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!rySearch1.Focused) | |||
|  |             { | |||
|  |                 table1.Visible = false; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private void BtnSetting_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             FrmSetting frm = new FrmSetting(); | |||
|  |             frm.Icon = Icon; | |||
|  |             frm.ShowDialog(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void BtnCreateProject_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             FrmCreateProject frm = new FrmCreateProject(); | |||
|  |             frm.Icon = Icon; | |||
|  |             frm.StartPosition = FormStartPosition.CenterParent; | |||
|  |             frm.ShowDialog(); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  | } |