up
This commit is contained in:
parent
5eac60bd7e
commit
48dbbd8033
34
AsmrManage/AsmrManage/AppConfig.cs
Normal file
34
AsmrManage/AsmrManage/AppConfig.cs
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace AsmrManage
|
||||||
|
{
|
||||||
|
public class AppConfig
|
||||||
|
{
|
||||||
|
public string DatabaseFilePath { get; set; } = string.Empty; //asmr.db 位置
|
||||||
|
public string DBBrowserPath { get; set; } = string.Empty; //DBBrowser 位置
|
||||||
|
public int Version { get; set; } = int.MaxValue; //配置版本信息
|
||||||
|
}
|
||||||
|
public static class ConfigManager
|
||||||
|
{
|
||||||
|
public static void SaveConfig(AppConfig config) //SAVE
|
||||||
|
{
|
||||||
|
config.Version = 1;// v1
|
||||||
|
string configFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.json");
|
||||||
|
File.WriteAllText(configFilePath, JsonConvert.SerializeObject(config));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AppConfig LoadConfig() //LOAD
|
||||||
|
{
|
||||||
|
string configFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.json");
|
||||||
|
|
||||||
|
if (File.Exists(configFilePath))
|
||||||
|
{
|
||||||
|
string json = File.ReadAllText(configFilePath);
|
||||||
|
return JsonConvert.DeserializeObject<AppConfig>(json) ?? new AppConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
return new AppConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="EPPlus" Version="6.2.10" />
|
<PackageReference Include="EPPlus" Version="6.2.10" />
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="System.Data.SQLite" Version="1.0.118" />
|
<PackageReference Include="System.Data.SQLite" Version="1.0.118" />
|
||||||
<PackageReference Include="System.IO" Version="4.3.0" />
|
<PackageReference Include="System.IO" Version="4.3.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
125
AsmrManage/AsmrManage/Form1.Designer.cs
generated
125
AsmrManage/AsmrManage/Form1.Designer.cs
generated
@ -49,12 +49,23 @@
|
|||||||
button1 = new Button();
|
button1 = new Button();
|
||||||
tabPage3 = new TabPage();
|
tabPage3 = new TabPage();
|
||||||
tabPage4 = new TabPage();
|
tabPage4 = new TabPage();
|
||||||
|
button9 = new Button();
|
||||||
|
button8 = new Button();
|
||||||
|
button7 = new Button();
|
||||||
|
button6 = new Button();
|
||||||
|
button5 = new Button();
|
||||||
|
textBox5 = new TextBox();
|
||||||
|
label6 = new Label();
|
||||||
|
button4 = new Button();
|
||||||
|
textBox4 = new TextBox();
|
||||||
|
label5 = new Label();
|
||||||
tabPage5 = new TabPage();
|
tabPage5 = new TabPage();
|
||||||
label1 = new Label();
|
label1 = new Label();
|
||||||
tabControl1.SuspendLayout();
|
tabControl1.SuspendLayout();
|
||||||
tabPage2.SuspendLayout();
|
tabPage2.SuspendLayout();
|
||||||
groupBox2.SuspendLayout();
|
groupBox2.SuspendLayout();
|
||||||
groupBox1.SuspendLayout();
|
groupBox1.SuspendLayout();
|
||||||
|
tabPage4.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// tabControl1
|
// tabControl1
|
||||||
@ -69,6 +80,7 @@
|
|||||||
tabControl1.SelectedIndex = 0;
|
tabControl1.SelectedIndex = 0;
|
||||||
tabControl1.Size = new Size(536, 424);
|
tabControl1.Size = new Size(536, 424);
|
||||||
tabControl1.TabIndex = 0;
|
tabControl1.TabIndex = 0;
|
||||||
|
tabControl1.SelectedIndexChanged += TabControl1_SelectedIndexChanged;
|
||||||
//
|
//
|
||||||
// tabPage1
|
// tabPage1
|
||||||
//
|
//
|
||||||
@ -274,14 +286,113 @@
|
|||||||
//
|
//
|
||||||
// tabPage4
|
// tabPage4
|
||||||
//
|
//
|
||||||
|
tabPage4.Controls.Add(button9);
|
||||||
|
tabPage4.Controls.Add(button8);
|
||||||
|
tabPage4.Controls.Add(button7);
|
||||||
|
tabPage4.Controls.Add(button6);
|
||||||
|
tabPage4.Controls.Add(button5);
|
||||||
|
tabPage4.Controls.Add(textBox5);
|
||||||
|
tabPage4.Controls.Add(label6);
|
||||||
|
tabPage4.Controls.Add(button4);
|
||||||
|
tabPage4.Controls.Add(textBox4);
|
||||||
|
tabPage4.Controls.Add(label5);
|
||||||
tabPage4.Location = new Point(4, 24);
|
tabPage4.Location = new Point(4, 24);
|
||||||
tabPage4.Name = "tabPage4";
|
tabPage4.Name = "tabPage4";
|
||||||
tabPage4.Padding = new Padding(3);
|
tabPage4.Padding = new Padding(3);
|
||||||
tabPage4.Size = new Size(528, 396);
|
tabPage4.Size = new Size(528, 396);
|
||||||
tabPage4.TabIndex = 3;
|
tabPage4.TabIndex = 3;
|
||||||
tabPage4.Text = "高级功能";
|
tabPage4.Text = "设置";
|
||||||
tabPage4.UseVisualStyleBackColor = true;
|
tabPage4.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// button9
|
||||||
|
//
|
||||||
|
button9.Location = new Point(209, 317);
|
||||||
|
button9.Name = "button9";
|
||||||
|
button9.Size = new Size(101, 44);
|
||||||
|
button9.TabIndex = 9;
|
||||||
|
button9.Text = "重置配置文件";
|
||||||
|
button9.UseVisualStyleBackColor = true;
|
||||||
|
button9.Click += button9_Click;
|
||||||
|
//
|
||||||
|
// button8
|
||||||
|
//
|
||||||
|
button8.Location = new Point(209, 267);
|
||||||
|
button8.Name = "button8";
|
||||||
|
button8.Size = new Size(101, 44);
|
||||||
|
button8.TabIndex = 8;
|
||||||
|
button8.Text = "保存配置文件";
|
||||||
|
button8.UseVisualStyleBackColor = true;
|
||||||
|
button8.Click += button8_Click;
|
||||||
|
//
|
||||||
|
// button7
|
||||||
|
//
|
||||||
|
button7.Location = new Point(209, 217);
|
||||||
|
button7.Name = "button7";
|
||||||
|
button7.Size = new Size(101, 44);
|
||||||
|
button7.TabIndex = 7;
|
||||||
|
button7.Text = "读取配置文件";
|
||||||
|
button7.UseVisualStyleBackColor = true;
|
||||||
|
button7.Click += Button7_Click;
|
||||||
|
//
|
||||||
|
// button6
|
||||||
|
//
|
||||||
|
button6.Location = new Point(342, 21);
|
||||||
|
button6.Name = "button6";
|
||||||
|
button6.Size = new Size(75, 23);
|
||||||
|
button6.TabIndex = 6;
|
||||||
|
button6.Text = "打开文件";
|
||||||
|
button6.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// button5
|
||||||
|
//
|
||||||
|
button5.Location = new Point(423, 78);
|
||||||
|
button5.Name = "button5";
|
||||||
|
button5.Size = new Size(75, 23);
|
||||||
|
button5.TabIndex = 5;
|
||||||
|
button5.Text = "浏览";
|
||||||
|
button5.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// textBox5
|
||||||
|
//
|
||||||
|
textBox5.Location = new Point(20, 104);
|
||||||
|
textBox5.Name = "textBox5";
|
||||||
|
textBox5.Size = new Size(478, 23);
|
||||||
|
textBox5.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
label6.AutoSize = true;
|
||||||
|
label6.Location = new Point(20, 86);
|
||||||
|
label6.Name = "label6";
|
||||||
|
label6.Size = new Size(151, 15);
|
||||||
|
label6.TabIndex = 3;
|
||||||
|
label6.Text = "DB Browser for SQLite 位置";
|
||||||
|
//
|
||||||
|
// button4
|
||||||
|
//
|
||||||
|
button4.Location = new Point(423, 21);
|
||||||
|
button4.Name = "button4";
|
||||||
|
button4.Size = new Size(75, 23);
|
||||||
|
button4.TabIndex = 2;
|
||||||
|
button4.Text = "浏览";
|
||||||
|
button4.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// textBox4
|
||||||
|
//
|
||||||
|
textBox4.Location = new Point(20, 47);
|
||||||
|
textBox4.Name = "textBox4";
|
||||||
|
textBox4.Size = new Size(478, 23);
|
||||||
|
textBox4.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
label5.AutoSize = true;
|
||||||
|
label5.Location = new Point(20, 29);
|
||||||
|
label5.Name = "label5";
|
||||||
|
label5.Size = new Size(79, 15);
|
||||||
|
label5.TabIndex = 0;
|
||||||
|
label5.Text = "asmr.db 位置";
|
||||||
|
//
|
||||||
// tabPage5
|
// tabPage5
|
||||||
//
|
//
|
||||||
tabPage5.Location = new Point(4, 24);
|
tabPage5.Location = new Point(4, 24);
|
||||||
@ -314,6 +425,8 @@
|
|||||||
groupBox2.ResumeLayout(false);
|
groupBox2.ResumeLayout(false);
|
||||||
groupBox1.ResumeLayout(false);
|
groupBox1.ResumeLayout(false);
|
||||||
groupBox1.PerformLayout();
|
groupBox1.PerformLayout();
|
||||||
|
tabPage4.ResumeLayout(false);
|
||||||
|
tabPage4.PerformLayout();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,5 +455,15 @@
|
|||||||
private Label label4;
|
private Label label4;
|
||||||
private TextBox textBox3;
|
private TextBox textBox3;
|
||||||
private CheckBox checkBox4;
|
private CheckBox checkBox4;
|
||||||
|
private Button button6;
|
||||||
|
private Button button5;
|
||||||
|
private TextBox textBox5;
|
||||||
|
private Label label6;
|
||||||
|
private Button button4;
|
||||||
|
private TextBox textBox4;
|
||||||
|
private Label label5;
|
||||||
|
private Button button9;
|
||||||
|
private Button button8;
|
||||||
|
private Button button7;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,13 +6,13 @@ namespace AsmrManage
|
|||||||
{
|
{
|
||||||
public partial class Form1 : Form
|
public partial class Form1 : Form
|
||||||
{
|
{
|
||||||
public Form1()
|
public Form1() //init
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void Button1_Click(object sender, EventArgs e)
|
private void Button1_Click(object sender, EventArgs e) //P2 xlsx文件选框
|
||||||
{
|
{
|
||||||
OpenFileDialog openFileDialog1 = new OpenFileDialog();
|
OpenFileDialog openFileDialog1 = new OpenFileDialog();
|
||||||
openFileDialog1.Title = "请选择符合的xlsx表格文件";
|
openFileDialog1.Title = "请选择符合的xlsx表格文件";
|
||||||
@ -25,7 +25,7 @@ namespace AsmrManage
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button2_Click(object sender, EventArgs e)
|
private void Button2_Click(object sender, EventArgs e) //P2 db文件位置选框
|
||||||
{
|
{
|
||||||
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
|
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
|
||||||
folderBrowserDialog1.UseDescriptionForTitle = true;
|
folderBrowserDialog1.UseDescriptionForTitle = true;
|
||||||
@ -36,13 +36,13 @@ namespace AsmrManage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Log(string message)
|
private void Log(string message) //xlsx2db log function
|
||||||
{
|
{
|
||||||
logBox1.AppendText(message + Environment.NewLine);
|
logBox1.AppendText(message + Environment.NewLine);
|
||||||
logBox1.ScrollToCaret();
|
logBox1.ScrollToCaret();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button3_Click(object sender, EventArgs e)
|
private void Button3_Click(object sender, EventArgs e) //xlsx2db 开始处理
|
||||||
{
|
{
|
||||||
Log("开始处理");
|
Log("开始处理");
|
||||||
string excelFilePath = textBox1.Text;
|
string excelFilePath = textBox1.Text;
|
||||||
@ -55,7 +55,7 @@ namespace AsmrManage
|
|||||||
{
|
{
|
||||||
databaseLocation = textBox2.Text;
|
databaseLocation = textBox2.Text;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(excelFilePath) || string.IsNullOrEmpty(databaseLocation))
|
if (string.IsNullOrEmpty(excelFilePath) || string.IsNullOrEmpty(databaseLocation))
|
||||||
{
|
{
|
||||||
Log("TextBox1 或 TextBox2 为空,无法继续处理");
|
Log("TextBox1 或 TextBox2 为空,无法继续处理");
|
||||||
@ -162,15 +162,89 @@ namespace AsmrManage
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
private void CheckBox2_CheckedChanged(object sender, EventArgs e)
|
private void CheckBox2_CheckedChanged(object sender, EventArgs e) //转换使用源文件位置
|
||||||
{
|
{
|
||||||
textBox2.Enabled = !checkBox2.Checked;
|
textBox2.Enabled = !checkBox2.Checked;
|
||||||
|
button2.Enabled = !checkBox2.Checked;
|
||||||
}
|
}
|
||||||
private void CheckBox4_CheckedChanged(object sender, EventArgs e)
|
private void CheckBox4_CheckedChanged(object sender, EventArgs e) //文件是否受密码保护
|
||||||
{
|
{
|
||||||
textBox3.ReadOnly = !checkBox4.Checked;
|
textBox3.ReadOnly = !checkBox4.Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TabControl1_SelectedIndexChanged(object sender, EventArgs e) //切换标签页
|
||||||
|
{
|
||||||
|
ResetPage2();
|
||||||
|
ResetPage4();
|
||||||
|
if (tabControl1.SelectedTab == tabPage4)
|
||||||
|
{
|
||||||
|
RefreshSettingPageInfo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshSettingPageInfo() //重新获取P4信息
|
||||||
|
{
|
||||||
|
Program.config ??= ConfigManager.LoadConfig();
|
||||||
|
textBox4.Text = Program.config.DatabaseFilePath;
|
||||||
|
textBox5.Text = Program.config.DBBrowserPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetPage4()
|
||||||
|
{
|
||||||
|
textBox4.Text = string.Empty;
|
||||||
|
textBox5.Text = string.Empty;
|
||||||
|
} //刷新P4
|
||||||
|
|
||||||
|
private void ResetPage2()
|
||||||
|
{
|
||||||
|
// 重置内容
|
||||||
|
textBox1.Text = string.Empty;
|
||||||
|
textBox2.Text = string.Empty;
|
||||||
|
textBox3.Text = string.Empty;
|
||||||
|
logBox1.Text = string.Empty;
|
||||||
|
|
||||||
|
// 取消选中checkBox1~4
|
||||||
|
checkBox1.Checked = false;
|
||||||
|
checkBox2.Checked = false;
|
||||||
|
checkBox3.Checked = false;
|
||||||
|
checkBox4.Checked = false;
|
||||||
|
} //刷新P2
|
||||||
|
|
||||||
|
private void Button7_Click(object sender, EventArgs e) //读取配置文件
|
||||||
|
{
|
||||||
|
Program.config = ConfigManager.LoadConfig();
|
||||||
|
RefreshSettingPageInfo();
|
||||||
|
MessageBox.Show("配置信息已重新加载。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void button8_Click(object sender, EventArgs e) //保存配置文件
|
||||||
|
{
|
||||||
|
//保存前信息检查
|
||||||
|
string path1 = textBox4.Text.Trim();
|
||||||
|
string path2 = textBox5.Text.Trim();
|
||||||
|
if (!string.IsNullOrEmpty(path1) && !File.Exists(path1))
|
||||||
|
{
|
||||||
|
MessageBox.Show("指定的DB路径不存在。请检查路径是否正确。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(path2) && !File.Exists(path2))
|
||||||
|
{
|
||||||
|
MessageBox.Show("指定的DB Browser路径不存在。请检查路径是否正确。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//开始保存
|
||||||
|
Program.config ??= ConfigManager.LoadConfig();
|
||||||
|
Program.config.DatabaseFilePath = path1;
|
||||||
|
Program.config.DBBrowserPath = path2;
|
||||||
|
ConfigManager.SaveConfig(Program.config);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void button9_Click(object sender, EventArgs e) //重置配置文件
|
||||||
|
{
|
||||||
|
Program.config = null;
|
||||||
|
ConfigManager.SaveConfig(new AppConfig());
|
||||||
|
RefreshSettingPageInfo();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,11 +5,13 @@ namespace AsmrManage
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The main entry point for the application.
|
/// The main entry point for the application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
public static AppConfig? config;
|
||||||
[STAThread]
|
[STAThread]
|
||||||
static void Main()
|
static void Main()
|
||||||
{
|
{
|
||||||
// To customize application configuration such as set high DPI settings or default font,
|
// To customize application configuration such as set high DPI settings or default font,
|
||||||
// see https://aka.ms/applicationconfiguration.
|
// see https://aka.ms/applicationconfiguration.
|
||||||
|
config = ConfigManager.LoadConfig(); //fetch configuration data
|
||||||
ApplicationConfiguration.Initialize();
|
ApplicationConfiguration.Initialize();
|
||||||
Application.Run(new Form1());
|
Application.Run(new Form1());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user