diff --git a/cmonitor.viewer.server.win/MainForm.cs b/cmonitor.viewer.server.win/MainForm.cs index 799bf0f0..720ca06d 100644 --- a/cmonitor.viewer.server.win/MainForm.cs +++ b/cmonitor.viewer.server.win/MainForm.cs @@ -53,6 +53,7 @@ namespace cmonitor.viewer.server.win this.Visible = false; #endif + FireWallHelper.Write(Path.GetFileNameWithoutExtension(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)); CheckRunning(); if (shareMode == Mode.Client) @@ -119,25 +120,32 @@ namespace cmonitor.viewer.server.win } - RDPSession session; + private RDPSession session; private NotifyIcon notifyIcon; + private string invitationString; private void OpenShareDesktop() { notifyIcon = new NotifyIcon(); notifyIcon.Visible = true; notifyIcon.ContextMenuStrip = new ContextMenuStrip(); - notifyIcon.ContextMenuStrip.Items.Add("ˢ¹"); - notifyIcon.ContextMenuStrip.Items.Add("˳"); + //notifyIcon.ContextMenuStrip.Items.Add("连接串"); + notifyIcon.ContextMenuStrip.Items.Add("刷新共享"); + notifyIcon.ContextMenuStrip.Items.Add("退出"); notifyIcon.ContextMenuStrip.ItemClicked += (object sender, ToolStripItemClickedEventArgs e) => { - if (e.ClickedItem.Text == "˳") + + if (e.ClickedItem.Text == "退出") { CloseServer(); } - else if (e.ClickedItem.Text == "ˢ¹") + else if (e.ClickedItem.Text == "刷新共享") { NewShare(); } + else if (e.ClickedItem.Text == "连接串") + { + //MessageBox.Show(invitationString); + } }; NewShare(); } @@ -154,7 +162,7 @@ namespace cmonitor.viewer.server.win session.OnAttendeeConnected += Session_OnAttendeeConnected; session.Open(); IRDPSRAPIInvitation invitation = session.Invitations.CreateInvitation(guid, "snltty", "snltty", 1024); - string invitationString = invitation.ConnectionString; + invitationString = invitation.ConnectionString; /* XmlDocument xmlDoc = new XmlDocument(); @@ -169,13 +177,14 @@ namespace cmonitor.viewer.server.win Registry.SetValue("HKEY_CURRENT_USER\\SOFTWARE\\Cmonitor", "viewerConnectStr", invitationString); notifyIcon.Icon = Icon.FromHandle(Resources.logo_share_green.GetHicon()); - notifyIcon.Text = "ڹ"; + notifyIcon.Text = "正在共享桌面"; } catch (Exception ex) { Debug.WriteLine(ex + ""); + //MessageBox.Show(ex.Message); notifyIcon.Icon = Icon.FromHandle(Resources.logo_share_gray.GetHicon()); - notifyIcon.Text = "ʧ"; + notifyIcon.Text = "共享失败"; } }); } diff --git a/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml b/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml index 7c4a26d0..2399c31e 100644 --- a/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml +++ b/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml @@ -6,7 +6,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. Release Any CPU - ..\cmonitor.viewer.client.win\dist + D:\Desktop\cmonitor\cmonitor.viewer.server.win\bin\Release FileSystem <_TargetId>Folder net8.0-windows diff --git a/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml.user b/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml.user index a7cec857..a195084a 100644 --- a/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/cmonitor.viewer.server.win/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - True|2024-04-01T06:40:33.3491753Z;True|2024-04-01T14:34:23.8751731+08:00;True|2024-04-01T11:18:12.7770691+08:00;True|2024-04-01T11:15:15.7084207+08:00;True|2024-03-21T09:26:40.1376911+08:00;True|2024-03-21T09:24:13.2312644+08:00;True|2024-03-21T09:22:59.0517639+08:00; + True|2024-04-07T02:23:56.7276437Z;True|2024-04-07T10:01:21.9803124+08:00;True|2024-04-07T09:30:28.6448429+08:00;True|2024-04-01T14:40:33.3491753+08:00;True|2024-04-01T14:34:23.8751731+08:00;True|2024-04-01T11:18:12.7770691+08:00;True|2024-04-01T11:15:15.7084207+08:00;True|2024-03-21T09:26:40.1376911+08:00;True|2024-03-21T09:24:13.2312644+08:00;True|2024-03-21T09:22:59.0517639+08:00; \ No newline at end of file diff --git a/cmonitor/Program.cs b/cmonitor/Program.cs index 68ae78e5..61a0dc37 100644 --- a/cmonitor/Program.cs +++ b/cmonitor/Program.cs @@ -34,6 +34,8 @@ namespace cmonitor StartupTransfer.Use(serviceProvider, config, assemblies); + FireWallHelper.Write(Path.GetFileNameWithoutExtension(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)); + GCHelper.FlushMemory(); await Helper.Await(); } diff --git a/cmonitor/plugins/wlan/WlanStartup.cs b/cmonitor/plugins/wlan/WlanStartup.cs index 0286f742..243cac43 100644 --- a/cmonitor/plugins/wlan/WlanStartup.cs +++ b/cmonitor/plugins/wlan/WlanStartup.cs @@ -28,6 +28,7 @@ namespace cmonitor.plugins.wlan public void UseClient(ServiceProvider serviceProvider, Config config, Assembly[] assemblies) { + serviceProvider.GetServices(); } public void UseServer(ServiceProvider serviceProvider, Config config, Assembly[] assemblies) diff --git a/common.libs/FireWallHelper.cs b/common.libs/FireWallHelper.cs new file mode 100644 index 00000000..5fa94610 --- /dev/null +++ b/common.libs/FireWallHelper.cs @@ -0,0 +1,57 @@ +using System; + +namespace common.libs +{ + public static class FireWallHelper + { + public static void Write(string fileName) + { + if (OperatingSystem.IsWindows()) + { + Windows(fileName); + } + else if (OperatingSystem.IsLinux()) + { + Linux(fileName); + } + } + + private static void Linux(string fileName) + { + CommandHelper.Linux(string.Empty,new string[] { + $"firewall-cmd --permanent --new-service={fileName}", + $"firewall-cmd --permanent --service={fileName} --set-short=\"My Application {fileName}\"", + $"firewall-cmd --permanent --service={fileName} --set-description=\"Allow all ports for My Application {fileName}\"", + $"firewall-cmd --permanent --service={fileName} --add-port=0-65535/tcp", + $"firewall-cmd --permanent --service={fileName} --add-port=0-65535/udp", + $"firewall-cmd --permanent --add-service={fileName}", + $"firewall-cmd --reload", + }); + } + + private static void Windows(string fileName) + { + string content = $@"@echo off +cd ""%CD%"" +for /f ""tokens=4,5 delims=. "" %%a in ('ver') do if %%a%%b geq 60 goto new + +:old +cmd /c netsh firewall delete allowedprogram program=""%CD%\{fileName}.exe"" profile=ALL +cmd /c netsh firewall add allowedprogram program=""%CD%\{fileName}.exe"" name=""{fileName}"" ENABLE +cmd /c netsh firewall add allowedprogram program=""%CD%\{fileName}.exe"" name=""{fileName}"" ENABLE profile=ALL +goto end +:new +cmd /c netsh advfirewall firewall delete rule name=""{fileName}"" +cmd /c netsh advfirewall firewall add rule name=""{fileName}"" dir=in action=allow program=""%CD%\{fileName}.exe"" protocol=tcp enable=yes profile=public +cmd /c netsh advfirewall firewall add rule name=""{fileName}"" dir=in action=allow program=""%CD%\{fileName}.exe"" protocol=udp enable=yes profile=public +cmd /c netsh advfirewall firewall add rule name=""{fileName}"" dir=in action=allow program=""%CD%\{fileName}.exe"" protocol=tcp enable=yes profile=domain +cmd /c netsh advfirewall firewall add rule name=""{fileName}"" dir=in action=allow program=""%CD%\{fileName}.exe"" protocol=udp enable=yes profile=domain +cmd /c netsh advfirewall firewall add rule name=""{fileName}"" dir=in action=allow program=""%CD%\{fileName}.exe"" protocol=tcp enable=yes profile=private +cmd /c netsh advfirewall firewall add rule name=""{fileName}"" dir=in action=allow program=""%CD%\{fileName}.exe"" protocol=udp enable=yes profile=private +:end"; + System.IO.File.WriteAllText("firewall.bat", content); + CommandHelper.Execute("firewall.bat", string.Empty, new string[0]); + System.IO.File.Delete("firewall.bat"); + } + } +}