diff --git a/Yamira/Program.cs b/Yamira/Program.cs index 159e70a..9a1d7f6 100644 --- a/Yamira/Program.cs +++ b/Yamira/Program.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Windows.Forms; // using static Yamira.TSModules; @@ -9,6 +10,12 @@ internal static class Program{ /// Uygulamanın ana girdi noktası. /// // ====================================================================================================== + // GLOBAL TS CANCEL TOKEN + public static CancellationTokenSource TS_TokenEngine; + // ====================================================================================================== + // TS PRELOADER DEBUG MODE + public static bool ts_pre_debug_mode = false; + // ====================================================================================================== // VERSION MODE public static int ts_version_mode = 0; // ====================================================================================================== diff --git a/Yamira/Properties/AssemblyInfo.cs b/Yamira/Properties/AssemblyInfo.cs index 6fc8372..93fb87a 100644 --- a/Yamira/Properties/AssemblyInfo.cs +++ b/Yamira/Properties/AssemblyInfo.cs @@ -30,6 +30,6 @@ // Yapı Numarası // Düzeltme // -[assembly: AssemblyVersion("24.11.0.0")] -[assembly: AssemblyFileVersion("24.11.0.0")] +[assembly: AssemblyVersion("24.12.0.0")] +[assembly: AssemblyFileVersion("24.12.0.0")] [assembly: NeutralResourcesLanguage("tr-TR")] diff --git a/Yamira/SoftwareVersion.txt b/Yamira/SoftwareVersion.txt index 9868a3b..1aef81e 100644 --- a/Yamira/SoftwareVersion.txt +++ b/Yamira/SoftwareVersion.txt @@ -1 +1 @@ -software_version = 24.11 \ No newline at end of file +software_version = 24.12 \ No newline at end of file diff --git a/Yamira/TSModules.cs b/Yamira/TSModules.cs index a6dc3b8..f27f955 100644 --- a/Yamira/TSModules.cs +++ b/Yamira/TSModules.cs @@ -11,7 +11,7 @@ internal class TSModules{ // LINK SYSTEM // ====================================================================================================== public class TS_LinkSystem{ - public string + public static string website_link = "https://www.turkaysoftware.com", twitter_x_link = "https://x.com/turkaysoftware", instagram_link = "https://www.instagram.com/erayturkayy/", @@ -23,7 +23,7 @@ public string // VERSIONS // ====================================================================================================== public class TS_VersionEngine{ - public string TS_SofwareVersion(int v_type, int v_mode){ + public static string TS_SofwareVersion(int v_type, int v_mode){ string version_mode = ""; string versionSubstring = v_mode == 0 ? Application.ProductVersion.Substring(0, 5) : Application.ProductVersion.Substring(0, 7); switch (v_type){ @@ -42,6 +42,37 @@ public string TS_SofwareVersion(int v_type, int v_mode){ return version_mode; } } + // TS MESSAGEBOX ENGINE + // ====================================================================================================== + public static class TS_MessageBoxEngine{ + private static readonly Dictionary> TSMessageBoxConfig = new Dictionary>(){ + { 1, new KeyValuePair(MessageBoxButtons.OK, MessageBoxIcon.Information) }, // Ok ve Bilgi + { 2, new KeyValuePair(MessageBoxButtons.OK, MessageBoxIcon.Warning) }, // Ok ve Uyarı + { 3, new KeyValuePair(MessageBoxButtons.OK, MessageBoxIcon.Error) }, // Ok ve Hata + { 4, new KeyValuePair(MessageBoxButtons.YesNo, MessageBoxIcon.Question) }, // Yes/No ve Soru + { 5, new KeyValuePair(MessageBoxButtons.YesNo, MessageBoxIcon.Information) }, // Yes/No ve Bilgi + { 6, new KeyValuePair(MessageBoxButtons.YesNo, MessageBoxIcon.Warning) }, // Yes/No ve Uyarı + { 7, new KeyValuePair(MessageBoxButtons.YesNo, MessageBoxIcon.Error) }, // Yes/No ve Hata + { 8, new KeyValuePair(MessageBoxButtons.RetryCancel, MessageBoxIcon.Error) }, // Retry/Cancel ve Hata + { 9, new KeyValuePair(MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) } // Yes/No/Cancel ve Soru + }; + public static DialogResult TS_MessageBox(Form m_form, int m_mode, string m_message, string m_title = ""){ + m_form.BringToFront(); + // + string m_box_title = string.IsNullOrEmpty(m_title) ? Application.ProductName : m_title; + // + MessageBoxButtons m_button = MessageBoxButtons.OK; + MessageBoxIcon m_icon = MessageBoxIcon.Information; + // + if (TSMessageBoxConfig.ContainsKey(m_mode)){ + var m_serialize = TSMessageBoxConfig[m_mode]; + m_button = m_serialize.Key; + m_icon = m_serialize.Value; + } + // + return MessageBox.Show(m_form, m_message, m_box_title, m_button, m_icon); + } + } // TS SOFTWARE COPYRIGHT DATE // ====================================================================================================== public class TS_SoftwareCopyrightDate{ @@ -56,17 +87,17 @@ public class TS_SoftwareCopyrightDate{ // ====================================================================================================== public class TSSettingsSave{ [DllImport("kernel32.dll")] - private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); + private static extern int WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32.dll")] - private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); + private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); private readonly string _settingFilePath; - public TSSettingsSave(string filePath) { _settingFilePath = filePath; } + public TSSettingsSave(string filePath){ _settingFilePath = filePath; } public string TSReadSettings(string episode, string settingName){ - StringBuilder stringBuilder = new StringBuilder(2048); - GetPrivateProfileString(episode, settingName, string.Empty, stringBuilder, 2047, _settingFilePath); + StringBuilder stringBuilder = new StringBuilder(4096); + GetPrivateProfileString(episode, settingName, string.Empty, stringBuilder, 4096, _settingFilePath); return stringBuilder.ToString(); } - public long TSWriteSettings(string episode, string settingName, string value){ + public int TSWriteSettings(string episode, string settingName, string value){ return WritePrivateProfileString(episode, settingName, value, _settingFilePath); } } @@ -79,12 +110,12 @@ public long TSWriteSettings(string episode, string settingName, string value){ // ====================================================================================================== public class TSGetLangs{ [DllImport("kernel32.dll")] - private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); + private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); private readonly string _readFilePath; - public TSGetLangs(string filePath) { _readFilePath = filePath; } + public TSGetLangs(string filePath){ _readFilePath = filePath; } public string TSReadLangs(string episode, string settingName){ - StringBuilder stringBuilder = new StringBuilder(2048); - GetPrivateProfileString(episode, settingName, string.Empty, stringBuilder, 2047, _readFilePath); + StringBuilder stringBuilder = new StringBuilder(4096); + GetPrivateProfileString(episode, settingName, string.Empty, stringBuilder, 4096, _readFilePath); return stringBuilder.ToString(); } } @@ -93,6 +124,19 @@ public string TSReadLangs(string episode, string settingName){ public static string TS_String_Encoder(string get_text){ return Encoding.UTF8.GetString(Encoding.Default.GetBytes(get_text)).Trim(); } + // TURKISH LETTER CONVERTER + // ====================================================================================================== + public static string TS_TR_LetterConverter(string called_text){ + if (string.IsNullOrEmpty(called_text)) { return called_text; } + StringBuilder str_con = new StringBuilder(called_text); + str_con.Replace('Ç', 'C').Replace('ç', 'c'); + str_con.Replace('Ğ', 'G').Replace('ğ', 'g'); + str_con.Replace('İ', 'I').Replace('ı', 'i'); + str_con.Replace('Ö', 'O').Replace('ö', 'o'); + str_con.Replace('Ş', 'S').Replace('ş', 's'); + str_con.Replace('Ü', 'U').Replace('ü', 'u'); + return str_con.ToString().Trim(); + } // TS THEME ENGINE // ====================================================================================================== public class TS_ThemeEngine{ diff --git a/Yamira/TSPreloader.cs b/Yamira/TSPreloader.cs index 5b23fd8..2905517 100644 --- a/Yamira/TSPreloader.cs +++ b/Yamira/TSPreloader.cs @@ -1,23 +1,34 @@ using System; +// File and I/O Operations using System.IO; +// LINQ Queries using System.Linq; +// Windows Registry Operations using Microsoft.Win32; +// Multithreading and Parallel Processing +using System.Threading; +using System.Threading.Tasks; +// Reflection and Runtime Operations using System.Reflection; +// Diagnostics and Management Tools using System.Diagnostics; +// Language and Culture Settings using System.Globalization; +// User Interface Operations using System.Windows.Forms; -using System.Threading.Tasks; +// General Collections using System.Collections.Generic; -// +// TS Modules using static Yamira.TSModules; namespace Yamira{ public partial class TSPreloader : Form{ public TSPreloader(){ InitializeComponent(); - // CheckForIllegalCrossThreadCalls = false; - TSSetInnerProgressSize(0); + // + Program.TS_TokenEngine = new CancellationTokenSource(); + // TSSetImagePanelPadding(0); // typeof(Panel).InvokeMember("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, PanelLoaderBG, new object[] { true }); @@ -25,50 +36,9 @@ public TSPreloader(){ } // VARIABLES // ====================================================================================================== - private bool loop_mode = true; private string load_text; - // - private void TSSetInnerProgressSize(int get_percentage){ - PanelLoaderFE.Width = (int)(PanelLoaderBG.Width * (get_percentage / 100.0)); - } - // - private async Task lt_animation(){ - int dotCount = 0; - while (loop_mode){ - LabelLoader.Text = load_text + new string('.', dotCount); - dotCount = (dotCount + 1) % 4; - await Task.Delay(350); - } - LabelLoader.Text = load_text + new string('.', 3); - } - // - private async Task lp_animation(){ - int progress_interval = 0; - int progress_increment = 3; - int progress_delay = 10; - // - while (progress_interval < 100){ - TSSetInnerProgressSize(progress_interval); - if (progress_interval + progress_increment >= 100){ - progress_interval = 100; - TSSetInnerProgressSize(progress_interval); - break; - } - progress_interval += progress_increment; - await Task.Delay(progress_delay); - } - // - loop_mode = false; - await Task.Run(() => { - this.Invoke(new Action(() => { - Yamira yamira = new Yamira(); - yamira.Show(); - // - Hide(); - })); - }); - } - // + // LOAD IMAGE PADDING + // ====================================================================================================== private void TSSetImagePanelPadding(int get_padding){ PanelImg.Padding = new Padding(get_padding, get_padding, get_padding, get_padding); } @@ -77,21 +47,21 @@ private void TSSetImagePanelPadding(int get_padding){ private void TSPreloader_Load(object sender, EventArgs e){ LabelDeveloper.Text = Application.CompanyName; LabelSoftware.Text = Application.ProductName; - // - TS_VersionEngine TS_SoftwareVersion = new TS_VersionEngine(); - LabelVersion.Text = TS_SoftwareVersion.TS_SofwareVersion(1, Program.ts_version_mode); - // + LabelVersion.Text = TS_VersionEngine.TS_SofwareVersion(1, Program.ts_version_mode); LabelCopyright.Text = TS_SoftwareCopyrightDate.ts_scd_preloader; // ImageWelcome.BackgroundImage = Properties.Resources.ts_preloader; ImageWelcome.BackgroundImageLayout = ImageLayout.Zoom; - //LabelVersion.Parent = ImageWelcome; // software_preloader(); - login_system_preloader(); + software_set_launch(); // - Task lta_task = Task.Run(() => lt_animation()); - Task ltp_task = Task.Run(() => lp_animation()); + if (Program.ts_pre_debug_mode == true){ + LabelLoader.Text = "Loading - 50%"; + PanelLoaderFE.Width = (int)(PanelLoaderBG.Width * 0.5); + }else{ + Task.Run(() => load_animation(), Program.TS_TokenEngine.Token); + } } // SOFTWARE PRELOADER // ====================================================================================================== @@ -115,7 +85,7 @@ private void software_preloader(){ software_prelaoder_alert(1); return; } - // CHECK ENGLISH AND ALTERNATIFE LANGS + // CHECK ENGLISH LANG FILE if (!File.Exists(ts_lang_en)){ software_prelaoder_alert(2); return; @@ -125,7 +95,7 @@ private void software_preloader(){ try{ string ui_lang = CultureInfo.InstalledUICulture.TwoLetterISOLanguageName.Trim(); TSSettingsSave software_settings_save = new TSSettingsSave(ts_sf); - // DETECH & SET SYSTEM THEME + // SET SYSTEM THEME string get_system_theme = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "SystemUsesLightTheme", "").ToString().Trim(); software_settings_save.TSWriteSettings(ts_settings_container, "ThemeStatus", get_system_theme); // SET SOFTWARE LANGUAGE @@ -136,18 +106,18 @@ private void software_preloader(){ // SET STARTUP MODE software_settings_save.TSWriteSettings(ts_settings_container, "InitialStatus", "0"); }catch (Exception ex){ - // SET ERROR CHECK + // SET ERROR LOG LogError(ex); } } }catch (IOException ioEx){ - // IO ERROR CHECK + // IO ERROR LOG LogError(ioEx); }catch (UnauthorizedAccessException uaEx){ - // ACCESS ERROR CHECK + // ACCESS ERROR LOG LogError(uaEx); }catch (Exception ex){ - // OTHER ERRORS + // OTHER ERROR LOG LogError(ex); } } @@ -167,10 +137,10 @@ private void software_prelaoder_alert(int pre_mode){ break; } if (!string.IsNullOrEmpty(set_message)){ - DialogResult open_last_release = MessageBox.Show(set_message, Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Error); + DialogResult open_last_release = TS_MessageBoxEngine.TS_MessageBox(this, 7, set_message); if (open_last_release == DialogResult.Yes){ TS_LinkSystem TS_LinkSystem = new TS_LinkSystem(); - Process.Start(TS_LinkSystem.github_link_lr); + Process.Start(new ProcessStartInfo(TS_LinkSystem.github_link_lr){ UseShellExecute = true }); }else{ Application.Exit(); } @@ -179,11 +149,11 @@ private void software_prelaoder_alert(int pre_mode){ // ERROR LOG FUNCTION // ====================================================================================================== private void LogError(Exception ex){ - MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 3, ex.Message); } // BOOTSTRAPPER PRELOADER // ====================================================================================================== - public void login_system_preloader(){ + public void software_set_launch(){ try{ TSSettingsSave software_read_settings = new TSSettingsSave(ts_sf); // @@ -208,18 +178,72 @@ public void login_system_preloader(){ LabelLoader.ForeColor = TS_ThemeEngine.ColorMode(global_theme, "TSBT_LabelColor1"); LabelCopyright.ForeColor = TS_ThemeEngine.ColorMode(global_theme, "TSBT_LabelColor2"); // DICTIONARY SYSTEM FOR LANGUAGE - var languageFiles = new Dictionary{ + var languageFiles = new Dictionary { { "en", ts_lang_en }, { "tr", ts_lang_tr }, }; // string lang_mode = TS_String_Encoder(software_read_settings.TSReadSettings(ts_settings_container, "LanguageStatus")) ?? "en"; - string lang_file = languageFiles.ContainsKey(lang_mode) ? languageFiles[lang_mode] : ts_lang_en; + string lang_file; + bool isFileExist = languageFiles.ContainsKey(lang_mode) && File.Exists(languageFiles[lang_mode]); + // + if (isFileExist){ + lang_file = languageFiles[lang_mode]; + }else{ + lang_file = languageFiles.ContainsKey("en") && File.Exists(languageFiles["en"]) ? languageFiles["en"] : ts_lang_en; + lang_mode = "en"; + } + // + try{ + if (!isFileExist){ + TSSettingsSave software_setting_save = new TSSettingsSave(ts_sf); + software_setting_save.TSWriteSettings(ts_settings_container, "LanguageStatus", lang_mode); + } + }catch (Exception){ } // TSGetLangs software_lang = new TSGetLangs(lang_file); Text = string.Format(TS_String_Encoder(software_lang.TSReadLangs("TSPreloader", "tsbt_title")), Application.CompanyName); load_text = TS_String_Encoder(software_lang.TSReadLangs("TSPreloader", "tsbt_load")); }catch (Exception){ } } + // PROGRESS BAR & PROGRESS TEXT PROCESS + // ====================================================================================================== + private void TSProgressExecutive(int get_per){ + if (InvokeRequired){ + Invoke(new Action(TSProgressExecutive), get_per); + return; + } + PanelLoaderFE.Width = (int)(PanelLoaderBG.Width * (get_per / 100.0)); + LabelLoader.Text = string.Format("{0} - {1}%", load_text, get_per); + } + // LOAD ANIMATION + // ====================================================================================================== + private async Task load_animation(){ + int progress_interval = 0; + int progress_increment = 2; + int progress_delay = 5; + // + TSProgressExecutive(0); + // + while (progress_interval < 100){ + TSProgressExecutive(progress_interval); + if (progress_interval + progress_increment >= 100){ + progress_interval = 100; + TSProgressExecutive(progress_interval); + break; + } + progress_interval += progress_increment; + await Task.Delay(progress_delay); + } + // + await Task.Run(() => { + Invoke(new Action(() => { + Yamira yamira = new Yamira(); + yamira.Show(); + // + Hide(); + })); + }); + } } } \ No newline at end of file diff --git a/Yamira/Yamira.cs b/Yamira/Yamira.cs index a9b4a45..864037d 100644 --- a/Yamira/Yamira.cs +++ b/Yamira/Yamira.cs @@ -36,10 +36,6 @@ public Yamira(){ // ====================================================================================================== public static string lang, lang_path, default_create_folder = "TSProtectionSystem"; public static int theme, initial_status; - // SOFTWARE VERSION - MEDIA LINK SYSTEM - // ====================================================================================================== - static TS_VersionEngine TS_SoftwareVersion = new TS_VersionEngine(); - static TS_LinkSystem TS_LinkSystem = new TS_LinkSystem(); // UI COLORS // ====================================================================================================== static List header_colors = new List() { Color.Transparent, Color.Transparent }; @@ -143,7 +139,7 @@ private void refreshToolStripMenuItem_Click(object sender, EventArgs e){ // YAMIRA LOAD // ====================================================================================================== private void Yamira_Load(object sender, EventArgs e){ - Text = TS_SoftwareVersion.TS_SofwareVersion(0, Program.ts_version_mode); + Text = TS_VersionEngine.TS_SofwareVersion(0, Program.ts_version_mode); HeaderMenu.Cursor = Cursors.Hand; // RunSoftwareEngine(); @@ -156,7 +152,7 @@ private void Yamira_Load(object sender, EventArgs e){ private void BtnActiveProtect_Click(object sender, EventArgs e){ TSGetLangs software_lang = new TSGetLangs(lang_path); if (DataMainTable.SelectedRows.Count == 0){ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_start_info")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); + TS_MessageBoxEngine.TS_MessageBox(this, 2, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_start_info"))); return; } // @@ -172,7 +168,7 @@ private void BtnActiveProtect_Click(object sender, EventArgs e){ if (!HasWritePermission(rootPath)){ if (driveInfo.DriveFormat == "NTFS"){ string firewallFolderPath = Path.Combine(rootPath, default_create_folder); - DialogResult check_open_protect = MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_on_info")), Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question); + DialogResult check_open_protect = TS_MessageBoxEngine.TS_MessageBox(this, 4, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_on_info"))); if (check_open_protect == DialogResult.Yes){ try{ if (Directory.Exists(rootPath)){ @@ -185,23 +181,23 @@ private void BtnActiveProtect_Click(object sender, EventArgs e){ TS_USBProtect(firewallFolderPath, true); // Firewall folder write on LoadUSBDrives(); // - DialogResult successAfterOpen = MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_success")), string.Format("{0} ({1})", rootPath, deviceName), "\n\n", firewallFolderPath, "\n\n"), Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Information); + DialogResult successAfterOpen = TS_MessageBoxEngine.TS_MessageBox(this, 5, string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_success")), string.Format("{0} ({1})", rootPath, deviceName), "\n\n", firewallFolderPath, "\n\n")); if (successAfterOpen == DialogResult.Yes){ Process.Start(firewallFolderPath); } }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_root_directory_not_null")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 3, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_root_directory_not_null"))); } }catch (Exception ex){ LoadUSBDrives(); - MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_default_error")), ex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 3, string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_default_error")), ex.Message)); } } }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_not_ntfs_file_system")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); + TS_MessageBoxEngine.TS_MessageBox(this, 2, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_not_ntfs_file_system"))); } }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_on")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); + TS_MessageBoxEngine.TS_MessageBox(this, 1, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_on"))); } } // BTN DISABLED PROTECT @@ -209,7 +205,7 @@ private void BtnActiveProtect_Click(object sender, EventArgs e){ private void BtnDisabledProtect_Click(object sender, EventArgs e){ TSGetLangs software_lang = new TSGetLangs(lang_path); if (DataMainTable.SelectedRows.Count == 0){ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_start_info")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); + TS_MessageBoxEngine.TS_MessageBox(this, 2, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_start_info"))); return; } // @@ -224,7 +220,7 @@ private void BtnDisabledProtect_Click(object sender, EventArgs e){ // if (HasWritePermission(rootPath)){ string firewallFolderPath = Path.Combine(rootPath, default_create_folder); - DialogResult check_disabled_protect = MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_off_info")), Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question); + DialogResult check_disabled_protect = TS_MessageBoxEngine.TS_MessageBox(this, 4, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_off_info"))); if (check_disabled_protect == DialogResult.Yes){ try{ if (Directory.Exists(rootPath)){ @@ -232,17 +228,18 @@ private void BtnDisabledProtect_Click(object sender, EventArgs e){ TS_USBProtect(rootPath, true); // Revoke write permission to root directory TS_USBProtect(firewallFolderPath, true); // Grant write permission to the Firewall folder LoadUSBDrives(); - MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_disabled_success")), rootPath, deviceName), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); - }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_root_directory_not_null")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 1, string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_disabled_success")), rootPath, deviceName)); + } + else{ + TS_MessageBoxEngine.TS_MessageBox(this, 3, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_root_directory_not_null"))); } }catch (Exception ex){ LoadUSBDrives(); - MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_default_error")), ex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 3, string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_default_error")), ex.Message)); } } }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_off")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); + TS_MessageBoxEngine.TS_MessageBox(this, 1, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_protect_off"))); } } // TS USB PROTECT ALGORITHM @@ -270,7 +267,7 @@ static void TS_USBProtect(string folderPath, bool allowWriteAccess){ private void BtnFormatNTFS_Click(object sender, EventArgs e){ TSGetLangs software_lang = new TSGetLangs(lang_path); if (DataMainTable.SelectedRows.Count == 0){ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_start_info")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); + TS_MessageBoxEngine.TS_MessageBox(this, 2, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_process_start_info"))); return; } // @@ -280,7 +277,7 @@ private void BtnFormatNTFS_Click(object sender, EventArgs e){ DriveInfo driveInfo = new DriveInfo(rootPath); // Check file system if (driveInfo.DriveFormat != "NTFS"){ - DialogResult result = MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_warning")), "\n\n", "\n\n"), Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning); + DialogResult result = TS_MessageBoxEngine.TS_MessageBox(this, 6, string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_warning")), "\n\n", "\n\n")); if (result == DialogResult.Yes){ try{ string userInput = Interaction.InputBox( @@ -296,21 +293,21 @@ private void BtnFormatNTFS_Click(object sender, EventArgs e){ // if (!containsSpecialCharacters) { // Formatting process - Text = TS_SoftwareVersion.TS_SofwareVersion(0, Program.ts_version_mode) + " - " + TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_format_title")); + Text = TS_VersionEngine.TS_SofwareVersion(0, Program.ts_version_mode) + " - " + TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_format_title")); Task formatNtfs = Task.Run(() => FormatDrive(driveInfo.RootDirectory.ToString(), TSFormatTurkishLangType(userInput.Trim()))); }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_info")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); + TS_MessageBoxEngine.TS_MessageBox(this, 2, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_info"))); } }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_new_usb_name_null")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); + TS_MessageBoxEngine.TS_MessageBox(this, 2, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_new_usb_name_null"))); } }catch (Exception){ } } }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_not_ntfs_file_system_not")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); + TS_MessageBoxEngine.TS_MessageBox(this, 1, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_not_ntfs_file_system_not"))); } }else{ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_root_directory_not_null")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 3, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_root_directory_not_null"))); } } // NTFS FORMAT DRIVE ALGORITHM @@ -343,22 +340,22 @@ private void FormatDrive(string driveLetter, string driveName){ string error = errorReader.ReadToEnd(); process.WaitForExit(); // - Text = TS_SoftwareVersion.TS_SofwareVersion(0, Program.ts_version_mode); + Text = TS_VersionEngine.TS_SofwareVersion(0, Program.ts_version_mode); LoadUSBDrives(); // if (process.ExitCode == 0){ - MessageBox.Show(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_format_success")), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); + TS_MessageBoxEngine.TS_MessageBox(this, 1, TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_format_success"))); }else{ - MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_format_error")), error), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 3, string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_ntfs_format_error")), error)); } } } // Clear temporary file File.Delete(scriptFilePath); }catch (Exception ex){ - Text = TS_SoftwareVersion.TS_SofwareVersion(0, Program.ts_version_mode); + Text = TS_VersionEngine.TS_SofwareVersion(0, Program.ts_version_mode); LoadUSBDrives(); - MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_default_error")), ex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); + TS_MessageBoxEngine.TS_MessageBox(this, 3, string.Format(TS_String_Encoder(software_lang.TSReadLangs("Yamira", "y_default_error")), ex.Message)); } } public static string TSFormatTurkishLangType(string input){ @@ -537,8 +534,8 @@ private void lang_preload(string lang_type, string lang_code){ }catch (Exception){ } // LANG CHANGE NOTIFICATION TSGetLangs software_lang = new TSGetLangs(lang_path); - DialogResult lang_change_message = MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("LangChange", "lang_change_notification")), "\n\n", "\n\n"), Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Information); - if (lang_change_message == DialogResult.Yes) { Application.Restart(); } + DialogResult lang_change_message = TS_MessageBoxEngine.TS_MessageBox(this, 5, string.Format(TS_String_Encoder(software_lang.TSReadLangs("LangChange", "lang_change_notification")), "\n\n", "\n\n")); + if (lang_change_message == DialogResult.Yes){ Application.Restart(); } } private void lang_engine(string lang_type, string lang_code){ try{ @@ -629,24 +626,26 @@ private void checkforUpdatesToolStripMenuItem_Click(object sender, EventArgs e){ software_update_check(1); } public bool IsNetworkCheck(){ - Ping ping = new Ping(); + Ping check_ping = new Ping(); try{ - PingReply reply = ping.Send("www.google.com"); - if (reply.Status == IPStatus.Success){ + PingReply check_ping_reply = check_ping.Send("www.google.com"); + if (check_ping_reply.Status == IPStatus.Success){ return true; } }catch (PingException){ } return false; } public void software_update_check(int _check_update_ui){ - if (!IsNetworkCheck()){ - return; - } - using (WebClient webClient = new WebClient()){ - try{ - TSGetLangs software_lang = new TSGetLangs(lang_path); - // - string client_version = TS_SoftwareVersion.TS_SofwareVersion(2, Program.ts_version_mode).Trim(); + try{ + TSGetLangs software_lang = new TSGetLangs(lang_path); + if (!IsNetworkCheck()){ + if (_check_update_ui == 1){ + TS_MessageBoxEngine.TS_MessageBox(this, 2, string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_not_connection")), "\n\n"), string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_title")), Application.ProductName)); + } + return; + } + using (WebClient webClient = new WebClient()){ + string client_version = TS_VersionEngine.TS_SofwareVersion(2, Program.ts_version_mode).Trim(); int client_num_version = Convert.ToInt32(client_version.Replace(".", string.Empty)); // string[] version_content = webClient.DownloadString(TS_LinkSystem.github_link_lt).Split('='); @@ -655,16 +654,21 @@ public void software_update_check(int _check_update_ui){ // if (client_num_version < last_num_version){ // Update available - string message = string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_message")), Application.ProductName, "\n\n", client_version, "\n", last_version, "\n\n"); - DialogResult info_update = MessageBox.Show(message, string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_title")), Application.ProductName), MessageBoxButtons.YesNo, MessageBoxIcon.Information); + DialogResult info_update = TS_MessageBoxEngine.TS_MessageBox(this, 5, string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_available")), Application.ProductName, "\n\n", client_version, "\n", last_version, "\n\n"), string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_title")), Application.ProductName)); if (info_update == DialogResult.Yes){ - Process.Start(TS_LinkSystem.github_link_lr); + Process.Start(new ProcessStartInfo(TS_LinkSystem.github_link_lr){ UseShellExecute = true }); } }else if (_check_update_ui == 1 && client_num_version == last_num_version){ // No update available - MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_no_update")), Application.ProductName, "\n", client_version), string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_title")), Application.ProductName), MessageBoxButtons.OK, MessageBoxIcon.Information); + TS_MessageBoxEngine.TS_MessageBox(this, 1, string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_not_available")), Application.ProductName, "\n", client_version), string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_title")), Application.ProductName)); + }else if (_check_update_ui == 1 && client_num_version > last_num_version){ + // Access before public use + TS_MessageBoxEngine.TS_MessageBox(this, 1, string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_newer")), "\n\n", string.Format("v{0}", client_version)), string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_title")), Application.ProductName)); } - }catch (WebException){ } + } + }catch (Exception ex){ + TSGetLangs software_lang = new TSGetLangs(lang_path); + TS_MessageBoxEngine.TS_MessageBox(this, 3, string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_error")), "\n\n", ex.Message), string.Format(TS_String_Encoder(software_lang.TSReadLangs("SoftwareUpdate", "su_title")), Application.ProductName)); } } // YAMIRA ABOUT @@ -682,7 +686,7 @@ private void aboutToolStripMenuItem_Click(object sender, EventArgs e){ Application.OpenForms[yamira_about_name].WindowState = FormWindowState.Normal; } Application.OpenForms[yamira_about_name].Activate(); - MessageBox.Show(string.Format(TS_String_Encoder(software_lang.TSReadLangs("HeaderHelp", "header_help_info_notification")), TS_String_Encoder(software_lang.TSReadLangs("HeaderMenu", "header_menu_about"))), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); + TS_MessageBoxEngine.TS_MessageBox(this, 1, string.Format(TS_String_Encoder(software_lang.TSReadLangs("HeaderHelp", "header_help_info_notification")), TS_String_Encoder(software_lang.TSReadLangs("HeaderMenu", "header_menu_about")))); } }catch (Exception){ } } diff --git a/Yamira/Yamira.csproj b/Yamira/Yamira.csproj index 5f7304f..0f81c81 100644 --- a/Yamira/Yamira.csproj +++ b/Yamira/Yamira.csproj @@ -24,7 +24,7 @@ false true 0 - 24.11.0.%2a + 24.12.0.%2a false true diff --git a/Yamira/YamiraAbout.cs b/Yamira/YamiraAbout.cs index cf03d82..566d646 100644 --- a/Yamira/YamiraAbout.cs +++ b/Yamira/YamiraAbout.cs @@ -29,8 +29,7 @@ private void YamiraAbout_Load(object sender, EventArgs e){ try{ LabelDeveloper.Text = Application.CompanyName; LabelSoftware.Text = Application.ProductName; - TS_VersionEngine TS_SoftwareVersion = new TS_VersionEngine(); - LabelVersion.Text = TS_SoftwareVersion.TS_SofwareVersion(1, Program.ts_version_mode); + LabelVersion.Text = TS_VersionEngine.TS_SofwareVersion(1, Program.ts_version_mode); LabelCopyright.Text = TS_SoftwareCopyrightDate.ts_scd_preloader; // AboutTable.Columns.Add("x", "x"); @@ -118,28 +117,28 @@ public void about_preloader(){ // ====================================================================================================== private void About_WebsiteBtn_Click(object sender, EventArgs e){ try{ - Process.Start(TS_LinkSystem.website_link); + Process.Start(new ProcessStartInfo(TS_LinkSystem.website_link){ UseShellExecute = true }); }catch (Exception){ } } // X LINK // ====================================================================================================== private void About_XBtn_Click(object sender, EventArgs e){ try{ - Process.Start(TS_LinkSystem.twitter_x_link); + Process.Start(new ProcessStartInfo(TS_LinkSystem.twitter_x_link){ UseShellExecute = true }); }catch (Exception){ } } // INSTAGRAM LINK // ====================================================================================================== private void About_InstagramBtn_Click(object sender, EventArgs e){ try{ - Process.Start(TS_LinkSystem.instagram_link); + Process.Start(new ProcessStartInfo(TS_LinkSystem.instagram_link){ UseShellExecute = true }); }catch (Exception){ } } // GITHUN LINK // ====================================================================================================== private void About_GitHubBtn_Click(object sender, EventArgs e){ try{ - Process.Start(TS_LinkSystem.github_link); + Process.Start(new ProcessStartInfo(TS_LinkSystem.github_link){ UseShellExecute = true }); }catch (Exception){ } } // FORM DRAGGING SYSTEM diff --git a/Yamira/bin/x64/Release/Yamira.exe b/Yamira/bin/x64/Release/Yamira.exe index 254bb18..880de23 100644 Binary files a/Yamira/bin/x64/Release/Yamira.exe and b/Yamira/bin/x64/Release/Yamira.exe differ diff --git a/Yamira/bin/x64/Release/y_langs/English.ini b/Yamira/bin/x64/Release/y_langs/English.ini index 64c5034..f23c397 100644 --- a/Yamira/bin/x64/Release/y_langs/English.ini +++ b/Yamira/bin/x64/Release/y_langs/English.ini @@ -10,7 +10,7 @@ lang_name = English / US lang_tag = en translator = Eray Türkay -yamira_version = v24.11 +yamira_version = v24.12 [TSPreloader] tsbt_title = {0} - Preloader @@ -42,8 +42,11 @@ header_viev_mode_full_screen = Full Screen [SoftwareUpdate] su_title = {0} - Update Checker -su_message = A new version for {0} is available!{1}The version you are currently using: v{2}{3}Latest version: v{4}{5}If you want to view and download the new version, you can press Yes. -su_no_update = {0} version is up to date.{1}Client version: v{2} +su_available = A new version for {0} is available!{1}The version you are currently using: v{2}{3}Latest version: v{4}{5}If you want to view and download the new version, you can press Yes. +su_not_available = {0} version is up to date.{1}Client version: v{2} +su_newer = Congratulations!{0}You are among the first to experience the {1} version, which has not yet been released to the public! +su_not_connection = The update check could not be performed because there is no internet connection.{0}Please check your internet connection and try again. +su_error = An error occurred during the update check. Please try again later.{0}Error: {1} [HeaderHelp] header_help_info_notification = {0} is already open. diff --git a/Yamira/bin/x64/Release/y_langs/Turkish.ini b/Yamira/bin/x64/Release/y_langs/Turkish.ini index f34e860..0318064 100644 --- a/Yamira/bin/x64/Release/y_langs/Turkish.ini +++ b/Yamira/bin/x64/Release/y_langs/Turkish.ini @@ -10,7 +10,7 @@ lang_name = Türkçe / Türkiye lang_tag = tr translator = Eray Türkay -yamira_version = v24.11 +yamira_version = v24.12 [TSPreloader] tsbt_title = {0} - Preloader @@ -42,8 +42,11 @@ header_viev_mode_full_screen = Tam Ekran [SoftwareUpdate] su_title = {0} - Güncelleme Denetleyicisi -su_message = {0} için yeni bir sürüm mevcut!{1}Şu anki kullandığınız sürüm: v{2}{3}Son sürüm: v{4}{5}Yeni sürümü görüntüleyip indirmek isterseniz Evet tuşuna basabilirsiniz. -su_no_update = {0} sürümü güncel.{1}İstemci sürümü: v{2} +su_available = {0} için yeni bir sürüm mevcut!{1}Şu anki kullandığınız sürüm: v{2}{3}Son sürüm: v{4}{5}Yeni sürümü görüntüleyip indirmek isterseniz Evet tuşuna basabilirsiniz. +su_not_available = {0} sürümü güncel.{1}İstemci sürümü: v{2} +su_newer = Tebrikler!{0}Henüz genel kullanıma sunulmayan {1} sürümünü ilk deneyimleyenlerdensiniz! +su_not_connection = İnternet bağlantısı kurulamadığından güncelleme kontrolü yapılamadı.{0}Lütfen internet bağlantınızı kontrol ettikten sonra yeniden deneyin. +su_error = Güncelleme kontrolü sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyin.{0}Hata: {1} [HeaderHelp] header_help_info_notification = {0} zaten açık durumda. diff --git a/Yamira/yamira_images/ts_preloader/ts_preloader.jpg b/Yamira/yamira_images/ts_preloader/ts_preloader.jpg index 495e6de..5868cfc 100644 Binary files a/Yamira/yamira_images/ts_preloader/ts_preloader.jpg and b/Yamira/yamira_images/ts_preloader/ts_preloader.jpg differ