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); } } } }