├── Languages ├── Language.de.Designer.cs ├── Language.Designer.cs ├── Language.resx └── Language.de.resx ├── .gitignore ├── TBRN.ico ├── Resources ├── KNET.png └── AboutTray.png ├── Forms ├── FormAboutTray.cs ├── FormVersion.cs ├── FormTextInput.cs ├── FormSettings.cs ├── FormAboutTray.Designer.cs ├── FormTextInput.Designer.cs ├── FormVersion.designer.cs ├── FormAutomatic.cs ├── FormTextInput.de.resx ├── FormAboutTray.de.resx ├── FormSettings.de.resx ├── FormSettings.Designer.cs ├── FormAutomatic.de.resx ├── FormAutomatic.Designer.cs ├── FormAboutTray.resx ├── FormVersion.de.resx ├── FormTextInput.resx └── FormVersion.resx ├── Controls └── NumericUpDown.cs ├── README.md ├── Properties ├── AssemblyInfo.cs ├── Settings.settings ├── Resources.Designer.cs ├── Settings.Designer.cs └── Resources.resx ├── LICENSE ├── app.config ├── Objects.cs ├── Program.cs ├── TaskBarRenamer.csproj └── EnumWindows.cs /Languages/Language.de.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.sln 2 | *.user 3 | .vs/ 4 | bin/ 5 | obj/ 6 | -------------------------------------------------------------------------------- /TBRN.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwaschny/TaskBarRenamer/HEAD/TBRN.ico -------------------------------------------------------------------------------- /Resources/KNET.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwaschny/TaskBarRenamer/HEAD/Resources/KNET.png -------------------------------------------------------------------------------- /Resources/AboutTray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kwaschny/TaskBarRenamer/HEAD/Resources/AboutTray.png -------------------------------------------------------------------------------- /Forms/FormAboutTray.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace TaskBarRenamer 4 | { 5 | public partial class FormAboutTray : Form 6 | { 7 | #region Fields 8 | 9 | public bool DoNotShowAgain 10 | { 11 | get 12 | { 13 | return checkBoxDoNotShowAgain.Checked; 14 | } 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | public FormAboutTray() 22 | { 23 | InitializeComponent(); 24 | } 25 | 26 | #endregion 27 | } 28 | } -------------------------------------------------------------------------------- /Controls/NumericUpDown.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace TaskBarRenamer 4 | { 5 | public class NumericUpDownFixed : NumericUpDown 6 | { 7 | public bool SetValue(int value) 8 | { 9 | if (value < this.Minimum) 10 | { 11 | this.Value = this.Minimum; 12 | return false; 13 | } 14 | if (value > this.Maximum) 15 | { 16 | this.Value = this.Maximum; 17 | return false; 18 | } 19 | 20 | this.Value = value; 21 | return true; 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TaskBarRenamer 2 | Taskbar Renamer (TBRN) allows you to rename the window title of any running application. This is useful when running multiple instances of an application where the application does not have unique window titles (caption) on the Windows taskbar. With the help of TaskBarRenamer you can easily rename each application's window title individually to distinguish between all running instances. This does not affect the application itself but the appearance only and thus is safe to use. TBRN is also able to detect applications automatically and rename them as soon as they are running. TaskBarRenamer is a handy tool you should work with if you need to run many programs simultaneously. 3 | 4 | ``` 5 | I made this back in 2009/2010 for personal use and decided to share it. 6 | ``` 7 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | 6 | [assembly: AssemblyTitle("TaskBarRenamer")] 7 | [assembly: AssemblyDescription("")] 8 | [assembly: AssemblyConfiguration("")] 9 | [assembly: AssemblyCompany("Kwaschny")] 10 | [assembly: AssemblyProduct("TaskBarRenamer")] 11 | [assembly: AssemblyCopyright("Copyright © Alexander Kwaschny 2009-2024")] 12 | [assembly: AssemblyTrademark("")] 13 | [assembly: AssemblyCulture("")] 14 | [assembly: ComVisible(false)] 15 | [assembly: Guid("8642613d-820a-46fb-b8c7-35b65192abaa")] 16 | [assembly: AssemblyVersion("1.0")] 17 | [assembly: AssemblyFileVersion("0.4")] 18 | [assembly: NeutralResourcesLanguage("en")] 19 | [assembly: InternalsVisibleTo("TaskBarRenamer.Tests")] 20 | [assembly: InternalsVisibleTo("TaskBarRenamer.Explorables")] -------------------------------------------------------------------------------- /Forms/FormVersion.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace TaskBarRenamer 5 | { 6 | public partial class FormVersion : Form 7 | { 8 | #region Fields 9 | 10 | private readonly string website; 11 | 12 | #endregion 13 | 14 | #region Methods 15 | 16 | public FormVersion(string buildVersion, string website) 17 | { 18 | this.website = website; 19 | 20 | InitializeComponent(); 21 | 22 | labelProduct.Text = Application.ProductName + " " + Application.ProductVersion; 23 | labelBuild.Text = buildVersion; 24 | 25 | labelCompany.Text = Application.CompanyName; 26 | labelWebsite.Text = website; 27 | } 28 | 29 | #endregion 30 | 31 | #region Click/Key-Events 32 | 33 | private void Website_Clicked(object sender, EventArgs e) 34 | { 35 | Program.OpenWebsite(website); 36 | } 37 | 38 | #endregion 39 | } 40 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2010 Alexander Kwaschny 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Forms/FormTextInput.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace TaskBarRenamer 4 | { 5 | public partial class FormTextInput : Form 6 | { 7 | #region Fields 8 | 9 | public string InputText 10 | { 11 | get; 12 | private set; 13 | } 14 | 15 | public bool ForceName 16 | { 17 | get; 18 | private set; 19 | } 20 | 21 | #endregion 22 | 23 | #region Methods 24 | 25 | public FormTextInput(string description, string defaultText, bool forceName) 26 | { 27 | ForceName = false; 28 | 29 | InitializeComponent(); 30 | 31 | labelDescription.Text = description; 32 | textBoxInput.Text = defaultText; 33 | checkBoxForceName.Checked = forceName; 34 | } 35 | 36 | #endregion 37 | 38 | #region Click/Key-Events 39 | 40 | private void OK_Click(object sender, System.EventArgs e) 41 | { 42 | InputText = textBoxInput.Text; 43 | ForceName = checkBoxForceName.Checked; 44 | } 45 | 46 | #endregion 47 | } 48 | } -------------------------------------------------------------------------------- /Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | False 7 | 8 | 9 | False 10 | 11 | 12 | True 13 | 14 | 15 | 10 16 | 17 | 18 | False 19 | 20 | 21 | 10 22 | 23 | 24 | True 25 | 26 | 27 | <?xml version="1.0" encoding="utf-16"?> 28 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> 29 | 30 | 31 | <?xml version="1.0" encoding="utf-16"?> 32 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> 33 | 34 | 35 | <?xml version="1.0" encoding="utf-16"?> 36 | <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> 37 | 38 | 39 | -------------------------------------------------------------------------------- /Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TaskBarRenamer.Properties { 2 | using System; 3 | 4 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 5 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 6 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 7 | internal class Resources { 8 | 9 | private static global::System.Resources.ResourceManager resourceMan; 10 | 11 | private static global::System.Globalization.CultureInfo resourceCulture; 12 | 13 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 14 | internal Resources() { 15 | } 16 | 17 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 18 | internal static global::System.Resources.ResourceManager ResourceManager { 19 | get { 20 | if (object.ReferenceEquals(resourceMan, null)) { 21 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TaskBarRenamer.Properties.Resources", typeof(Resources).Assembly); 22 | resourceMan = temp; 23 | } 24 | return resourceMan; 25 | } 26 | } 27 | 28 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 29 | internal static global::System.Globalization.CultureInfo Culture { 30 | get { 31 | return resourceCulture; 32 | } 33 | set { 34 | resourceCulture = value; 35 | } 36 | } 37 | 38 | internal static System.Drawing.Bitmap AboutTray { 39 | get { 40 | object obj = ResourceManager.GetObject("AboutTray", resourceCulture); 41 | return ((System.Drawing.Bitmap)(obj)); 42 | } 43 | } 44 | 45 | internal static System.Drawing.Bitmap KNET { 46 | get { 47 | object obj = ResourceManager.GetObject("KNET", resourceCulture); 48 | return ((System.Drawing.Bitmap)(obj)); 49 | } 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Forms/FormSettings.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using TaskBarRenamer.Languages; 3 | 4 | namespace TaskBarRenamer 5 | { 6 | #region Enums 7 | 8 | public enum SettingCategory 9 | { 10 | Refresh = 0 11 | } 12 | 13 | #endregion 14 | 15 | public partial class FormSettings : Form 16 | { 17 | #region Methods 18 | 19 | public FormSettings(SettingCategory category) 20 | { 21 | InitializeComponent(); 22 | 23 | if ((int)category < tabControlSettings.TabCount) 24 | tabControlSettings.SelectedIndex = (int)category; 25 | 26 | checkBoxAutoRefresh.Checked = Properties.Settings.Default.AutoRefresh; 27 | numericUpDownRefreshEvery.SetValue(Properties.Settings.Default.RefreshEvery); 28 | checkBoxForegroundOnly.Checked = Properties.Settings.Default.ForegroundOnly; 29 | numericUpDownForceNamesEvery.SetValue(Properties.Settings.Default.ForceNamesEvery); 30 | } 31 | 32 | #endregion 33 | 34 | #region Click/Key-Events 35 | 36 | private void OK_Click(object sender, System.EventArgs e) 37 | { 38 | Properties.Settings.Default.AutoRefresh = checkBoxAutoRefresh.Checked; 39 | Properties.Settings.Default.RefreshEvery = (int)numericUpDownRefreshEvery.Value; 40 | Properties.Settings.Default.ForegroundOnly = checkBoxForegroundOnly.Checked; 41 | Properties.Settings.Default.ForceNamesEvery = (int)numericUpDownForceNamesEvery.Value; 42 | } 43 | 44 | #endregion 45 | 46 | #region Events 47 | 48 | private void CheckBox_CheckedChanged(object sender, System.EventArgs e) 49 | { 50 | bool status = checkBoxAutoRefresh.Checked; 51 | numericUpDownRefreshEvery.Enabled = status; 52 | checkBoxForegroundOnly.Enabled = status; 53 | } 54 | private void ForegroundOnly_CheckedChanged(object sender, System.EventArgs e) 55 | { 56 | if (!checkBoxForegroundOnly.Checked) 57 | return; 58 | 59 | if (MessageBox.Show(Language.ForegroundOnly, string.Empty, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button3) == DialogResult.Yes) 60 | checkBoxForegroundOnly.Checked = true; 61 | else 62 | checkBoxForegroundOnly.Checked = false; 63 | } 64 | 65 | #endregion 66 | } 67 | } -------------------------------------------------------------------------------- /app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 |
10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | False 21 | 22 | 23 | False 24 | 25 | 26 | True 27 | 28 | 29 | 10 30 | 31 | 32 | False 33 | 34 | 35 | 10 36 | 37 | 38 | True 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /Forms/FormAboutTray.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TaskBarRenamer 2 | { 3 | partial class FormAboutTray 4 | { 5 | private System.ComponentModel.IContainer components = null; 6 | 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && (components != null)) 10 | { 11 | components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | private void InitializeComponent() 17 | { 18 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAboutTray)); 19 | this.pictureBoxTray = new System.Windows.Forms.PictureBox(); 20 | this.labelInformAbout = new System.Windows.Forms.Label(); 21 | this.checkBoxDoNotShowAgain = new System.Windows.Forms.CheckBox(); 22 | this.buttonOK = new System.Windows.Forms.Button(); 23 | ((System.ComponentModel.ISupportInitialize)(this.pictureBoxTray)).BeginInit(); 24 | this.SuspendLayout(); 25 | // 26 | // pictureBoxTray 27 | // 28 | resources.ApplyResources(this.pictureBoxTray, "pictureBoxTray"); 29 | this.pictureBoxTray.Image = global::TaskBarRenamer.Properties.Resources.AboutTray; 30 | this.pictureBoxTray.Name = "pictureBoxTray"; 31 | this.pictureBoxTray.TabStop = false; 32 | // 33 | // labelInformAbout 34 | // 35 | resources.ApplyResources(this.labelInformAbout, "labelInformAbout"); 36 | this.labelInformAbout.Name = "labelInformAbout"; 37 | // 38 | // checkBoxDoNotShowAgain 39 | // 40 | resources.ApplyResources(this.checkBoxDoNotShowAgain, "checkBoxDoNotShowAgain"); 41 | this.checkBoxDoNotShowAgain.Name = "checkBoxDoNotShowAgain"; 42 | this.checkBoxDoNotShowAgain.UseVisualStyleBackColor = true; 43 | // 44 | // buttonOK 45 | // 46 | resources.ApplyResources(this.buttonOK, "buttonOK"); 47 | this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; 48 | this.buttonOK.Name = "buttonOK"; 49 | this.buttonOK.UseVisualStyleBackColor = true; 50 | // 51 | // FormAboutTray 52 | // 53 | this.AcceptButton = this.buttonOK; 54 | resources.ApplyResources(this, "$this"); 55 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 56 | this.Controls.Add(this.buttonOK); 57 | this.Controls.Add(this.checkBoxDoNotShowAgain); 58 | this.Controls.Add(this.labelInformAbout); 59 | this.Controls.Add(this.pictureBoxTray); 60 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 61 | this.MaximizeBox = false; 62 | this.MinimizeBox = false; 63 | this.Name = "FormAboutTray"; 64 | this.ShowIcon = false; 65 | this.ShowInTaskbar = false; 66 | this.TopMost = true; 67 | ((System.ComponentModel.ISupportInitialize)(this.pictureBoxTray)).EndInit(); 68 | this.ResumeLayout(false); 69 | this.PerformLayout(); 70 | 71 | } 72 | 73 | private System.Windows.Forms.PictureBox pictureBoxTray; 74 | private System.Windows.Forms.Label labelInformAbout; 75 | private System.Windows.Forms.CheckBox checkBoxDoNotShowAgain; 76 | private System.Windows.Forms.Button buttonOK; 77 | } 78 | } -------------------------------------------------------------------------------- /Forms/FormTextInput.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TaskBarRenamer 2 | { 3 | partial class FormTextInput 4 | { 5 | private System.ComponentModel.IContainer components = null; 6 | 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && (components != null)) 10 | { 11 | components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | private void InitializeComponent() 17 | { 18 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormTextInput)); 19 | this.buttonCancel = new System.Windows.Forms.Button(); 20 | this.buttonOK = new System.Windows.Forms.Button(); 21 | this.textBoxInput = new System.Windows.Forms.TextBox(); 22 | this.labelDescription = new System.Windows.Forms.Label(); 23 | this.checkBoxForceName = new System.Windows.Forms.CheckBox(); 24 | this.SuspendLayout(); 25 | // 26 | // buttonCancel 27 | // 28 | resources.ApplyResources(this.buttonCancel, "buttonCancel"); 29 | this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; 30 | this.buttonCancel.Name = "buttonCancel"; 31 | this.buttonCancel.UseVisualStyleBackColor = true; 32 | // 33 | // buttonOK 34 | // 35 | resources.ApplyResources(this.buttonOK, "buttonOK"); 36 | this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; 37 | this.buttonOK.Name = "buttonOK"; 38 | this.buttonOK.UseVisualStyleBackColor = true; 39 | this.buttonOK.Click += new System.EventHandler(this.OK_Click); 40 | // 41 | // textBoxInput 42 | // 43 | resources.ApplyResources(this.textBoxInput, "textBoxInput"); 44 | this.textBoxInput.Name = "textBoxInput"; 45 | // 46 | // labelDescription 47 | // 48 | resources.ApplyResources(this.labelDescription, "labelDescription"); 49 | this.labelDescription.Name = "labelDescription"; 50 | // 51 | // checkBoxForceName 52 | // 53 | resources.ApplyResources(this.checkBoxForceName, "checkBoxForceName"); 54 | this.checkBoxForceName.Name = "checkBoxForceName"; 55 | this.checkBoxForceName.UseVisualStyleBackColor = true; 56 | // 57 | // FormTextInput 58 | // 59 | this.AcceptButton = this.buttonOK; 60 | resources.ApplyResources(this, "$this"); 61 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 62 | this.CancelButton = this.buttonCancel; 63 | this.Controls.Add(this.checkBoxForceName); 64 | this.Controls.Add(this.labelDescription); 65 | this.Controls.Add(this.textBoxInput); 66 | this.Controls.Add(this.buttonOK); 67 | this.Controls.Add(this.buttonCancel); 68 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 69 | this.MaximizeBox = false; 70 | this.MinimizeBox = false; 71 | this.Name = "FormTextInput"; 72 | this.ShowIcon = false; 73 | this.ShowInTaskbar = false; 74 | this.ResumeLayout(false); 75 | this.PerformLayout(); 76 | 77 | } 78 | 79 | private System.Windows.Forms.Button buttonCancel; 80 | private System.Windows.Forms.Button buttonOK; 81 | private System.Windows.Forms.TextBox textBoxInput; 82 | private System.Windows.Forms.Label labelDescription; 83 | private System.Windows.Forms.CheckBox checkBoxForceName; 84 | } 85 | } -------------------------------------------------------------------------------- /Forms/FormVersion.designer.cs: -------------------------------------------------------------------------------- 1 | namespace TaskBarRenamer 2 | { 3 | partial class FormVersion 4 | { 5 | private System.ComponentModel.IContainer components = null; 6 | 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && (components != null)) 10 | { 11 | components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | private void InitializeComponent() 17 | { 18 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormVersion)); 19 | this.buttonClose = new System.Windows.Forms.Button(); 20 | this.pictureBoxK = new System.Windows.Forms.PictureBox(); 21 | this.labelProduct = new System.Windows.Forms.Label(); 22 | this.labelCompany = new System.Windows.Forms.Label(); 23 | this.labelBuild = new System.Windows.Forms.Label(); 24 | this.labelWebsite = new System.Windows.Forms.Label(); 25 | ((System.ComponentModel.ISupportInitialize)(this.pictureBoxK)).BeginInit(); 26 | this.SuspendLayout(); 27 | // 28 | // buttonClose 29 | // 30 | resources.ApplyResources(this.buttonClose, "buttonClose"); 31 | this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; 32 | this.buttonClose.Name = "buttonClose"; 33 | this.buttonClose.UseVisualStyleBackColor = true; 34 | // 35 | // pictureBoxK 36 | // 37 | resources.ApplyResources(this.pictureBoxK, "pictureBoxK"); 38 | this.pictureBoxK.Name = "pictureBoxK"; 39 | this.pictureBoxK.TabStop = false; 40 | // 41 | // labelProduct 42 | // 43 | resources.ApplyResources(this.labelProduct, "labelProduct"); 44 | this.labelProduct.Name = "labelProduct"; 45 | // 46 | // labelCompany 47 | // 48 | resources.ApplyResources(this.labelCompany, "labelCompany"); 49 | this.labelCompany.Name = "labelCompany"; 50 | // 51 | // labelBuild 52 | // 53 | resources.ApplyResources(this.labelBuild, "labelBuild"); 54 | this.labelBuild.ForeColor = System.Drawing.SystemColors.GrayText; 55 | this.labelBuild.Name = "labelBuild"; 56 | // 57 | // labelWebsite 58 | // 59 | resources.ApplyResources(this.labelWebsite, "labelWebsite"); 60 | this.labelWebsite.Cursor = System.Windows.Forms.Cursors.Hand; 61 | this.labelWebsite.ForeColor = System.Drawing.Color.Blue; 62 | this.labelWebsite.Name = "labelWebsite"; 63 | this.labelWebsite.TabStop = true; 64 | this.labelWebsite.Click += new System.EventHandler(this.Website_Clicked); 65 | // 66 | // FormVersion 67 | // 68 | this.AcceptButton = this.buttonClose; 69 | resources.ApplyResources(this, "$this"); 70 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 71 | this.CancelButton = this.buttonClose; 72 | this.Controls.Add(this.labelWebsite); 73 | this.Controls.Add(this.labelBuild); 74 | this.Controls.Add(this.labelCompany); 75 | this.Controls.Add(this.labelProduct); 76 | this.Controls.Add(this.pictureBoxK); 77 | this.Controls.Add(this.buttonClose); 78 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 79 | this.MaximizeBox = false; 80 | this.MinimizeBox = false; 81 | this.Name = "FormVersion"; 82 | this.ShowIcon = false; 83 | this.ShowInTaskbar = false; 84 | ((System.ComponentModel.ISupportInitialize)(this.pictureBoxK)).EndInit(); 85 | this.ResumeLayout(false); 86 | 87 | } 88 | 89 | private System.Windows.Forms.Button buttonClose; 90 | private System.Windows.Forms.PictureBox pictureBoxK; 91 | private System.Windows.Forms.Label labelProduct; 92 | private System.Windows.Forms.Label labelCompany; 93 | private System.Windows.Forms.Label labelBuild; 94 | private System.Windows.Forms.Label labelWebsite; 95 | } 96 | } -------------------------------------------------------------------------------- /Forms/FormAutomatic.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | using TaskBarRenamer.Languages; 3 | 4 | namespace TaskBarRenamer 5 | { 6 | public partial class FormAutomatic : Form 7 | { 8 | #region Fields 9 | 10 | public string RenameThis 11 | { 12 | get; 13 | private set; 14 | } 15 | public string ToThis 16 | { 17 | get; 18 | private set; 19 | } 20 | public bool ForceName 21 | { 22 | get; 23 | private set; 24 | } 25 | 26 | #endregion 27 | 28 | #region Methods 29 | 30 | public FormAutomatic(AutomaticEntry entry) 31 | { 32 | ForceName = false; 33 | 34 | InitializeComponent(); 35 | 36 | textBoxFrom.Text = entry.FromName; 37 | switch (entry.Type) 38 | { 39 | case RenameType.Exact: 40 | radioButtonExact.Checked = true; 41 | break; 42 | case RenameType.Wildcard: 43 | radioButtonWildcard.Checked = true; 44 | break; 45 | case RenameType.RegExp: 46 | radioButtonRegExp.Checked = true; 47 | break; 48 | } 49 | 50 | textBoxTo.Text = entry.ToName; 51 | checkBoxForceName.Checked = entry.ForceName; 52 | } 53 | public FormAutomatic(bool forceName) 54 | { 55 | ForceName = false; 56 | 57 | InitializeComponent(); 58 | 59 | checkBoxForceName.Checked = forceName; 60 | } 61 | 62 | #endregion 63 | 64 | #region Click/Key-Events 65 | 66 | private void OK_Click(object sender, System.EventArgs e) 67 | { 68 | string from = textBoxFrom.Text; 69 | if (radioButtonWildcard.Checked) 70 | { 71 | from = ("wc$" + from); 72 | } 73 | else if (radioButtonRegExp.Checked) 74 | { 75 | from = ("re$" + from); 76 | } 77 | 78 | RenameThis = from; 79 | ToThis = textBoxTo.Text; 80 | ForceName = checkBoxForceName.Checked; 81 | } 82 | 83 | #endregion 84 | 85 | #region Events 86 | 87 | private void TextBox_TextChanged(object sender, System.EventArgs e) 88 | { 89 | bool hasError = false; 90 | 91 | if (textBoxFrom.Text.Contains(";")) 92 | { 93 | hasError = true; 94 | errorProvider.SetError(textBoxFrom, Language.NotContainSemicolon); 95 | } 96 | else 97 | errorProvider.SetError(textBoxFrom, string.Empty); 98 | 99 | if (textBoxTo.Text.Contains(";")) 100 | { 101 | hasError = true; 102 | errorProvider.SetError(textBoxTo, Language.NotContainSemicolon); 103 | } 104 | else 105 | errorProvider.SetError(textBoxTo, string.Empty); 106 | 107 | if (textBoxFrom.Text.Length == 0) 108 | { 109 | hasError = true; 110 | } 111 | 112 | if (!hasError) 113 | { 114 | if (radioButtonWildcard.Checked) 115 | { 116 | var wc = AutomaticEntry.BuildRegex(textBoxFrom.Text, RenameType.Wildcard); 117 | if (wc == null) 118 | { 119 | hasError = true; 120 | errorProvider.SetError(textBoxFrom, Language.InvalidWildcard); 121 | } 122 | else 123 | { 124 | errorProvider.SetError(textBoxFrom, string.Empty); 125 | } 126 | } 127 | else if (radioButtonRegExp.Checked) 128 | { 129 | var re = AutomaticEntry.BuildRegex(textBoxFrom.Text, RenameType.RegExp); 130 | if (re == null) 131 | { 132 | hasError = true; 133 | errorProvider.SetError(textBoxFrom, Language.InvalidRegExp); 134 | } 135 | else 136 | { 137 | errorProvider.SetError(textBoxFrom, string.Empty); 138 | } 139 | } 140 | } 141 | 142 | buttonOK.Enabled = !hasError; 143 | } 144 | 145 | private void radioButtonExact_CheckedChanged(object sender, System.EventArgs e) 146 | { 147 | labelMatch.Text = string.Empty; 148 | } 149 | 150 | private void radioButtonWildcard_CheckedChanged(object sender, System.EventArgs e) 151 | { 152 | labelMatch.Text = Language.WildcardHint; 153 | } 154 | 155 | private void radioButtonRegExp_CheckedChanged(object sender, System.EventArgs e) 156 | { 157 | labelMatch.Text = Language.RegExpHint; 158 | } 159 | 160 | #endregion 161 | 162 | } 163 | } -------------------------------------------------------------------------------- /Forms/FormTextInput.de.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Abbrechen 122 | 123 | 124 | 125 | 105, 17 126 | 127 | 128 | Name erzwingen 129 | 130 | -------------------------------------------------------------------------------- /Objects.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text.RegularExpressions; 3 | 4 | namespace TaskBarRenamer 5 | { 6 | public class TaskBarWindow 7 | { 8 | #region Fields 9 | 10 | public long Handle 11 | { 12 | get; 13 | private set; 14 | } 15 | public string OriginalName 16 | { 17 | get; 18 | private set; 19 | } 20 | public string NewName 21 | { 22 | get; 23 | set; 24 | } 25 | public bool ForceName 26 | { 27 | get; 28 | set; 29 | } 30 | 31 | public bool IsRenamed 32 | { 33 | get 34 | { 35 | return (NewName != null); 36 | } 37 | } 38 | 39 | #endregion 40 | 41 | #region Methods 42 | 43 | public void SetPredecessor(TaskBarWindow predecessor) 44 | { 45 | if (predecessor == null) 46 | return; 47 | 48 | NewName = OriginalName; 49 | OriginalName = predecessor.OriginalName; 50 | ForceName = predecessor.ForceName; 51 | } 52 | 53 | public TaskBarWindow(EnumWindowsItem window) 54 | { 55 | if (window == null) 56 | return; 57 | 58 | ForceName = false; 59 | Handle = (long)window.Handle; 60 | OriginalName = window.Text; 61 | } 62 | public TaskBarWindow(long handle, string originalName, string newName, bool forceName) 63 | { 64 | Handle = handle; 65 | OriginalName = originalName; 66 | NewName = newName; 67 | ForceName = forceName; 68 | } 69 | 70 | #endregion 71 | } 72 | 73 | public enum RenameType 74 | { 75 | Exact, 76 | Wildcard, 77 | RegExp 78 | } 79 | 80 | public class AutomaticEntry 81 | { 82 | #region Fields 83 | 84 | public RenameType Type 85 | { 86 | get; 87 | set; 88 | } 89 | public string From 90 | { 91 | get 92 | { 93 | switch (Type) 94 | { 95 | case RenameType.Wildcard: 96 | return ("wc$" + FromName); 97 | case RenameType.RegExp: 98 | return ("re$" + FromName); 99 | default: 100 | return FromName; 101 | } 102 | } 103 | } 104 | public string FromName 105 | { 106 | get; 107 | set; 108 | } 109 | 110 | public string ToName 111 | { 112 | get; 113 | set; 114 | } 115 | 116 | public bool ForceName 117 | { 118 | get; 119 | set; 120 | } 121 | 122 | private readonly Regex wildcard; 123 | private readonly Regex regexp; 124 | 125 | #endregion 126 | 127 | #region Methods 128 | 129 | public AutomaticEntry(string fromName, string toName, bool forceName) 130 | { 131 | if (fromName.StartsWith("wc$")) 132 | { 133 | Type = RenameType.Wildcard; 134 | FromName = fromName.Remove(0, 3); 135 | } 136 | else if (fromName.StartsWith("re$")) 137 | { 138 | Type = RenameType.RegExp; 139 | FromName = fromName.Remove(0, 3); 140 | } 141 | else 142 | { 143 | Type = RenameType.Exact; 144 | FromName = fromName; 145 | } 146 | 147 | switch (Type) 148 | { 149 | case RenameType.Wildcard: 150 | wildcard = BuildRegex(FromName, Type); 151 | break; 152 | 153 | case RenameType.RegExp: 154 | regexp = BuildRegex(FromName, Type); 155 | break; 156 | } 157 | 158 | ToName = toName; 159 | ForceName = forceName; 160 | } 161 | 162 | public bool Matches(string name) 163 | { 164 | if (string.IsNullOrEmpty(name)) 165 | return false; 166 | 167 | switch (Type) 168 | { 169 | case RenameType.Wildcard: 170 | return wildcard.IsMatch(name); 171 | 172 | case RenameType.RegExp: 173 | return regexp.IsMatch(name); 174 | } 175 | 176 | return name.Equals(FromName, StringComparison.OrdinalIgnoreCase); 177 | } 178 | 179 | public string Rename(string name) 180 | { 181 | const int MAX_CAPTURES = 20; 182 | 183 | switch (Type) 184 | { 185 | case RenameType.RegExp: 186 | 187 | string result = ToName; 188 | 189 | MatchCollection matches = regexp.Matches(name); 190 | if (matches.Count > 0) 191 | { 192 | GroupCollection captures = matches[0].Groups; 193 | for (int i = 0; i < MAX_CAPTURES; i++) 194 | { 195 | string replacement; 196 | if (captures.Count > i) { 197 | replacement = captures[i].Value; 198 | } 199 | else 200 | { 201 | replacement = string.Empty; 202 | } 203 | 204 | result = result.Replace((@"\" + i), replacement); 205 | } 206 | } 207 | return result; 208 | } 209 | 210 | return ToName; 211 | } 212 | 213 | public static Regex BuildRegex(string pattern, RenameType type) 214 | { 215 | try 216 | { 217 | switch (type) 218 | { 219 | case RenameType.Wildcard: 220 | return new Regex( 221 | Regex.Escape(pattern).Replace(@"\*", ".*").Replace(@"\?", "."), 222 | RegexOptions.IgnoreCase 223 | ); 224 | 225 | case RenameType.RegExp: 226 | return new Regex(pattern, RegexOptions.IgnoreCase); 227 | } 228 | } 229 | catch { } 230 | 231 | return null; 232 | } 233 | 234 | #endregion 235 | } 236 | } -------------------------------------------------------------------------------- /Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TaskBarRenamer.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | 26 | [global::System.Configuration.UserScopedSettingAttribute()] 27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 28 | [global::System.Configuration.DefaultSettingValueAttribute("False")] 29 | public bool ListAllWindows { 30 | get { 31 | return ((bool)(this["ListAllWindows"])); 32 | } 33 | set { 34 | this["ListAllWindows"] = value; 35 | } 36 | } 37 | 38 | [global::System.Configuration.UserScopedSettingAttribute()] 39 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 40 | [global::System.Configuration.DefaultSettingValueAttribute("False")] 41 | public bool InitialForceNames { 42 | get { 43 | return ((bool)(this["InitialForceNames"])); 44 | } 45 | set { 46 | this["InitialForceNames"] = value; 47 | } 48 | } 49 | 50 | [global::System.Configuration.UserScopedSettingAttribute()] 51 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 52 | [global::System.Configuration.DefaultSettingValueAttribute("True")] 53 | public bool AutoRefresh { 54 | get { 55 | return ((bool)(this["AutoRefresh"])); 56 | } 57 | set { 58 | this["AutoRefresh"] = value; 59 | } 60 | } 61 | 62 | [global::System.Configuration.UserScopedSettingAttribute()] 63 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 64 | [global::System.Configuration.DefaultSettingValueAttribute("10")] 65 | public int RefreshEvery { 66 | get { 67 | return ((int)(this["RefreshEvery"])); 68 | } 69 | set { 70 | this["RefreshEvery"] = value; 71 | } 72 | } 73 | 74 | [global::System.Configuration.UserScopedSettingAttribute()] 75 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 76 | [global::System.Configuration.DefaultSettingValueAttribute("False")] 77 | public bool ForegroundOnly { 78 | get { 79 | return ((bool)(this["ForegroundOnly"])); 80 | } 81 | set { 82 | this["ForegroundOnly"] = value; 83 | } 84 | } 85 | 86 | [global::System.Configuration.UserScopedSettingAttribute()] 87 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 88 | [global::System.Configuration.DefaultSettingValueAttribute("10")] 89 | public int ForceNamesEvery { 90 | get { 91 | return ((int)(this["ForceNamesEvery"])); 92 | } 93 | set { 94 | this["ForceNamesEvery"] = value; 95 | } 96 | } 97 | 98 | [global::System.Configuration.UserScopedSettingAttribute()] 99 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 100 | [global::System.Configuration.DefaultSettingValueAttribute("True")] 101 | public bool InformAboutTray { 102 | get { 103 | return ((bool)(this["InformAboutTray"])); 104 | } 105 | set { 106 | this["InformAboutTray"] = value; 107 | } 108 | } 109 | 110 | [global::System.Configuration.UserScopedSettingAttribute()] 111 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 112 | [global::System.Configuration.DefaultSettingValueAttribute("\r\n")] 114 | public global::System.Collections.Specialized.StringCollection Forms { 115 | get { 116 | return ((global::System.Collections.Specialized.StringCollection)(this["Forms"])); 117 | } 118 | set { 119 | this["Forms"] = value; 120 | } 121 | } 122 | 123 | [global::System.Configuration.UserScopedSettingAttribute()] 124 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 125 | [global::System.Configuration.DefaultSettingValueAttribute("\r\n")] 127 | public global::System.Collections.Specialized.StringCollection Automatic { 128 | get { 129 | return ((global::System.Collections.Specialized.StringCollection)(this["Automatic"])); 130 | } 131 | set { 132 | this["Automatic"] = value; 133 | } 134 | } 135 | 136 | [global::System.Configuration.UserScopedSettingAttribute()] 137 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 138 | [global::System.Configuration.DefaultSettingValueAttribute("\r\n")] 140 | public global::System.Collections.Specialized.StringCollection LastRenames { 141 | get { 142 | return ((global::System.Collections.Specialized.StringCollection)(this["LastRenames"])); 143 | } 144 | set { 145 | this["LastRenames"] = value; 146 | } 147 | } 148 | } 149 | } 150 | -------------------------------------------------------------------------------- /Forms/FormAboutTray.de.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Das Fenster ist jetzt in den Windows Tray minimiert. 122 | Klicken Sie auf das Symbol im Windows Tray um das Fenster wieder zu öffnen. 123 | 124 | 125 | 126 | 198, 17 127 | 128 | 129 | Diese Meldung nicht mehr anzeigen. 130 | 131 | 132 | Hinweis zum Windows Tray 133 | 134 | -------------------------------------------------------------------------------- /Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\AboutTray.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | 126 | ..\Resources\KNET.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 127 | 128 | -------------------------------------------------------------------------------- /Languages/Language.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TaskBarRenamer.Languages { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Language { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Language() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TaskBarRenamer.Languages.Language", typeof(Language).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized string similar to Currently there are renamed windows with forced names. If you close this program, the renamed windows names will be no longer forced. Are you sure that you want to quit?. 65 | /// 66 | internal static string ClosingPrompt { 67 | get { 68 | return ResourceManager.GetString("ClosingPrompt", resourceCulture); 69 | } 70 | } 71 | 72 | /// 73 | /// Looks up a localized string similar to If this option is enabled, the "Automatic Rename" feature does only work as long as the program is not minimized. Are you sure that you want to enable this option?. 74 | /// 75 | internal static string ForegroundOnly { 76 | get { 77 | return ResourceManager.GetString("ForegroundOnly", resourceCulture); 78 | } 79 | } 80 | 81 | /// 82 | /// Looks up a localized string similar to Type in the new name of the window:. 83 | /// 84 | internal static string InputNewName { 85 | get { 86 | return ResourceManager.GetString("InputNewName", resourceCulture); 87 | } 88 | } 89 | 90 | /// 91 | /// Looks up a localized string similar to The regular expression is invalid.. 92 | /// 93 | internal static string InvalidRegExp { 94 | get { 95 | return ResourceManager.GetString("InvalidRegExp", resourceCulture); 96 | } 97 | } 98 | 99 | /// 100 | /// Looks up a localized string similar to The wildcard pattern is invalid.. 101 | /// 102 | internal static string InvalidWildcard { 103 | get { 104 | return ResourceManager.GetString("InvalidWildcard", resourceCulture); 105 | } 106 | } 107 | 108 | /// 109 | /// Looks up a localized string similar to The name must not contain any semicolon.. 110 | /// 111 | internal static string NotContainSemicolon { 112 | get { 113 | return ResourceManager.GetString("NotContainSemicolon", resourceCulture); 114 | } 115 | } 116 | 117 | /// 118 | /// Looks up a localized string similar to \1 - \9 to backreference captures. 119 | /// 120 | internal static string RegExpHint { 121 | get { 122 | return ResourceManager.GetString("RegExpHint", resourceCulture); 123 | } 124 | } 125 | 126 | /// 127 | /// Looks up a localized string similar to Search.... 128 | /// 129 | internal static string Search { 130 | get { 131 | return ResourceManager.GetString("Search", resourceCulture); 132 | } 133 | } 134 | 135 | /// 136 | /// Looks up a localized string similar to An error occurred while trying to open the website. Your default web browser might not be set. Try to open the website manually with the following link:. 137 | /// 138 | internal static string WebsiteError { 139 | get { 140 | return ResourceManager.GetString("WebsiteError", resourceCulture); 141 | } 142 | } 143 | 144 | /// 145 | /// Looks up a localized string similar to ? = any single character, * = any number of characters. 146 | /// 147 | internal static string WildcardHint { 148 | get { 149 | return ResourceManager.GetString("WildcardHint", resourceCulture); 150 | } 151 | } 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using System; 3 | using System.Collections.Specialized; 4 | using System.Diagnostics; 5 | using System.Drawing; 6 | using System.IO; 7 | using System.Runtime.InteropServices; 8 | using System.Windows.Forms; 9 | 10 | namespace TaskBarRenamer 11 | { 12 | internal static class Program 13 | { 14 | #region Fields 15 | 16 | public static string Build 17 | { 18 | get 19 | { 20 | return "2024-03-30"; 21 | } 22 | } 23 | 24 | public static string Website 25 | { 26 | get 27 | { 28 | return "https://kwaschny.net/"; 29 | } 30 | } 31 | 32 | #endregion 33 | 34 | #region Methods 35 | 36 | [STAThread] 37 | private static void Main() 38 | { 39 | Application.EnableVisualStyles(); 40 | Application.SetCompatibleTextRenderingDefault(false); 41 | Application.Run(new FormMain()); 42 | } 43 | 44 | #region DLLImports 45 | 46 | [DllImport("user32")] 47 | public static extern IntPtr GetWindow( 48 | IntPtr hWnd, 49 | int wFlag 50 | ); 51 | 52 | [DllImport("user32", EntryPoint = "GetClassLong", CharSet = CharSet.Auto)] 53 | public static extern int GetClassLongA( 54 | int hWnd, 55 | int nIndex 56 | ); 57 | 58 | [DllImport("user32.dll")] 59 | public static extern bool IsWindow( 60 | int hWnd 61 | ); 62 | 63 | [DllImport("user32.dll", CharSet = CharSet.Auto)] 64 | public static extern IntPtr SendMessage( 65 | int hWnd, 66 | int Msg, 67 | IntPtr wParam, 68 | IntPtr lParam 69 | ); 70 | 71 | [DllImport("User32.dll")] 72 | public static extern bool IsIconic( 73 | int hWnd 74 | ); 75 | 76 | [DllImport("User32.dll")] 77 | public static extern Int32 SetForegroundWindow( 78 | int hWnd 79 | ); 80 | 81 | [DllImport("user32.dll")] 82 | public static extern bool ShowWindowAsync( 83 | IntPtr hWnd, 84 | int cmdShow 85 | ); 86 | 87 | #endregion 88 | 89 | private static int ContainsLike(StringCollection stringCollection, string value) 90 | { 91 | for (int i = 0; i < stringCollection.Count; i++) 92 | { 93 | if (stringCollection[i].Contains(value)) 94 | return i; 95 | } 96 | 97 | return -1; 98 | } 99 | 100 | public enum FormOperationResult 101 | { 102 | Successful, 103 | NoEntryFound, 104 | FormIsNull, 105 | FormNotVisible, 106 | FormMinimized, 107 | FormMaximized, 108 | CollectionIsNull, 109 | ValuesCorrupt, 110 | } 111 | public static FormOperationResult SaveForm(Form form, StringCollection formsCollection) 112 | { 113 | if (form == null) 114 | return FormOperationResult.FormIsNull; 115 | 116 | if (formsCollection == null) 117 | formsCollection = new StringCollection(); 118 | 119 | if (!form.Visible) 120 | return FormOperationResult.FormNotVisible; 121 | if (form.WindowState == FormWindowState.Minimized) 122 | return FormOperationResult.FormMinimized; 123 | if (form.WindowState == FormWindowState.Maximized) 124 | return FormOperationResult.FormMaximized; 125 | 126 | int index = ContainsLike(formsCollection, form.Name); 127 | if (index >= 0) 128 | formsCollection.RemoveAt(index); 129 | 130 | formsCollection.Add(string.Format("{0}|{1}|{2}|{3}|{4}", form.Name, form.Left, form.Top, form.Width, form.Height)); 131 | 132 | return FormOperationResult.Successful; 133 | } 134 | public static FormOperationResult LoadForm(Form form, StringCollection formsCollection) 135 | { 136 | if (form == null) 137 | return FormOperationResult.FormIsNull; 138 | 139 | if (formsCollection == null) 140 | return FormOperationResult.CollectionIsNull; 141 | 142 | Rectangle screen = Screen.PrimaryScreen.WorkingArea; 143 | 144 | int index = ContainsLike(formsCollection, form.Name); 145 | if (index >= 0) 146 | { 147 | string[] values = formsCollection[index].Split('|'); 148 | 149 | if (values.Length < 5) 150 | return FormOperationResult.ValuesCorrupt; 151 | 152 | int.TryParse(values[1], out int tempValue); 153 | form.Left = tempValue; 154 | int.TryParse(values[2], out tempValue); 155 | form.Top = tempValue; 156 | 157 | switch (form.FormBorderStyle) 158 | { 159 | case FormBorderStyle.Sizable: 160 | case FormBorderStyle.SizableToolWindow: 161 | int.TryParse(values[3], out tempValue); 162 | form.Width = tempValue; 163 | int.TryParse(values[4], out tempValue); 164 | form.Height = tempValue; 165 | break; 166 | } 167 | 168 | if (form.Left < 0) 169 | form.Left = 0; 170 | if (form.Left + form.Width > screen.Width) 171 | form.Left = screen.Width - form.Width; 172 | if (form.Top < 0) 173 | form.Top = 0; 174 | if (form.Top + form.Height > screen.Height) 175 | form.Top = screen.Height - form.Height; 176 | 177 | return FormOperationResult.Successful; 178 | } 179 | else 180 | { 181 | if (form.Owner != null) 182 | { 183 | form.Left = form.Owner.Left + ((form.Owner.Width / 2) - (form.Width / 2)); 184 | form.Top = form.Owner.Top + ((form.Owner.Height / 2) - (form.Height / 2)); 185 | } 186 | else 187 | { 188 | form.Left = (screen.Width / 2) - (form.Width / 2); 189 | form.Top = (screen.Height / 2) - (form.Height / 2); 190 | } 191 | } 192 | 193 | return FormOperationResult.NoEntryFound; 194 | } 195 | 196 | public static bool OpenWebsite(string websiteLink) 197 | { 198 | if (string.IsNullOrEmpty(websiteLink)) 199 | return false; 200 | 201 | try 202 | { 203 | Process.Start(websiteLink); 204 | return true; 205 | } 206 | catch 207 | { 208 | return false; 209 | } 210 | } 211 | 212 | #endregion 213 | } 214 | } -------------------------------------------------------------------------------- /Languages/Language.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Currently there are renamed windows with forced names. If you close this program, the renamed windows names will be no longer forced. Are you sure that you want to quit? 122 | formMain 123 | 124 | 125 | If this option is enabled, the "Automatic Rename" feature does only work as long as the program is not minimized. Are you sure that you want to enable this option? 126 | formSettings 127 | 128 | 129 | Type in the new name of the window: 130 | formTextInput 131 | 132 | 133 | The regular expression is invalid. 134 | formAutomatic 135 | 136 | 137 | The wildcard pattern is invalid. 138 | formAutomatic 139 | 140 | 141 | The name must not contain any semicolon. 142 | formAutomatic 143 | 144 | 145 | \1 - \9 to backreference captures 146 | formAutomatic 147 | 148 | 149 | Search... 150 | formMain 151 | 152 | 153 | An error occurred while trying to open the website. Your default web browser might not be set. Try to open the website manually with the following link: 154 | formMain 155 | 156 | 157 | ? = any single character, * = any number of characters 158 | formAutomatic 159 | 160 | -------------------------------------------------------------------------------- /Languages/Language.de.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Derzeit werden Namen umbenannter Fenster erzwungen. Wenn Sie das Programm beenden, können diese Namen nicht länger erzwungen werden. Sind Sie sicher, dass Sie beenden wollen? 122 | formMain 123 | 124 | 125 | Wenn Sie diese Option aktivieren, funktioniert die "Automatisch Umbenennen"-Funktion nur solange das Programm nicht minimiert ist. Sind Sie sicher, dass Sie diese Option aktivieren wollen? 126 | formSettings 127 | 128 | 129 | Geben Sie den neuen Name des Fensters an: 130 | formTextInput 131 | 132 | 133 | Der reguläre Ausdruck ist ungültig. 134 | formAutomatic 135 | 136 | 137 | Der Platzhalter-Ausdruck ist ungültig. 138 | formAutomatic 139 | 140 | 141 | Der Name darf kein Semikolon beinhalten. 142 | formAutomatic 143 | 144 | 145 | \1 - \9 für Rückverweise 146 | formAutomatic 147 | 148 | 149 | Suchen... 150 | formMain 151 | 152 | 153 | Beim Aufrufen der Website ist ein Fehler aufgetreten. Ihr Standard-Web-Browser ist möglicherweise nicht festgelegt. Versuchen Sie die Website unter folgendem Link manuell zu öffnen: 154 | formMain 155 | 156 | 157 | ? = beliebiger Buchstabe, * = beliebige Anzahl Buchstaben 158 | formAutomatic 159 | 160 | -------------------------------------------------------------------------------- /Forms/FormSettings.de.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 110, 13 123 | 124 | 125 | Sekunden erzwingen. 126 | 127 | 128 | 71, 136 129 | 130 | 131 | 23, 13 132 | 133 | 134 | alle 135 | 136 | 137 | 126, 13 138 | 139 | 140 | Wenn gesetzt, Namen... 141 | 142 | 143 | 121, 13 144 | 145 | 146 | Sekunden aktualisieren, 147 | 148 | 149 | 71, 34 150 | 151 | 152 | 23, 13 153 | 154 | 155 | alle 156 | 157 | 158 | 132, 17 159 | 160 | 161 | wenn im Vordergrund. 162 | 163 | 164 | 97, 17 165 | 166 | 167 | Automatisch... 168 | 169 | 170 | Aktualisierung 171 | 172 | 173 | Abbrechen 174 | 175 | 176 | Einstellungen 177 | 178 | -------------------------------------------------------------------------------- /Forms/FormSettings.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TaskBarRenamer 2 | { 3 | partial class FormSettings 4 | { 5 | private System.ComponentModel.IContainer components = null; 6 | 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && (components != null)) 10 | { 11 | components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | private void InitializeComponent() 17 | { 18 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormSettings)); 19 | this.tabControlSettings = new System.Windows.Forms.TabControl(); 20 | this.tabPageRefresh = new System.Windows.Forms.TabPage(); 21 | this.labelSeconds2 = new System.Windows.Forms.Label(); 22 | this.labelEvery2 = new System.Windows.Forms.Label(); 23 | this.numericUpDownForceNamesEvery = new TaskBarRenamer.NumericUpDownFixed(); 24 | this.labelForceNames = new System.Windows.Forms.Label(); 25 | this.labelSeconds1 = new System.Windows.Forms.Label(); 26 | this.labelEvery1 = new System.Windows.Forms.Label(); 27 | this.numericUpDownRefreshEvery = new TaskBarRenamer.NumericUpDownFixed(); 28 | this.checkBoxForegroundOnly = new System.Windows.Forms.CheckBox(); 29 | this.checkBoxAutoRefresh = new System.Windows.Forms.CheckBox(); 30 | this.buttonOK = new System.Windows.Forms.Button(); 31 | this.buttonCancel = new System.Windows.Forms.Button(); 32 | this.tabControlSettings.SuspendLayout(); 33 | this.tabPageRefresh.SuspendLayout(); 34 | ((System.ComponentModel.ISupportInitialize)(this.numericUpDownForceNamesEvery)).BeginInit(); 35 | ((System.ComponentModel.ISupportInitialize)(this.numericUpDownRefreshEvery)).BeginInit(); 36 | this.SuspendLayout(); 37 | // 38 | // tabControlSettings 39 | // 40 | resources.ApplyResources(this.tabControlSettings, "tabControlSettings"); 41 | this.tabControlSettings.Controls.Add(this.tabPageRefresh); 42 | this.tabControlSettings.Name = "tabControlSettings"; 43 | this.tabControlSettings.SelectedIndex = 0; 44 | // 45 | // tabPageRefresh 46 | // 47 | resources.ApplyResources(this.tabPageRefresh, "tabPageRefresh"); 48 | this.tabPageRefresh.Controls.Add(this.labelSeconds2); 49 | this.tabPageRefresh.Controls.Add(this.labelEvery2); 50 | this.tabPageRefresh.Controls.Add(this.numericUpDownForceNamesEvery); 51 | this.tabPageRefresh.Controls.Add(this.labelForceNames); 52 | this.tabPageRefresh.Controls.Add(this.labelSeconds1); 53 | this.tabPageRefresh.Controls.Add(this.labelEvery1); 54 | this.tabPageRefresh.Controls.Add(this.numericUpDownRefreshEvery); 55 | this.tabPageRefresh.Controls.Add(this.checkBoxForegroundOnly); 56 | this.tabPageRefresh.Controls.Add(this.checkBoxAutoRefresh); 57 | this.tabPageRefresh.Name = "tabPageRefresh"; 58 | this.tabPageRefresh.UseVisualStyleBackColor = true; 59 | // 60 | // labelSeconds2 61 | // 62 | resources.ApplyResources(this.labelSeconds2, "labelSeconds2"); 63 | this.labelSeconds2.Name = "labelSeconds2"; 64 | // 65 | // labelEvery2 66 | // 67 | resources.ApplyResources(this.labelEvery2, "labelEvery2"); 68 | this.labelEvery2.Name = "labelEvery2"; 69 | // 70 | // numericUpDownForceNamesEvery 71 | // 72 | resources.ApplyResources(this.numericUpDownForceNamesEvery, "numericUpDownForceNamesEvery"); 73 | this.numericUpDownForceNamesEvery.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::TaskBarRenamer.Properties.Settings.Default, "ForceNamesEvery", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); 74 | this.numericUpDownForceNamesEvery.Maximum = new decimal(new int[] { 75 | 6000, 76 | 0, 77 | 0, 78 | 0}); 79 | this.numericUpDownForceNamesEvery.Minimum = new decimal(new int[] { 80 | 3, 81 | 0, 82 | 0, 83 | 0}); 84 | this.numericUpDownForceNamesEvery.Name = "numericUpDownForceNamesEvery"; 85 | this.numericUpDownForceNamesEvery.Value = global::TaskBarRenamer.Properties.Settings.Default.ForceNamesEvery; 86 | // 87 | // labelForceNames 88 | // 89 | resources.ApplyResources(this.labelForceNames, "labelForceNames"); 90 | this.labelForceNames.Name = "labelForceNames"; 91 | // 92 | // labelSeconds1 93 | // 94 | resources.ApplyResources(this.labelSeconds1, "labelSeconds1"); 95 | this.labelSeconds1.Name = "labelSeconds1"; 96 | // 97 | // labelEvery1 98 | // 99 | resources.ApplyResources(this.labelEvery1, "labelEvery1"); 100 | this.labelEvery1.Name = "labelEvery1"; 101 | // 102 | // numericUpDownRefreshEvery 103 | // 104 | resources.ApplyResources(this.numericUpDownRefreshEvery, "numericUpDownRefreshEvery"); 105 | this.numericUpDownRefreshEvery.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::TaskBarRenamer.Properties.Settings.Default, "RefreshEvery", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); 106 | this.numericUpDownRefreshEvery.Maximum = new decimal(new int[] { 107 | 6000, 108 | 0, 109 | 0, 110 | 0}); 111 | this.numericUpDownRefreshEvery.Minimum = new decimal(new int[] { 112 | 3, 113 | 0, 114 | 0, 115 | 0}); 116 | this.numericUpDownRefreshEvery.Name = "numericUpDownRefreshEvery"; 117 | this.numericUpDownRefreshEvery.Value = global::TaskBarRenamer.Properties.Settings.Default.RefreshEvery; 118 | // 119 | // checkBoxForegroundOnly 120 | // 121 | resources.ApplyResources(this.checkBoxForegroundOnly, "checkBoxForegroundOnly"); 122 | this.checkBoxForegroundOnly.Checked = global::TaskBarRenamer.Properties.Settings.Default.ForegroundOnly; 123 | this.checkBoxForegroundOnly.CheckState = System.Windows.Forms.CheckState.Checked; 124 | this.checkBoxForegroundOnly.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::TaskBarRenamer.Properties.Settings.Default, "ForegroundOnly", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); 125 | this.checkBoxForegroundOnly.Name = "checkBoxForegroundOnly"; 126 | this.checkBoxForegroundOnly.UseVisualStyleBackColor = true; 127 | this.checkBoxForegroundOnly.CheckedChanged += new System.EventHandler(this.ForegroundOnly_CheckedChanged); 128 | // 129 | // checkBoxAutoRefresh 130 | // 131 | resources.ApplyResources(this.checkBoxAutoRefresh, "checkBoxAutoRefresh"); 132 | this.checkBoxAutoRefresh.Checked = global::TaskBarRenamer.Properties.Settings.Default.AutoRefresh; 133 | this.checkBoxAutoRefresh.CheckState = System.Windows.Forms.CheckState.Checked; 134 | this.checkBoxAutoRefresh.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::TaskBarRenamer.Properties.Settings.Default, "AutoRefresh", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); 135 | this.checkBoxAutoRefresh.Name = "checkBoxAutoRefresh"; 136 | this.checkBoxAutoRefresh.UseVisualStyleBackColor = true; 137 | this.checkBoxAutoRefresh.CheckedChanged += new System.EventHandler(this.CheckBox_CheckedChanged); 138 | // 139 | // buttonOK 140 | // 141 | resources.ApplyResources(this.buttonOK, "buttonOK"); 142 | this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; 143 | this.buttonOK.Name = "buttonOK"; 144 | this.buttonOK.UseVisualStyleBackColor = true; 145 | this.buttonOK.Click += new System.EventHandler(this.OK_Click); 146 | // 147 | // buttonCancel 148 | // 149 | resources.ApplyResources(this.buttonCancel, "buttonCancel"); 150 | this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; 151 | this.buttonCancel.Name = "buttonCancel"; 152 | this.buttonCancel.UseVisualStyleBackColor = true; 153 | // 154 | // FormSettings 155 | // 156 | this.AcceptButton = this.buttonOK; 157 | resources.ApplyResources(this, "$this"); 158 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 159 | this.CancelButton = this.buttonCancel; 160 | this.Controls.Add(this.buttonOK); 161 | this.Controls.Add(this.buttonCancel); 162 | this.Controls.Add(this.tabControlSettings); 163 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 164 | this.MaximizeBox = false; 165 | this.MinimizeBox = false; 166 | this.Name = "FormSettings"; 167 | this.ShowIcon = false; 168 | this.ShowInTaskbar = false; 169 | this.tabControlSettings.ResumeLayout(false); 170 | this.tabPageRefresh.ResumeLayout(false); 171 | this.tabPageRefresh.PerformLayout(); 172 | ((System.ComponentModel.ISupportInitialize)(this.numericUpDownForceNamesEvery)).EndInit(); 173 | ((System.ComponentModel.ISupportInitialize)(this.numericUpDownRefreshEvery)).EndInit(); 174 | this.ResumeLayout(false); 175 | 176 | } 177 | 178 | private System.Windows.Forms.TabControl tabControlSettings; 179 | private System.Windows.Forms.TabPage tabPageRefresh; 180 | private System.Windows.Forms.Label labelSeconds2; 181 | private System.Windows.Forms.Label labelEvery2; 182 | private NumericUpDownFixed numericUpDownForceNamesEvery; 183 | private System.Windows.Forms.Label labelForceNames; 184 | private System.Windows.Forms.Label labelSeconds1; 185 | private System.Windows.Forms.Label labelEvery1; 186 | private NumericUpDownFixed numericUpDownRefreshEvery; 187 | private System.Windows.Forms.CheckBox checkBoxForegroundOnly; 188 | private System.Windows.Forms.CheckBox checkBoxAutoRefresh; 189 | private System.Windows.Forms.Button buttonOK; 190 | private System.Windows.Forms.Button buttonCancel; 191 | 192 | } 193 | } -------------------------------------------------------------------------------- /TaskBarRenamer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | x86 6 | 8.0.30703 7 | 2.0 8 | {01545AA5-3577-435F-A1BB-3A75F4EB221C} 9 | WinExe 10 | Properties 11 | TaskBarRenamer 12 | TaskBarRenamer 13 | v2.0 14 | 15 | 16 | 512 17 | false 18 | publish\ 19 | true 20 | Disk 21 | false 22 | Foreground 23 | 7 24 | Days 25 | false 26 | false 27 | true 28 | publish.htm 29 | false 30 | true 31 | 0 32 | 1.0.0.0 33 | false 34 | true 35 | true 36 | 37 | 38 | x86 39 | true 40 | full 41 | false 42 | bin\Debug\ 43 | DEBUG 44 | prompt 45 | 4 46 | 47 | 48 | x86 49 | pdbonly 50 | true 51 | bin\Release\ 52 | 53 | 54 | prompt 55 | 4 56 | 57 | 58 | TBRN.ico 59 | 60 | 61 | true 62 | bin\x64\Debug\ 63 | DEBUG 64 | full 65 | x64 66 | prompt 67 | false 68 | false 69 | 70 | 71 | bin\x64\Release\ 72 | true 73 | pdbonly 74 | x64 75 | prompt 76 | true 77 | true 78 | false 79 | 80 | 81 | 079E9503DB6ECAE23DDBA676EE1E75AFAF9B73A8 82 | 83 | 84 | TaskBarRenamer_TemporaryKey.pfx 85 | 86 | 87 | false 88 | 89 | 90 | false 91 | 92 | 93 | LocalIntranet 94 | 95 | 96 | 97 | TaskBarRenamer.Program 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | Form 109 | 110 | 111 | FormVersion.cs 112 | 113 | 114 | 115 | Component 116 | 117 | 118 | Form 119 | 120 | 121 | FormAboutTray.cs 122 | 123 | 124 | Form 125 | 126 | 127 | FormMain.cs 128 | 129 | 130 | Form 131 | 132 | 133 | FormSettings.cs 134 | 135 | 136 | Form 137 | 138 | 139 | FormTextInput.cs 140 | 141 | 142 | Form 143 | 144 | 145 | FormAutomatic.cs 146 | 147 | 148 | Language.de.resx 149 | True 150 | True 151 | 152 | 153 | True 154 | True 155 | Language.resx 156 | 157 | 158 | 159 | 160 | 161 | FormAboutTray.cs 162 | 163 | 164 | FormAboutTray.cs 165 | 166 | 167 | FormAutomatic.cs 168 | 169 | 170 | FormMain.cs 171 | 172 | 173 | FormMain.cs 174 | 175 | 176 | FormSettings.cs 177 | 178 | 179 | FormSettings.cs 180 | 181 | 182 | FormTextInput.cs 183 | 184 | 185 | FormTextInput.cs 186 | 187 | 188 | FormAutomatic.cs 189 | 190 | 191 | FormVersion.cs 192 | 193 | 194 | FormVersion.cs 195 | 196 | 197 | ResXFileCodeGenerator 198 | Language.de.Designer.cs 199 | 200 | 201 | ResXFileCodeGenerator 202 | Language.Designer.cs 203 | 204 | 205 | ResXFileCodeGenerator 206 | Resources.Designer.cs 207 | Designer 208 | 209 | 210 | True 211 | Resources.resx 212 | True 213 | 214 | 215 | 216 | SettingsSingleFileGenerator 217 | Settings.Designer.cs 218 | 219 | 220 | True 221 | Settings.settings 222 | True 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | False 231 | .NET Framework 3.5 SP1 Client Profile 232 | false 233 | 234 | 235 | False 236 | .NET Framework 3.5 SP1 237 | true 238 | 239 | 240 | False 241 | Windows Installer 3.1 242 | true 243 | 244 | 245 | 246 | 247 | 254 | -------------------------------------------------------------------------------- /Forms/FormAutomatic.de.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 123 | 124 | 125 | MiddleRight 126 | 127 | 128 | 129 | 0 130 | 131 | 132 | 133 | 134 | 135 | MiddleRight 136 | 137 | 138 | 0 139 | 140 | 141 | 142 | 143 | 144 | MiddleRight 145 | 146 | 147 | 0 148 | 149 | 150 | 151 | 152 | 153 | MiddleRight 154 | 155 | 156 | 0 157 | 158 | 159 | 160 | 161 | 162 | MiddleRight 163 | 164 | 165 | 0 166 | 167 | 168 | Exakt 169 | 170 | 171 | 172 | 173 | 174 | MiddleRight 175 | 176 | 177 | 0 178 | 179 | 180 | 181 | 105, 17 182 | 183 | 184 | Name erzwingen 185 | 186 | 187 | 188 | 189 | 190 | MiddleRight 191 | 192 | 193 | 0 194 | 195 | 196 | 54, 13 197 | 198 | 199 | zu diesem 200 | 201 | 202 | 203 | 204 | 205 | MiddleRight 206 | 207 | 208 | 0 209 | 210 | 211 | 212 | 213 | 214 | MiddleRight 215 | 216 | 217 | 0 218 | 219 | 220 | 91, 13 221 | 222 | 223 | Umbenennen von 224 | 225 | 226 | 227 | 228 | 229 | MiddleRight 230 | 231 | 232 | 0 233 | 234 | 235 | 236 | 237 | 238 | MiddleRight 239 | 240 | 241 | 0 242 | 243 | 244 | Abbrechen 245 | 246 | -------------------------------------------------------------------------------- /Forms/FormAutomatic.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TaskBarRenamer 2 | { 3 | partial class FormAutomatic 4 | { 5 | private System.ComponentModel.IContainer components = null; 6 | 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && (components != null)) 10 | { 11 | components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | private void InitializeComponent() 17 | { 18 | this.components = new System.ComponentModel.Container(); 19 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAutomatic)); 20 | this.buttonCancel = new System.Windows.Forms.Button(); 21 | this.buttonOK = new System.Windows.Forms.Button(); 22 | this.textBoxFrom = new System.Windows.Forms.TextBox(); 23 | this.labelFrom = new System.Windows.Forms.Label(); 24 | this.labelTo = new System.Windows.Forms.Label(); 25 | this.textBoxTo = new System.Windows.Forms.TextBox(); 26 | this.checkBoxForceName = new System.Windows.Forms.CheckBox(); 27 | this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); 28 | this.radioButtonExact = new System.Windows.Forms.RadioButton(); 29 | this.radioButtonWildcard = new System.Windows.Forms.RadioButton(); 30 | this.radioButtonRegExp = new System.Windows.Forms.RadioButton(); 31 | this.labelMatch = new System.Windows.Forms.Label(); 32 | ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 33 | this.SuspendLayout(); 34 | // 35 | // buttonCancel 36 | // 37 | resources.ApplyResources(this.buttonCancel, "buttonCancel"); 38 | this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; 39 | this.errorProvider.SetError(this.buttonCancel, resources.GetString("buttonCancel.Error")); 40 | this.errorProvider.SetIconAlignment(this.buttonCancel, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("buttonCancel.IconAlignment")))); 41 | this.errorProvider.SetIconPadding(this.buttonCancel, ((int)(resources.GetObject("buttonCancel.IconPadding")))); 42 | this.buttonCancel.Name = "buttonCancel"; 43 | this.buttonCancel.UseVisualStyleBackColor = true; 44 | // 45 | // buttonOK 46 | // 47 | resources.ApplyResources(this.buttonOK, "buttonOK"); 48 | this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; 49 | this.errorProvider.SetError(this.buttonOK, resources.GetString("buttonOK.Error")); 50 | this.errorProvider.SetIconAlignment(this.buttonOK, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("buttonOK.IconAlignment")))); 51 | this.errorProvider.SetIconPadding(this.buttonOK, ((int)(resources.GetObject("buttonOK.IconPadding")))); 52 | this.buttonOK.Name = "buttonOK"; 53 | this.buttonOK.UseVisualStyleBackColor = true; 54 | this.buttonOK.Click += new System.EventHandler(this.OK_Click); 55 | // 56 | // textBoxFrom 57 | // 58 | resources.ApplyResources(this.textBoxFrom, "textBoxFrom"); 59 | this.errorProvider.SetError(this.textBoxFrom, resources.GetString("textBoxFrom.Error")); 60 | this.errorProvider.SetIconAlignment(this.textBoxFrom, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("textBoxFrom.IconAlignment")))); 61 | this.errorProvider.SetIconPadding(this.textBoxFrom, ((int)(resources.GetObject("textBoxFrom.IconPadding")))); 62 | this.textBoxFrom.Name = "textBoxFrom"; 63 | this.textBoxFrom.TextChanged += new System.EventHandler(this.TextBox_TextChanged); 64 | // 65 | // labelFrom 66 | // 67 | resources.ApplyResources(this.labelFrom, "labelFrom"); 68 | this.errorProvider.SetError(this.labelFrom, resources.GetString("labelFrom.Error")); 69 | this.errorProvider.SetIconAlignment(this.labelFrom, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("labelFrom.IconAlignment")))); 70 | this.errorProvider.SetIconPadding(this.labelFrom, ((int)(resources.GetObject("labelFrom.IconPadding")))); 71 | this.labelFrom.Name = "labelFrom"; 72 | // 73 | // labelTo 74 | // 75 | resources.ApplyResources(this.labelTo, "labelTo"); 76 | this.errorProvider.SetError(this.labelTo, resources.GetString("labelTo.Error")); 77 | this.errorProvider.SetIconAlignment(this.labelTo, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("labelTo.IconAlignment")))); 78 | this.errorProvider.SetIconPadding(this.labelTo, ((int)(resources.GetObject("labelTo.IconPadding")))); 79 | this.labelTo.Name = "labelTo"; 80 | // 81 | // textBoxTo 82 | // 83 | resources.ApplyResources(this.textBoxTo, "textBoxTo"); 84 | this.errorProvider.SetError(this.textBoxTo, resources.GetString("textBoxTo.Error")); 85 | this.errorProvider.SetIconAlignment(this.textBoxTo, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("textBoxTo.IconAlignment")))); 86 | this.errorProvider.SetIconPadding(this.textBoxTo, ((int)(resources.GetObject("textBoxTo.IconPadding")))); 87 | this.textBoxTo.Name = "textBoxTo"; 88 | this.textBoxTo.TextChanged += new System.EventHandler(this.TextBox_TextChanged); 89 | // 90 | // checkBoxForceName 91 | // 92 | resources.ApplyResources(this.checkBoxForceName, "checkBoxForceName"); 93 | this.errorProvider.SetError(this.checkBoxForceName, resources.GetString("checkBoxForceName.Error")); 94 | this.errorProvider.SetIconAlignment(this.checkBoxForceName, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("checkBoxForceName.IconAlignment")))); 95 | this.errorProvider.SetIconPadding(this.checkBoxForceName, ((int)(resources.GetObject("checkBoxForceName.IconPadding")))); 96 | this.checkBoxForceName.Name = "checkBoxForceName"; 97 | this.checkBoxForceName.UseVisualStyleBackColor = true; 98 | // 99 | // errorProvider 100 | // 101 | this.errorProvider.ContainerControl = this; 102 | resources.ApplyResources(this.errorProvider, "errorProvider"); 103 | // 104 | // radioButtonExact 105 | // 106 | resources.ApplyResources(this.radioButtonExact, "radioButtonExact"); 107 | this.radioButtonExact.Checked = true; 108 | this.errorProvider.SetError(this.radioButtonExact, resources.GetString("radioButtonExact.Error")); 109 | this.errorProvider.SetIconAlignment(this.radioButtonExact, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("radioButtonExact.IconAlignment")))); 110 | this.errorProvider.SetIconPadding(this.radioButtonExact, ((int)(resources.GetObject("radioButtonExact.IconPadding")))); 111 | this.radioButtonExact.Name = "radioButtonExact"; 112 | this.radioButtonExact.TabStop = true; 113 | this.radioButtonExact.UseVisualStyleBackColor = true; 114 | this.radioButtonExact.CheckedChanged += new System.EventHandler(this.radioButtonExact_CheckedChanged); 115 | // 116 | // radioButtonWildcard 117 | // 118 | resources.ApplyResources(this.radioButtonWildcard, "radioButtonWildcard"); 119 | this.errorProvider.SetError(this.radioButtonWildcard, resources.GetString("radioButtonWildcard.Error")); 120 | this.errorProvider.SetIconAlignment(this.radioButtonWildcard, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("radioButtonWildcard.IconAlignment")))); 121 | this.errorProvider.SetIconPadding(this.radioButtonWildcard, ((int)(resources.GetObject("radioButtonWildcard.IconPadding")))); 122 | this.radioButtonWildcard.Name = "radioButtonWildcard"; 123 | this.radioButtonWildcard.UseVisualStyleBackColor = true; 124 | this.radioButtonWildcard.CheckedChanged += new System.EventHandler(this.radioButtonWildcard_CheckedChanged); 125 | // 126 | // radioButtonRegExp 127 | // 128 | resources.ApplyResources(this.radioButtonRegExp, "radioButtonRegExp"); 129 | this.errorProvider.SetError(this.radioButtonRegExp, resources.GetString("radioButtonRegExp.Error")); 130 | this.errorProvider.SetIconAlignment(this.radioButtonRegExp, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("radioButtonRegExp.IconAlignment")))); 131 | this.errorProvider.SetIconPadding(this.radioButtonRegExp, ((int)(resources.GetObject("radioButtonRegExp.IconPadding")))); 132 | this.radioButtonRegExp.Name = "radioButtonRegExp"; 133 | this.radioButtonRegExp.UseVisualStyleBackColor = true; 134 | this.radioButtonRegExp.CheckedChanged += new System.EventHandler(this.radioButtonRegExp_CheckedChanged); 135 | // 136 | // labelMatch 137 | // 138 | resources.ApplyResources(this.labelMatch, "labelMatch"); 139 | this.errorProvider.SetError(this.labelMatch, resources.GetString("labelMatch.Error")); 140 | this.labelMatch.ForeColor = System.Drawing.SystemColors.ControlDark; 141 | this.errorProvider.SetIconAlignment(this.labelMatch, ((System.Windows.Forms.ErrorIconAlignment)(resources.GetObject("labelMatch.IconAlignment")))); 142 | this.errorProvider.SetIconPadding(this.labelMatch, ((int)(resources.GetObject("labelMatch.IconPadding")))); 143 | this.labelMatch.Name = "labelMatch"; 144 | // 145 | // FormAutomatic 146 | // 147 | this.AcceptButton = this.buttonOK; 148 | resources.ApplyResources(this, "$this"); 149 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 150 | this.CancelButton = this.buttonCancel; 151 | this.Controls.Add(this.labelMatch); 152 | this.Controls.Add(this.radioButtonRegExp); 153 | this.Controls.Add(this.radioButtonWildcard); 154 | this.Controls.Add(this.radioButtonExact); 155 | this.Controls.Add(this.checkBoxForceName); 156 | this.Controls.Add(this.labelTo); 157 | this.Controls.Add(this.textBoxTo); 158 | this.Controls.Add(this.labelFrom); 159 | this.Controls.Add(this.textBoxFrom); 160 | this.Controls.Add(this.buttonOK); 161 | this.Controls.Add(this.buttonCancel); 162 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 163 | this.MaximizeBox = false; 164 | this.MinimizeBox = false; 165 | this.Name = "FormAutomatic"; 166 | this.ShowIcon = false; 167 | this.ShowInTaskbar = false; 168 | ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); 169 | this.ResumeLayout(false); 170 | this.PerformLayout(); 171 | 172 | } 173 | 174 | private System.Windows.Forms.Button buttonCancel; 175 | private System.Windows.Forms.Button buttonOK; 176 | private System.Windows.Forms.TextBox textBoxFrom; 177 | private System.Windows.Forms.Label labelFrom; 178 | private System.Windows.Forms.Label labelTo; 179 | private System.Windows.Forms.TextBox textBoxTo; 180 | private System.Windows.Forms.CheckBox checkBoxForceName; 181 | private System.Windows.Forms.ErrorProvider errorProvider; 182 | private System.Windows.Forms.RadioButton radioButtonRegExp; 183 | private System.Windows.Forms.RadioButton radioButtonWildcard; 184 | private System.Windows.Forms.RadioButton radioButtonExact; 185 | private System.Windows.Forms.Label labelMatch; 186 | } 187 | } -------------------------------------------------------------------------------- /Forms/FormAboutTray.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | Bottom, Right 123 | 124 | 125 | $this 126 | 127 | 128 | 1 129 | 130 | 131 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 132 | 133 | 134 | 2 135 | 136 | 137 | 138 | 12, 149 139 | 140 | 141 | 386, 28 142 | 143 | 144 | 145 | True 146 | 147 | 148 | 0 149 | 150 | 151 | 323, 145 152 | 153 | 154 | 6, 13 155 | 156 | 157 | Bottom, Left 158 | 159 | 160 | System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 161 | 162 | 163 | 0 164 | 165 | 166 | Tahoma, 8.25pt 167 | 168 | 169 | About the Windows Tray 170 | 171 | 172 | FormAboutTray 173 | 174 | 175 | $this 176 | 177 | 178 | 3 179 | 180 | 181 | 410, 180 182 | 183 | 184 | 400, 60 185 | 186 | 187 | $this 188 | 189 | 190 | labelInformAbout 191 | 192 | 193 | checkBoxDoNotShowAgain 194 | 195 | 196 | 75, 23 197 | 198 | 199 | pictureBoxTray 200 | 201 | 202 | 0 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | The window is now minimized to the Windows Tray. 212 | Click the icon in the Windows Tray to open the window again. 213 | 214 | 215 | Do not show this message again. 216 | 217 | 218 | 4, 58 219 | 220 | 221 | System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 222 | 223 | 224 | CenterScreen 225 | 226 | 227 | 0 228 | 229 | 230 | $this 231 | 232 | 233 | System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 234 | 235 | 236 | 12, 24 237 | 238 | 239 | 1 240 | 241 | 242 | buttonOK 243 | 244 | 245 | 184, 17 246 | 247 | 248 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 249 | 250 | 251 | OK 252 | 253 | 254 | True 255 | 256 | -------------------------------------------------------------------------------- /EnumWindows.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Drawing; 4 | using System.Runtime.InteropServices; 5 | using System.Text; 6 | 7 | namespace TaskBarRenamer 8 | { 9 | #region External Code 10 | 11 | [Flags] 12 | public enum WindowStyleFlags : uint 13 | { 14 | WS_OVERLAPPED = 0x00000000, 15 | WS_POPUP = 0x80000000, 16 | WS_CHILD = 0x40000000, 17 | WS_MINIMIZE = 0x20000000, 18 | WS_VISIBLE = 0x10000000, 19 | WS_DISABLED = 0x08000000, 20 | WS_CLIPSIBLINGS = 0x04000000, 21 | WS_CLIPCHILDREN = 0x02000000, 22 | WS_MAXIMIZE = 0x01000000, 23 | WS_BORDER = 0x00800000, 24 | WS_DLGFRAME = 0x00400000, 25 | WS_VSCROLL = 0x00200000, 26 | WS_HSCROLL = 0x00100000, 27 | WS_SYSMENU = 0x00080000, 28 | WS_THICKFRAME = 0x00040000, 29 | WS_GROUP = 0x00020000, 30 | WS_TABSTOP = 0x00010000, 31 | WS_MINIMIZEBOX = 0x00020000, 32 | WS_MAXIMIZEBOX = 0x00010000, 33 | } 34 | 35 | [Flags] 36 | public enum ExtendedWindowStyleFlags 37 | { 38 | WS_EX_DLGMODALFRAME = 0x00000001, 39 | WS_EX_NOPARENTNOTIFY = 0x00000004, 40 | WS_EX_TOPMOST = 0x00000008, 41 | WS_EX_ACCEPTFILES = 0x00000010, 42 | WS_EX_TRANSPARENT = 0x00000020, 43 | 44 | WS_EX_MDICHILD = 0x00000040, 45 | WS_EX_TOOLWINDOW = 0x00000080, 46 | WS_EX_WINDOWEDGE = 0x00000100, 47 | WS_EX_CLIENTEDGE = 0x00000200, 48 | WS_EX_CONTEXTHELP = 0x00000400, 49 | 50 | WS_EX_RIGHT = 0x00001000, 51 | WS_EX_LEFT = 0x00000000, 52 | WS_EX_RTLREADING = 0x00002000, 53 | WS_EX_LTRREADING = 0x00000000, 54 | WS_EX_LEFTSCROLLBAR = 0x00004000, 55 | WS_EX_RIGHTSCROLLBAR = 0x00000000, 56 | 57 | WS_EX_CONTROLPARENT = 0x00010000, 58 | WS_EX_STATICEDGE = 0x00020000, 59 | WS_EX_APPWINDOW = 0x00040000, 60 | 61 | WS_EX_LAYERED = 0x00080000, 62 | 63 | WS_EX_NOINHERITLAYOUT = 0x00100000, 64 | WS_EX_LAYOUTRTL = 0x00400000, 65 | 66 | WS_EX_COMPOSITED = 0x02000000, 67 | WS_EX_NOACTIVATE = 0x08000000 68 | } 69 | 70 | #region EnumWindows 71 | 72 | public class EnumWindows 73 | { 74 | #region Delegates 75 | 76 | private delegate int EnumWindowsProc(IntPtr hwnd, int lParam); 77 | 78 | #endregion 79 | 80 | #region UnManagedMethods 81 | 82 | private class UnManagedMethods 83 | { 84 | [DllImport("user32")] 85 | public static extern int EnumWindows( 86 | EnumWindowsProc lpEnumFunc, 87 | int lParam); 88 | 89 | [DllImport("user32")] 90 | public static extern int EnumChildWindows( 91 | IntPtr hWndParent, 92 | EnumWindowsProc lpEnumFunc, 93 | int lParam); 94 | } 95 | 96 | #endregion 97 | 98 | public EnumWindowsCollection Items 99 | { 100 | get; 101 | private set; 102 | } 103 | 104 | public void GetWindows() 105 | { 106 | this.Items = new EnumWindowsCollection(); 107 | UnManagedMethods.EnumWindows( 108 | new EnumWindowsProc(this.WindowEnum), 0); 109 | } 110 | 111 | public void GetWindows(IntPtr hWndParent) 112 | { 113 | this.Items = new EnumWindowsCollection(); 114 | UnManagedMethods.EnumChildWindows( 115 | hWndParent, 116 | new EnumWindowsProc(this.WindowEnum), 0); 117 | } 118 | 119 | #region EnumWindows callback 120 | 121 | private int WindowEnum( 122 | IntPtr hWnd, 123 | int lParam) 124 | { 125 | return this.OnWindowEnum(hWnd) ? 1 : 0; 126 | } 127 | 128 | #endregion 129 | 130 | protected virtual bool OnWindowEnum(IntPtr hWnd) 131 | { 132 | Items.Add(hWnd); 133 | return true; 134 | } 135 | } 136 | 137 | #endregion EnumWindows 138 | 139 | #region EnumWindowsCollection 140 | 141 | public class EnumWindowsCollection : ReadOnlyCollectionBase 142 | { 143 | public void Add(IntPtr hWnd) 144 | { 145 | EnumWindowsItem item = new EnumWindowsItem(hWnd); 146 | InnerList.Add(item); 147 | } 148 | 149 | public EnumWindowsItem this[int index] 150 | { 151 | get 152 | { 153 | if ((index >= InnerList.Count) | (index < 0)) 154 | throw new ArgumentOutOfRangeException(); 155 | 156 | return (EnumWindowsItem)InnerList[index]; 157 | } 158 | } 159 | } 160 | 161 | #endregion 162 | 163 | #region EnumWindowsItem 164 | 165 | public class EnumWindowsItem 166 | { 167 | #region Structures 168 | 169 | [StructLayout(LayoutKind.Sequential, Pack = 4)] 170 | private readonly struct RECT 171 | { 172 | public readonly int Left; 173 | public readonly int Top; 174 | public readonly int Right; 175 | public readonly int Bottom; 176 | } 177 | 178 | [StructLayout(LayoutKind.Sequential, Pack = 4)] 179 | private readonly struct FLASHWINFO 180 | { 181 | private readonly int cbSize; 182 | private readonly IntPtr hwnd; 183 | private readonly int dwFlags; 184 | private readonly int uCount; 185 | private readonly int dwTimeout; 186 | } 187 | 188 | #endregion 189 | 190 | #region UnManagedMethods 191 | 192 | private class UnManagedMethods 193 | { 194 | [DllImport("user32")] 195 | public static extern int IsWindowVisible( 196 | IntPtr hWnd); 197 | 198 | [DllImport("user32", CharSet = CharSet.Auto)] 199 | public static extern int GetWindowText( 200 | IntPtr hWnd, 201 | StringBuilder lpString, 202 | int cch); 203 | 204 | [DllImport("user32", CharSet = CharSet.Auto)] 205 | public static extern int GetWindowTextLength( 206 | IntPtr hWnd); 207 | 208 | [DllImport("user32")] 209 | public static extern int BringWindowToTop(IntPtr hWnd); 210 | 211 | [DllImport("user32")] 212 | public static extern int SetForegroundWindow(IntPtr hWnd); 213 | 214 | [DllImport("user32")] 215 | public static extern int IsIconic(IntPtr hWnd); 216 | 217 | [DllImport("user32")] 218 | public static extern int IsZoomed(IntPtr hwnd); 219 | 220 | [DllImport("user32", CharSet = CharSet.Auto)] 221 | public static extern int GetClassName( 222 | IntPtr hWnd, 223 | StringBuilder lpClassName, 224 | int nMaxCount); 225 | 226 | [DllImport("user32")] 227 | public static extern int FlashWindow( 228 | IntPtr hWnd, 229 | ref FLASHWINFO pwfi); 230 | 231 | [DllImport("user32")] 232 | public static extern int GetWindowRect( 233 | IntPtr hWnd, 234 | ref RECT lpRect); 235 | 236 | [DllImport("user32", CharSet = CharSet.Auto)] 237 | public static extern int SendMessage( 238 | IntPtr hWnd, 239 | int wMsg, 240 | IntPtr wParam, 241 | IntPtr lParam); 242 | 243 | [DllImport("user32", CharSet = CharSet.Auto)] 244 | public static extern uint GetWindowLong( 245 | IntPtr hwnd, 246 | int nIndex); 247 | 248 | public const int WM_COMMAND = 0x111; 249 | public const int WM_SYSCOMMAND = 0x112; 250 | 251 | public const int SC_RESTORE = 0xF120; 252 | public const int SC_CLOSE = 0xF060; 253 | public const int SC_MAXIMIZE = 0xF030; 254 | public const int SC_MINIMIZE = 0xF020; 255 | 256 | public const int GWL_STYLE = (-16); 257 | public const int GWL_EXSTYLE = (-20); 258 | 259 | public const int FLASHW_STOP = 0; 260 | public const int FLASHW_CAPTION = 0x00000001; 261 | public const int FLASHW_TRAY = 0x00000002; 262 | public const int FLASHW_ALL = (FLASHW_CAPTION | FLASHW_TRAY); 263 | public const int FLASHW_TIMER = 0x00000004; 264 | public const int FLASHW_TIMERNOFG = 0x0000000C; 265 | } 266 | 267 | #endregion 268 | 269 | private readonly IntPtr hWnd = IntPtr.Zero; 270 | 271 | public override Int32 GetHashCode() 272 | { 273 | return (Int32)this.hWnd; 274 | } 275 | 276 | public IntPtr Handle 277 | { 278 | get 279 | { 280 | return this.hWnd; 281 | } 282 | } 283 | 284 | public string Text 285 | { 286 | get 287 | { 288 | StringBuilder title = new StringBuilder(260, 260); 289 | UnManagedMethods.GetWindowText(this.hWnd, title, title.Capacity); 290 | return title.ToString(); 291 | } 292 | } 293 | 294 | public string ClassName 295 | { 296 | get 297 | { 298 | StringBuilder className = new StringBuilder(260, 260); 299 | UnManagedMethods.GetClassName(this.hWnd, className, className.Capacity); 300 | return className.ToString(); 301 | } 302 | } 303 | 304 | public bool Iconic 305 | { 306 | get 307 | { 308 | return (UnManagedMethods.IsIconic(this.hWnd) != 0); 309 | } 310 | set 311 | { 312 | UnManagedMethods.SendMessage( 313 | this.hWnd, 314 | UnManagedMethods.WM_SYSCOMMAND, 315 | (IntPtr)UnManagedMethods.SC_MINIMIZE, 316 | IntPtr.Zero); 317 | } 318 | } 319 | 320 | public bool Maximised 321 | { 322 | get 323 | { 324 | return (UnManagedMethods.IsZoomed(this.hWnd) != 0); 325 | } 326 | set 327 | { 328 | UnManagedMethods.SendMessage( 329 | this.hWnd, 330 | UnManagedMethods.WM_SYSCOMMAND, 331 | (IntPtr)UnManagedMethods.SC_MAXIMIZE, 332 | IntPtr.Zero); 333 | } 334 | } 335 | 336 | public bool Visible 337 | { 338 | get 339 | { 340 | return (UnManagedMethods.IsWindowVisible(this.hWnd) != 0); 341 | } 342 | } 343 | 344 | public Rectangle Rect 345 | { 346 | get 347 | { 348 | RECT rc = new RECT(); 349 | UnManagedMethods.GetWindowRect( 350 | this.hWnd, 351 | ref rc); 352 | Rectangle rcRet = new Rectangle( 353 | rc.Left, rc.Top, 354 | rc.Right - rc.Left, rc.Bottom - rc.Top); 355 | return rcRet; 356 | } 357 | } 358 | 359 | public Point Location 360 | { 361 | get 362 | { 363 | Rectangle rc = Rect; 364 | Point pt = new Point( 365 | rc.Left, 366 | rc.Top); 367 | return pt; 368 | } 369 | } 370 | 371 | public Size Size 372 | { 373 | get 374 | { 375 | Rectangle rc = Rect; 376 | Size sz = new Size( 377 | rc.Right - rc.Left, 378 | rc.Bottom - rc.Top); 379 | return sz; 380 | } 381 | } 382 | 383 | public void Restore() 384 | { 385 | if (Iconic) 386 | { 387 | UnManagedMethods.SendMessage( 388 | this.hWnd, 389 | UnManagedMethods.WM_SYSCOMMAND, 390 | (IntPtr)UnManagedMethods.SC_RESTORE, 391 | IntPtr.Zero); 392 | } 393 | UnManagedMethods.BringWindowToTop(this.hWnd); 394 | UnManagedMethods.SetForegroundWindow(this.hWnd); 395 | } 396 | 397 | public WindowStyleFlags WindowStyle 398 | { 399 | get 400 | { 401 | return (WindowStyleFlags)UnManagedMethods.GetWindowLong( 402 | this.hWnd, UnManagedMethods.GWL_STYLE); 403 | } 404 | } 405 | 406 | public ExtendedWindowStyleFlags ExtendedWindowStyle 407 | { 408 | get 409 | { 410 | return (ExtendedWindowStyleFlags)UnManagedMethods.GetWindowLong( 411 | this.hWnd, UnManagedMethods.GWL_EXSTYLE); 412 | } 413 | } 414 | 415 | public EnumWindowsItem(IntPtr hWnd) 416 | { 417 | this.hWnd = hWnd; 418 | } 419 | } 420 | 421 | #endregion 422 | 423 | #endregion 424 | } -------------------------------------------------------------------------------- /Forms/FormVersion.de.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Schließen 122 | 123 | 124 | 125 | 126 | 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 205 | 206 | 207 | -------------------------------------------------------------------------------- /Forms/FormTextInput.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 122 | 123 | 124 | 125 | 3 126 | 127 | 128 | 0 129 | 130 | 131 | 132 | Tahoma, 8.25pt 133 | 134 | 135 | 272, 26 136 | 137 | 138 | True 139 | 140 | 141 | checkBoxForceName 142 | 143 | 144 | 145 | Top, Left, Right 146 | 147 | 148 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 149 | 150 | 151 | 128, 70 152 | 153 | 154 | Top, Left, Right 155 | 156 | 157 | 4 158 | 159 | 160 | 6, 13 161 | 162 | 163 | 0 164 | 165 | 166 | 1 167 | 168 | 169 | System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 170 | 171 | 172 | 3 173 | 174 | 175 | Bottom, Left 176 | 177 | 178 | 12, 74 179 | 180 | 181 | FormTextInput 182 | 183 | 184 | $this 185 | 186 | 187 | 82, 17 188 | 189 | 190 | System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 191 | 192 | 193 | Force name 194 | 195 | 196 | $this 197 | 198 | 199 | 0 200 | 201 | 202 | $this 203 | 204 | 205 | 312, 144 206 | 207 | 208 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 209 | 210 | 211 | $this 212 | 213 | 214 | 272, 21 215 | 216 | 217 | 12, 38 218 | 219 | 220 | 209, 70 221 | 222 | 223 | Bottom, Right 224 | 225 | 226 | 75, 23 227 | 228 | 229 | 12, 9 230 | 231 | 232 | System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 233 | 234 | 235 | CenterParent 236 | 237 | 238 | 2 239 | 240 | 241 | 312, 144 242 | 243 | 244 | $this 245 | 246 | 247 | buttonCancel 248 | 249 | 250 | Bottom, Right 251 | 252 | 253 | labelDescription 254 | 255 | 256 | Cancel 257 | 258 | 259 | 2 260 | 261 | 262 | 296, 105 263 | 264 | 265 | buttonOK 266 | 267 | 268 | 75, 23 269 | 270 | 271 | BottomLeft 272 | 273 | 274 | textBoxInput 275 | 276 | 277 | OK 278 | 279 | 280 | 1 281 | 282 | 283 | True 284 | 285 | -------------------------------------------------------------------------------- /Forms/FormVersion.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | TopRight 123 | 124 | 125 | 209, 118 126 | 127 | 128 | TopRight 129 | 130 | 131 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 132 | 133 | 134 | labelBuild 135 | 136 | 137 | 138 | 0 139 | 140 | 141 | $this 142 | 143 | 144 | FormVersion 145 | 146 | 147 | TopRight 148 | 149 | 150 | 180, 13 151 | 152 | 153 | System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 154 | 155 | 156 | $this 157 | 158 | 159 | 2 160 | 161 | 162 | 114, 63 163 | 164 | 165 | 166 | NoControl 167 | 168 | 169 | 6, 13 170 | 171 | 172 | 0 173 | 174 | 175 | 12, 12 176 | 177 | 178 | 114, 25 179 | 180 | 181 | NoControl 182 | 183 | 184 | pictureBoxK 185 | 186 | 187 | 188 | 189 | 190 | 5 191 | 192 | 193 | System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 194 | 195 | 196 | 0 197 | 198 | 199 | 180, 13 200 | 201 | 202 | 180, 13 203 | 204 | 205 | Version 206 | 207 | 208 | $this 209 | 210 | 211 | 1 212 | 213 | 214 | Close 215 | 216 | 217 | 3 218 | 219 | 220 | 296, 153 221 | 222 | 223 | $this 224 | 225 | 226 | System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 227 | 228 | 229 | TopRight 230 | 231 | 232 | labelCompany 233 | 234 | 235 | 312, 192 236 | 237 | 238 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 239 | 240 | 241 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 242 | 243 | 244 | 180, 13 245 | 246 | 247 | 248 | 249 | 250 | Tahoma, 8.25pt 251 | 252 | 253 | 254 | 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 333 | 334 | 335 | 336 | 114, 76 337 | 338 | 339 | Tahoma, 8.25pt, style=Underline 340 | 341 | 342 | CenterParent 343 | 344 | 345 | $this 346 | 347 | 348 | 312, 192 349 | 350 | 351 | 4 352 | 353 | 354 | 114, 12 355 | 356 | 357 | 0 358 | 359 | 360 | 96, 64 361 | 362 | 363 | 0 364 | 365 | 366 | 75, 23 367 | 368 | 369 | buttonClose 370 | 371 | 372 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 373 | 374 | 375 | Bottom, Right 376 | 377 | 378 | 1 379 | 380 | 381 | labelWebsite 382 | 383 | 384 | $this 385 | 386 | 387 | 0 388 | 389 | 390 | labelProduct 391 | 392 | 393 | True 394 | 395 | --------------------------------------------------------------------------------