diff --git a/RevokeMsgPatcher.MultiInstance/FormMultiInstance.Designer.cs b/RevokeMsgPatcher.MultiInstance/FormMultiInstance.Designer.cs index 25dc1e9..fcba7de 100644 --- a/RevokeMsgPatcher.MultiInstance/FormMultiInstance.Designer.cs +++ b/RevokeMsgPatcher.MultiInstance/FormMultiInstance.Designer.cs @@ -37,13 +37,13 @@ this.lblProcNum = new System.Windows.Forms.Label(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); + this.textBox1 = new System.Windows.Forms.TextBox(); this.tabPage2 = new System.Windows.Forms.TabPage(); + this.lblHowToUse = new System.Windows.Forms.LinkLabel(); this.tabPage3 = new System.Windows.Forms.TabPage(); + this.label1 = new System.Windows.Forms.Label(); this.linkLabel1 = new System.Windows.Forms.LinkLabel(); this.label3 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.lblHowToUse = new System.Windows.Forms.LinkLabel(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage2.SuspendLayout(); @@ -52,7 +52,7 @@ // // btnStartTimer // - this.btnStartTimer.Location = new System.Drawing.Point(158, 46); + this.btnStartTimer.Location = new System.Drawing.Point(170, 46); this.btnStartTimer.Name = "btnStartTimer"; this.btnStartTimer.Size = new System.Drawing.Size(91, 23); this.btnStartTimer.TabIndex = 99; @@ -88,7 +88,7 @@ // btnStopTimer // this.btnStopTimer.Enabled = false; - this.btnStopTimer.Location = new System.Drawing.Point(158, 75); + this.btnStopTimer.Location = new System.Drawing.Point(170, 75); this.btnStopTimer.Name = "btnStopTimer"; this.btnStopTimer.Size = new System.Drawing.Size(91, 23); this.btnStopTimer.TabIndex = 98; @@ -99,7 +99,7 @@ // lblProcNum // this.lblProcNum.AutoSize = true; - this.lblProcNum.Location = new System.Drawing.Point(158, 23); + this.lblProcNum.Location = new System.Drawing.Point(170, 23); this.lblProcNum.Name = "lblProcNum"; this.lblProcNum.Size = new System.Drawing.Size(95, 12); this.lblProcNum.TabIndex = 20; @@ -114,7 +114,7 @@ this.tabControl1.Location = new System.Drawing.Point(0, 0); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(271, 146); + this.tabControl1.Size = new System.Drawing.Size(286, 146); this.tabControl1.TabIndex = 21; // // tabPage1 @@ -126,11 +126,22 @@ this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(263, 120); + this.tabPage1.Size = new System.Drawing.Size(278, 120); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "自动模式"; this.tabPage1.UseVisualStyleBackColor = true; // + // textBox1 + // + this.textBox1.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.textBox1.Location = new System.Drawing.Point(7, 14); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(157, 92); + this.textBox1.TabIndex = 22; + this.textBox1.Text = "1.使用方法:点击【启动多开】之后,就可以启动多个微信了。\r\n2.注意:启动多个微信频率太快时,可能会失败。"; + // // tabPage2 // this.tabPage2.Controls.Add(this.lblHowToUse); @@ -144,6 +155,17 @@ this.tabPage2.Text = "手动功能"; this.tabPage2.UseVisualStyleBackColor = true; // + // lblHowToUse + // + this.lblHowToUse.AutoSize = true; + this.lblHowToUse.Location = new System.Drawing.Point(96, 16); + this.lblHowToUse.Name = "lblHowToUse"; + this.lblHowToUse.Size = new System.Drawing.Size(65, 12); + this.lblHowToUse.TabIndex = 19; + this.lblHowToUse.TabStop = true; + this.lblHowToUse.Text = "如何使用?"; + this.lblHowToUse.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblHowToUse_LinkClicked); + // // tabPage3 // this.tabPage3.Controls.Add(this.label1); @@ -157,6 +179,15 @@ this.tabPage3.Text = "关于"; this.tabPage3.UseVisualStyleBackColor = true; // + // label1 + // + this.label1.Location = new System.Drawing.Point(23, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(221, 61); + this.label1.TabIndex = 17; + this.label1.Text = "本工具是\r\n【 PC版微信/QQ/TIM防撤回补丁】\r\n的额外产物\r\n更多信息可以在软件主页查看"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // // linkLabel1 // this.linkLabel1.AutoSize = true; @@ -176,42 +207,11 @@ this.label3.TabIndex = 15; this.label3.Text = "软件主页(开源):"; // - // textBox1 - // - this.textBox1.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.textBox1.Location = new System.Drawing.Point(7, 14); - this.textBox1.Multiline = true; - this.textBox1.Name = "textBox1"; - this.textBox1.ReadOnly = true; - this.textBox1.Size = new System.Drawing.Size(144, 92); - this.textBox1.TabIndex = 22; - this.textBox1.Text = "1.使用方法:点击【启动多开】之后,就可以启动多个微信了。\r\n2.注意:启动多个微信频率太快时,可能会失败。"; - // - // label1 - // - this.label1.Location = new System.Drawing.Point(23, 14); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(221, 61); - this.label1.TabIndex = 17; - this.label1.Text = "本工具是\r\n【 PC版微信/QQ/TIM防撤回补丁】\r\n的额外产物\r\n更多信息可以在软件主页查看"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // lblHowToUse - // - this.lblHowToUse.AutoSize = true; - this.lblHowToUse.Location = new System.Drawing.Point(96, 16); - this.lblHowToUse.Name = "lblHowToUse"; - this.lblHowToUse.Size = new System.Drawing.Size(65, 12); - this.lblHowToUse.TabIndex = 19; - this.lblHowToUse.TabStop = true; - this.lblHowToUse.Text = "如何使用?"; - this.lblHowToUse.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblHowToUse_LinkClicked); - // // FormMultiInstance // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(271, 146); + this.ClientSize = new System.Drawing.Size(286, 146); this.Controls.Add(this.tabControl1); this.MaximizeBox = false; this.Name = "FormMultiInstance"; diff --git a/RevokeMsgPatcher.MultiInstance/FormMultiInstance.cs b/RevokeMsgPatcher.MultiInstance/FormMultiInstance.cs index a08656e..7fb2f12 100644 --- a/RevokeMsgPatcher.MultiInstance/FormMultiInstance.cs +++ b/RevokeMsgPatcher.MultiInstance/FormMultiInstance.cs @@ -10,6 +10,14 @@ namespace RevokeMsgPatcher.MultiInstance public FormMultiInstance() { InitializeComponent(); + + // 标题加上版本号 + string currentVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + if (currentVersion.Length > 3) + { + currentVersion = " v" + currentVersion.Substring(0, 3); + } + this.Text += currentVersion; } private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) @@ -106,7 +114,7 @@ namespace RevokeMsgPatcher.MultiInstance private void lblHowToUse_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher"); + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/tree/master/RevokeMsgPatcher.MultiInstance"); } private void FormMultiInstance_FormClosed(object sender, FormClosedEventArgs e) diff --git a/RevokeMsgPatcher.MultiInstance/Properties/AssemblyInfo.cs b/RevokeMsgPatcher.MultiInstance/Properties/AssemblyInfo.cs index ed57d68..53d6d58 100644 --- a/RevokeMsgPatcher.MultiInstance/Properties/AssemblyInfo.cs +++ b/RevokeMsgPatcher.MultiInstance/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 // 方法是按如下所示使用“*”: : // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("0.1")] +[assembly: AssemblyFileVersion("0.1")] diff --git a/RevokeMsgPatcher.MultiInstance/README.md b/RevokeMsgPatcher.MultiInstance/README.md new file mode 100644 index 0000000..dcda306 --- /dev/null +++ b/RevokeMsgPatcher.MultiInstance/README.md @@ -0,0 +1,24 @@ +## 一个通用的微信多开工具 + +此工具可以无视微信版本进行多开。 + +**如果你曾使用过“PC版微信/QQ/TIM防撤回补丁”,并对微信安装了防撤回/多开的补丁,此时微信本身已经支持多开,请勿重复使用本工具!!!** + +## 🔨使用方法 + +自动模式(一般用户使用这个模式即可): + +点击【启动多开】之后,就可以启动多个微信了。 + +注意:启动多个微信频率太快时,可能会失败。 + +手动模式: + +关闭所有微信进程:功能就是关闭所有微信进程,微信在某种启动失败的情况下会残留进程(无界面),一般不会遇到这种情况。 + +清理所有微信互斥句柄:功能就是把所有微信判断是否多开的标志全部清理掉,实现多开。如果只使用这个按钮实现多开的话,每次开启一个微信之后都要点一下这个按钮。 + +## 📄License +GPLv3 + +![](https://raw.githubusercontent.com/huiyadanli/RevokeMsgPatcher/master/Images/give_a_star.png) diff --git a/RevokeMsgPatcher/FormMain.Designer.cs b/RevokeMsgPatcher/FormMain.Designer.cs index 77715c1..b97b271 100644 --- a/RevokeMsgPatcher/FormMain.Designer.cs +++ b/RevokeMsgPatcher/FormMain.Designer.cs @@ -56,6 +56,7 @@ this.关于ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.作者ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.主页ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.通用微信多开工具ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // @@ -232,17 +233,18 @@ // this.高级ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.特征码防撤回强制ToolStripMenuItem, - this.手动输入补丁信息ToolStripMenuItem}); + this.手动输入补丁信息ToolStripMenuItem, + this.通用微信多开工具ToolStripMenuItem}); this.高级ToolStripMenuItem.Name = "高级ToolStripMenuItem"; this.高级ToolStripMenuItem.Size = new System.Drawing.Size(44, 21); this.高级ToolStripMenuItem.Text = "高级"; - this.高级ToolStripMenuItem.Visible = false; // // 特征码防撤回强制ToolStripMenuItem // this.特征码防撤回强制ToolStripMenuItem.Name = "特征码防撤回强制ToolStripMenuItem"; this.特征码防撤回强制ToolStripMenuItem.Size = new System.Drawing.Size(196, 22); this.特征码防撤回强制ToolStripMenuItem.Text = "特征码防撤回(强制)"; + this.特征码防撤回强制ToolStripMenuItem.Visible = false; this.特征码防撤回强制ToolStripMenuItem.Click += new System.EventHandler(this.特征码防撤回强制ToolStripMenuItem_Click); // // 手动输入补丁信息ToolStripMenuItem @@ -250,6 +252,7 @@ this.手动输入补丁信息ToolStripMenuItem.Name = "手动输入补丁信息ToolStripMenuItem"; this.手动输入补丁信息ToolStripMenuItem.Size = new System.Drawing.Size(196, 22); this.手动输入补丁信息ToolStripMenuItem.Text = "手动输入补丁信息"; + this.手动输入补丁信息ToolStripMenuItem.Visible = false; this.手动输入补丁信息ToolStripMenuItem.Click += new System.EventHandler(this.手动输入补丁信息ToolStripMenuItem_Click); // // 帮助ToolStripMenuItem @@ -266,28 +269,28 @@ // 支持版本ToolStripMenuItem // this.支持版本ToolStripMenuItem.Name = "支持版本ToolStripMenuItem"; - this.支持版本ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.支持版本ToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.支持版本ToolStripMenuItem.Text = "支持版本"; this.支持版本ToolStripMenuItem.Click += new System.EventHandler(this.支持版本ToolStripMenuItem_Click); // // 常见问题ToolStripMenuItem // this.常见问题ToolStripMenuItem.Name = "常见问题ToolStripMenuItem"; - this.常见问题ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.常见问题ToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.常见问题ToolStripMenuItem.Text = "常见问题"; this.常见问题ToolStripMenuItem.Click += new System.EventHandler(this.常见问题ToolStripMenuItem_Click); // // 防撤回原理ToolStripMenuItem // this.防撤回原理ToolStripMenuItem.Name = "防撤回原理ToolStripMenuItem"; - this.防撤回原理ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.防撤回原理ToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.防撤回原理ToolStripMenuItem.Text = "防撤回原理"; this.防撤回原理ToolStripMenuItem.Click += new System.EventHandler(this.防撤回原理ToolStripMenuItem_Click); // // 完整文档ToolStripMenuItem // this.完整文档ToolStripMenuItem.Name = "完整文档ToolStripMenuItem"; - this.完整文档ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.完整文档ToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.完整文档ToolStripMenuItem.Text = "完整文档"; this.完整文档ToolStripMenuItem.Click += new System.EventHandler(this.完整文档ToolStripMenuItem_Click); // @@ -303,17 +306,24 @@ // 作者ToolStripMenuItem // this.作者ToolStripMenuItem.Name = "作者ToolStripMenuItem"; - this.作者ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.作者ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.作者ToolStripMenuItem.Text = "关于"; this.作者ToolStripMenuItem.Click += new System.EventHandler(this.关于ToolStripMenuItem_Click); // // 主页ToolStripMenuItem // this.主页ToolStripMenuItem.Name = "主页ToolStripMenuItem"; - this.主页ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.主页ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.主页ToolStripMenuItem.Text = "软件主页"; this.主页ToolStripMenuItem.Click += new System.EventHandler(this.主页ToolStripMenuItem_Click); // + // 通用微信多开工具ToolStripMenuItem + // + this.通用微信多开工具ToolStripMenuItem.Name = "通用微信多开工具ToolStripMenuItem"; + this.通用微信多开工具ToolStripMenuItem.Size = new System.Drawing.Size(196, 22); + this.通用微信多开工具ToolStripMenuItem.Text = "通用微信多开工具"; + this.通用微信多开工具ToolStripMenuItem.Click += new System.EventHandler(this.通用微信多开工具ToolStripMenuItem_Click); + // // FormMain // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); @@ -377,6 +387,7 @@ private System.Windows.Forms.ToolStripMenuItem 完整文档ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 手动输入补丁信息ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 特征码防撤回强制ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 通用微信多开工具ToolStripMenuItem; } } diff --git a/RevokeMsgPatcher/FormMain.cs b/RevokeMsgPatcher/FormMain.cs index f59906d..e53d797 100644 --- a/RevokeMsgPatcher/FormMain.cs +++ b/RevokeMsgPatcher/FormMain.cs @@ -2,6 +2,7 @@ using RevokeMsgPatcher.Modifier; using RevokeMsgPatcher.Utils; using System; +using System.Diagnostics; using System.Drawing; using System.IO; using System.Web.Script.Serialization; @@ -274,7 +275,7 @@ namespace RevokeMsgPatcher DialogResult dr = MessageBox.Show(tips, "当前支持防撤回的版本", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK && needUpdate) { - System.Diagnostics.Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/releases"); + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/releases"); } } @@ -352,27 +353,27 @@ namespace RevokeMsgPatcher private void 主页ToolStripMenuItem_Click(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher"); + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher"); } private void 支持版本ToolStripMenuItem_Click(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki/%E7%89%88%E6%9C%AC%E6%94%AF%E6%8C%81"); + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki/%E7%89%88%E6%9C%AC%E6%94%AF%E6%8C%81"); } private void 常见问题ToolStripMenuItem_Click(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98"); + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98"); } private void 防撤回原理ToolStripMenuItem_Click(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki#%E5%8E%9F%E7%90%86"); + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki#%E5%8E%9F%E7%90%86"); } private void 完整文档ToolStripMenuItem_Click(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki"); + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/wiki"); } private void 特征码防撤回强制ToolStripMenuItem_Click(object sender, EventArgs e) @@ -384,5 +385,24 @@ namespace RevokeMsgPatcher { MessageBox.Show("作者正在考虑是否要加上这个功能,该功能可能有安全风险,暂时不加入", "手动输入补丁信息"); } + + private void 通用微信多开工具ToolStripMenuItem_Click(object sender, EventArgs e) + { + string path = Path.Combine(Application.StartupPath, "RevokeMsgPatcher.MultiInstance.exe"); + if (File.Exists(path)) + { + Process p = new Process(); + p.StartInfo.FileName = path; + p.Start(); + } + else + { + DialogResult dr = MessageBox.Show($"未在同级目录下找到“微信通用多开工具”,位置:{path},点击“确定”访问微信通用多开工具的主页,你可以在主页上下载到这个工具。", "未找到程序", MessageBoxButtons.OKCancel); + if (dr == DialogResult.OK) + { + Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/tree/master/RevokeMsgPatcher.MultiInstance"); + } + } + } } }