This repository has been archived on 2026-05-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
SimPas2-Windows/Program.cs
2026-01-21 03:07:35 +09:00

122 lines
4.2 KiB
C#

using Microsoft.Data.Sqlite;
namespace SimPas2_Windows
{
internal static class Program
{
private static readonly string AppDataPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"076Soft", "SimPas");
private static readonly string DatabasePath = Path.Combine(AppDataPath, "SimPas.db");
[STAThread]
static void Main()
{
//Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
//Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ja-JP");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ja-JP");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
InitializeDatabase();
ApplicationConfiguration.Initialize();
Application.Run(new SimPas2());
}
private static void InitializeDatabase()
{
try
{
if (!Directory.Exists(AppDataPath))
{
Directory.CreateDirectory(AppDataPath);
}
if (!File.Exists(DatabasePath))
{
using (var conn = new SqliteConnection($"Data Source={DatabasePath}"))
{
conn.Open();
SqliteCommand com = conn.CreateCommand();
com.CommandText = @"
CREATE TABLE IF NOT EXISTS Settings (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Key VARCHAR(255) NOT NULL,
Value TEXT
);
CREATE TABLE IF NOT EXISTS Passwords (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Website VARCHAR(255) NOT NULL,
Username VARCHAR(255) NOT NULL,
Password VARCHAR(255) NOT NULL,
Note TEXT
);
CREATE TABLE IF NOT EXISTS Otp (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Website VARCHAR(255) NOT NULL,
Secret VARCHAR(255) NOT NULL,
Issuer VARCHAR(255) NOT NULL,
Algorithm VARCHAR(255) NOT NULL,
Duration INTEGER NOT NULL,
Digits INTEGER NOT NULL,
Note TEXT
);
CREATE TABLE IF NOT EXISTS Pin (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Website VARCHAR(255) NOT NULL,
Pincode VARCHAR(6) NOT NULL,
Note TEXT
);
CREATE TABLE IF NOT EXISTS Qa (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Website VARCHAR(255) NOT NULL,
Question VARCHAR(255) NOT NULL,
Answer VARCHAR(255) NOT NULL,
Note TEXT
);
CREATE TABLE IF NOT EXISTS Cc (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Brand VARCHAR(50) NOT NULL,
Cardnumber VARCHAR(20) NOT NULL,
Expiration VARCHAR(5) NOT NULL,
Cvc VARCHAR(4) NOT NULL,
Holdername VARCHAR(255) NOT NULL,
Note TEXT
);
CREATE TABLE IF NOT EXISTS Crypto (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Currency VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Address VARCHAR(255) NOT NULL,
Seed TEXT NOT NULL,
Viewkey VARCHAR(255),
Spendkey VARCHAR(255),
Height VARCHAR(255),
Password VARCHAR(255),
Note TEXT
);
CREATE TABLE IF NOT EXISTS Notes (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name VARCHAR(255) NOT NULL,
Text TEXT
);
";
com.ExecuteNonQuery();
}
}
}
catch (Exception e)
{
MessageBox.Show(
$"Failed to initialize database: {e.Message}",
"Database Error",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}