├── .gitignore ├── AppMonitor ├── AppMonitor.csproj ├── Bex │ ├── AppConfig.cs │ ├── Command.cs │ ├── ControlUtil.cs │ ├── DefaultConfig.cs │ ├── FILEATTR.cs │ ├── HelpData.cs │ ├── HttpUtil.cs │ ├── KeysUtil.cs │ ├── ShellForm.cs │ ├── SkinUtil.cs │ ├── Utils.cs │ └── Win32.cs ├── Form1.Designer.cs ├── Form1.cs ├── Form1.resx ├── Froms │ ├── AboutForm.Designer.cs │ ├── AboutForm.cs │ ├── AboutForm.resx │ ├── ConditionTaskForm.Designer.cs │ ├── ConditionTaskForm.cs │ ├── ConditionTaskForm.resx │ ├── CustomScriptForm.Designer.cs │ ├── CustomScriptForm.cs │ ├── CustomScriptForm.resx │ ├── FileAttrForm.Designer.cs │ ├── FileAttrForm.cs │ ├── FileAttrForm.resx │ ├── FullScreenMonitorForm.Designer.cs │ ├── FullScreenMonitorForm.cs │ ├── FullScreenMonitorForm.resx │ ├── IceMonitorForm.Designer.cs │ ├── IceMonitorForm.cs │ ├── IceMonitorForm.resx │ ├── InputForm.Designer.cs │ ├── InputForm.cs │ ├── InputForm.resx │ ├── InputSshPwdForm.Designer.cs │ ├── InputSshPwdForm.cs │ ├── InputSshPwdForm.resx │ ├── LockForm.Designer.cs │ ├── LockForm.cs │ ├── LockForm.resx │ ├── MonitorBaseForm.Designer.cs │ ├── MonitorBaseForm.cs │ ├── MonitorBaseForm.resx │ ├── MonitorForm.Designer.cs │ ├── MonitorForm.cs │ ├── MonitorForm.resx │ ├── MonitorItemForm.Designer.cs │ ├── MonitorItemForm.cs │ ├── MonitorItemForm.resx │ ├── NginxMappingItemForm.Designer.cs │ ├── NginxMappingItemForm.cs │ ├── NginxMappingItemForm.resx │ ├── NginxMonitorForm.Designer.cs │ ├── NginxMonitorForm.cs │ ├── NginxMonitorForm.resx │ ├── QuickCommandManageForm.Designer.cs │ ├── QuickCommandManageForm.cs │ ├── QuickCommandManageForm.resx │ ├── SessionManageForm.Designer.cs │ ├── SessionManageForm.cs │ ├── SessionManageForm.resx │ ├── SettingForm.Designer.cs │ ├── SettingForm.cs │ ├── SettingForm.resx │ ├── ShellHelpForm.Designer.cs │ ├── ShellHelpForm.cs │ ├── ShellHelpForm.resx │ ├── SpringBootMonitorForm.Designer.cs │ ├── SpringBootMonitorForm.cs │ ├── SpringBootMonitorForm.resx │ ├── SshSettingForm.Designer.cs │ ├── SshSettingForm.cs │ ├── SshSettingForm.resx │ ├── TextEditorForm.Designer.cs │ ├── TextEditorForm.cs │ ├── TextEditorForm.resx │ ├── TextFindForm.Designer.cs │ ├── TextFindForm.cs │ ├── TextFindForm.resx │ ├── TimedTaskForm.Designer.cs │ ├── TimedTaskForm.cs │ ├── TimedTaskForm.resx │ ├── TomcatMonitorForm.Designer.cs │ ├── TomcatMonitorForm.cs │ └── TomcatMonitorForm.resx ├── MainForm.Designer.cs ├── MainForm.cs ├── MainForm.resx ├── MessageUtils.cs ├── Model │ ├── CmdShell.cs │ ├── ListBoxItem.cs │ ├── MonitorItem.cs │ ├── SshUser.cs │ └── TransferItem.cs ├── Plugin │ ├── CentralServerConfigForm.Designer.cs │ ├── CentralServerConfigForm.cs │ ├── CentralServerConfigForm.resx │ ├── CustomShellForm.Designer.cs │ ├── CustomShellForm.cs │ ├── CustomShellForm.resx │ ├── IceDeployVersionForm.Designer.cs │ ├── IceDeployVersionForm.cs │ ├── IceDeployVersionForm.resx │ ├── MyProgressMonitor.cs │ ├── SftpForm.Designer.cs │ ├── SftpForm.cs │ ├── SftpForm.resx │ ├── SftpLinuxForm.Designer.cs │ ├── SftpLinuxForm.cs │ ├── SftpLinuxForm.resx │ ├── SftpWinForm.cs │ ├── YmlFormatUtil.cs │ ├── YmlItem.cs │ ├── YmlNodeForm.Designer.cs │ ├── YmlNodeForm.cs │ ├── YmlNodeForm.resx │ ├── sftpWinForm.Designer.cs │ └── sftpWinForm.resx ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── Circle_72px0.png │ ├── Circle_72px1.png │ ├── Circle_72px2.png │ ├── MB_light_16px.png │ ├── Save_all_16px.png │ ├── Terminal_24px.png │ ├── closeConn.png │ ├── copy.png │ ├── custom_24px.png │ ├── encoding.png │ ├── filen_16px.png │ ├── filen_64px.png │ ├── find.png │ ├── folder_16px.png │ ├── folder_64px.png │ ├── font.png │ ├── ftp.png │ ├── ftp_64px.ico │ ├── fullScreen.png │ ├── gray_light_16px.png │ ├── gray_light_48.png │ ├── green_light_16px.png │ ├── green_light_48.png │ ├── help.png │ ├── loading2.gif │ ├── locks.png │ ├── lookAttr.png │ ├── monitor.png │ ├── monitor48.png │ ├── newSession.png │ ├── one_16px.png │ ├── openSession.png │ ├── org_light_48.png │ ├── pageDown.png │ ├── pageHover.png │ ├── pageNomal.png │ ├── parent_24px.png │ ├── paste.png │ ├── reConn.png │ ├── refresh_24px.png │ ├── remove_16px.png │ ├── setting.png │ ├── skin_02.png │ ├── skin_04.png │ ├── skin_12.png │ ├── ssh.png │ ├── ssh48.png │ ├── sx_16px.png │ ├── sxzy_16px.png │ ├── theme.png │ ├── users.png │ ├── view_16px.png │ ├── wait063.gif │ ├── write_16px.png │ ├── yellow_light_16px.png │ ├── yxkj.png │ └── zy_16px.png ├── TextBoxWriter.cs ├── app.config ├── bin │ ├── Debug │ │ └── 新建文本文档.txt │ └── Release │ │ ├── AMSftp.exe │ │ ├── AMSftp.exe.config │ │ ├── AMSftp.pdb │ │ ├── AMSftp.vshost.exe │ │ ├── AMSftp.vshost.exe.config │ │ ├── AMSftp.vshost.exe.manifest │ │ ├── AppMonitor.exe │ │ ├── AppMonitor.exe.config │ │ ├── AppMonitor.pdb │ │ ├── AppMonitor.vshost.exe │ │ ├── AppMonitor.vshost.exe.config │ │ ├── AppMonitor.vshost.exe.manifest │ │ ├── CSkin.dll │ │ ├── DiffieHellman.dll │ │ ├── FastColoredTextBox.dll │ │ ├── Newtonsoft.Json.dll │ │ ├── Org.Mentalis.Security.dll │ │ ├── System.Runtime.InteropServices.APIs.dll │ │ ├── System.Windows.Forms.TreeListView.dll │ │ ├── TabStrip.dll │ │ ├── Tamir.SharpSSH.dll │ │ ├── YSTools.dll │ │ ├── conf │ │ ├── __build.sh │ │ ├── __ctl.sh │ │ ├── conf.json │ │ └── shell_temp.json │ │ ├── help │ │ ├── sftp.html │ │ └── ssh.html │ │ ├── log4net.dll │ │ ├── session │ │ └── session0.json │ │ ├── skin │ │ ├── skin_01.png │ │ ├── skin_02.png │ │ ├── skin_03.png │ │ ├── skin_04.png │ │ ├── skin_05.png │ │ ├── skin_06.png │ │ ├── skin_07.png │ │ ├── skin_08.png │ │ ├── skin_09.png │ │ ├── skin_10.png │ │ ├── skin_11.png │ │ ├── skin_12.png │ │ ├── skin_13.png │ │ ├── skin_14.png │ │ ├── skin_17.gif │ │ └── skin_18.png │ │ └── temp │ │ └── 1.txt ├── ftp_64px.ico ├── obj │ ├── Debug │ │ ├── AppMonitor.Form1.resources │ │ ├── AppMonitor.Froms.AboutForm.resources │ │ ├── AppMonitor.Froms.ConditionTaskForm.resources │ │ ├── AppMonitor.Froms.CustomScriptForm.resources │ │ ├── AppMonitor.Froms.FileAttrForm.resources │ │ ├── AppMonitor.Froms.FullScreenMonitorForm.resources │ │ ├── AppMonitor.Froms.IceMonitorForm.resources │ │ ├── AppMonitor.Froms.InputForm.resources │ │ ├── AppMonitor.Froms.InputSshPwdForm.resources │ │ ├── AppMonitor.Froms.LockForm.resources │ │ ├── AppMonitor.Froms.MonitorBaseForm.resources │ │ ├── AppMonitor.Froms.MonitorForm.resources │ │ ├── AppMonitor.Froms.MonitorItemForm.resources │ │ ├── AppMonitor.Froms.NginxMappingItemForm.resources │ │ ├── AppMonitor.Froms.NginxMonitorForm.resources │ │ ├── AppMonitor.Froms.QuickCommandManageForm.resources │ │ ├── AppMonitor.Froms.SessionManageForm.resources │ │ ├── AppMonitor.Froms.SettingForm.resources │ │ ├── AppMonitor.Froms.ShellHelpForm.resources │ │ ├── AppMonitor.Froms.SpringBootMonitorForm.resources │ │ ├── AppMonitor.Froms.SshSettingForm.resources │ │ ├── AppMonitor.Froms.TextEditorForm.resources │ │ ├── AppMonitor.Froms.TextFindForm.resources │ │ ├── AppMonitor.Froms.TimedTaskForm.resources │ │ ├── AppMonitor.Froms.TomcatMonitorForm.resources │ │ ├── AppMonitor.MainForm.resources │ │ ├── AppMonitor.Plugin.CentralServerConfigForm.resources │ │ ├── AppMonitor.Plugin.CustomShellForm.resources │ │ ├── AppMonitor.Plugin.SftpForm.resources │ │ ├── AppMonitor.Plugin.SftpLinuxForm.resources │ │ ├── AppMonitor.Plugin.SftpWinForm.resources │ │ ├── AppMonitor.Plugin.YmlNodeForm.resources │ │ ├── AppMonitor.Properties.Resources.resources │ │ ├── AppMonitor.csproj.FileListAbsolute.txt │ │ ├── AppMonitor.csproj.GenerateResource.Cache │ │ ├── AppMonitor.csprojResolveAssemblyReference.cache │ │ ├── AppMonitor.exe │ │ ├── AppMonitor.pdb │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ └── TempPE │ │ │ └── Properties.Resources.Designer.cs.dll │ └── Release │ │ ├── AppMonitor.Form1.resources │ │ ├── AppMonitor.Froms.AboutForm.resources │ │ ├── AppMonitor.Froms.ConditionTaskForm.resources │ │ ├── AppMonitor.Froms.CustomScriptForm.resources │ │ ├── AppMonitor.Froms.FileAttrForm.resources │ │ ├── AppMonitor.Froms.FullScreenMonitorForm.resources │ │ ├── AppMonitor.Froms.IceMonitorForm.resources │ │ ├── AppMonitor.Froms.InputForm.resources │ │ ├── AppMonitor.Froms.InputSshPwdForm.resources │ │ ├── AppMonitor.Froms.LockForm.resources │ │ ├── AppMonitor.Froms.MonitorBaseForm.resources │ │ ├── AppMonitor.Froms.MonitorForm.resources │ │ ├── AppMonitor.Froms.MonitorItemForm.resources │ │ ├── AppMonitor.Froms.NginxMappingItemForm.resources │ │ ├── AppMonitor.Froms.NginxMonitorForm.resources │ │ ├── AppMonitor.Froms.QuickCommandManageForm.resources │ │ ├── AppMonitor.Froms.SessionManageForm.resources │ │ ├── AppMonitor.Froms.SettingForm.resources │ │ ├── AppMonitor.Froms.ShellHelpForm.resources │ │ ├── AppMonitor.Froms.SpringBootMonitorForm.resources │ │ ├── AppMonitor.Froms.SshSettingForm.resources │ │ ├── AppMonitor.Froms.TextEditorForm.resources │ │ ├── AppMonitor.Froms.TextFindForm.resources │ │ ├── AppMonitor.Froms.TimedTaskForm.resources │ │ ├── AppMonitor.Froms.TomcatMonitorForm.resources │ │ ├── AppMonitor.MainForm.resources │ │ ├── AppMonitor.Plugin.CentralServerConfigForm.resources │ │ ├── AppMonitor.Plugin.CustomShellForm.resources │ │ ├── AppMonitor.Plugin.IceDeployVersionForm.resources │ │ ├── AppMonitor.Plugin.SftpForm.resources │ │ ├── AppMonitor.Plugin.SftpLinuxForm.resources │ │ ├── AppMonitor.Plugin.SftpWinForm.resources │ │ ├── AppMonitor.Plugin.YmlNodeForm.resources │ │ ├── AppMonitor.Properties.Resources.resources │ │ ├── AppMonitor.csproj.FileListAbsolute.txt │ │ ├── AppMonitor.csproj.GenerateResource.Cache │ │ ├── AppMonitor.csprojResolveAssemblyReference.cache │ │ ├── AppMonitor.exe │ │ ├── AppMonitor.pdb │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ └── TempPE │ │ └── Properties.Resources.Designer.cs.dll ├── qd64.ico └── ssh.ico ├── LICENSE ├── README.md ├── cssh.sln ├── cssh.suo └── cssh.v12.suo /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | -------------------------------------------------------------------------------- /AppMonitor/Bex/Command.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Bex 7 | { 8 | public class Command 9 | { 10 | public static CmdResult run(String cmd) 11 | { 12 | CmdResult result = new CmdResult(); 13 | System.Diagnostics.Process p = new System.Diagnostics.Process(); 14 | p.StartInfo.FileName = "cmd.exe"; 15 | p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动 16 | p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息 17 | p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息 18 | p.StartInfo.RedirectStandardError = true;//重定向标准错误输出 19 | p.StartInfo.CreateNoWindow = true;//不显示程序窗口 20 | p.Start();//启动程序 21 | 22 | //向cmd窗口发送输入信息 23 | p.StandardInput.WriteLine(cmd + "&exit"); 24 | 25 | p.StandardInput.AutoFlush = true; 26 | //p.StandardInput.WriteLine("exit"); 27 | //向标准输入写入要执行的命令。这里使用&是批处理命令的符号,表示前面一个命令不管是否执行成功都执行后面(exit)命令,如果不执行exit命令,后面调用ReadToEnd()方法会假死 28 | //同类的符号还有&&和||前者表示必须前一个命令执行成功才会执行后面的命令,后者表示必须前一个命令执行失败才会执行后面的命令 29 | 30 | //获取cmd窗口的输出信息 31 | result.result = p.StandardOutput.ReadToEnd(); 32 | result.error = p.StandardError.ReadToEnd(); 33 | 34 | p.WaitForExit();//等待程序执行完退出进程 35 | p.Close(); 36 | 37 | return result; 38 | } 39 | 40 | } 41 | 42 | public class CmdResult { 43 | public String result {get; set;} 44 | 45 | public String error {get; set;} 46 | 47 | public bool isSuccess() 48 | { 49 | return result != null && result.Length > 1; 50 | } 51 | 52 | public bool isFailed() 53 | { 54 | return (error != null && error.Length > 1) && (result == null || result.Length < 1); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /AppMonitor/Bex/ControlUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading; 6 | using System.Windows.Forms; 7 | 8 | namespace AppMonitor.Bex 9 | { 10 | public class ControlUtil 11 | { 12 | 13 | public static void delayHide(Control control, int millis) 14 | { 15 | ThreadPool.QueueUserWorkItem((a) => 16 | { 17 | control.BeginInvoke((MethodInvoker)delegate() 18 | { 19 | Thread.Sleep(millis); 20 | 21 | control.Visible = false; 22 | }); 23 | }); 24 | } 25 | 26 | public static void delayClearText(DelayDelegate dele, int millis) 27 | { 28 | ThreadPool.QueueUserWorkItem((a) => 29 | { 30 | Thread.Sleep(millis); 31 | dele(); 32 | }); 33 | } 34 | 35 | } 36 | 37 | public delegate void DelayDelegate(); 38 | } 39 | -------------------------------------------------------------------------------- /AppMonitor/Bex/DefaultConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Bex 7 | { 8 | public class DefaultConfig 9 | { 10 | public static string SHELL_1 = "ps -ef | grep tomcat&"; 11 | public static string SHELL_2 = "ps -ef | grep java&"; 12 | public static string SHELL_3 = "tailf ../logs/[name].{date}.log"; 13 | public static string SHELL_4 = "scp [user]@[host]:[filepath] [filepath]"; 14 | public static string SHELL_5 = "rm -rf [file/dir]"; 15 | 16 | 17 | public static void InitDefaultShellList(List shellList) 18 | { 19 | if (!shellList.Contains(SHELL_1)) 20 | { 21 | shellList.Add(SHELL_1); 22 | } 23 | if (!shellList.Contains(SHELL_2)) 24 | { 25 | shellList.Add(SHELL_2); 26 | } 27 | if (!shellList.Contains(SHELL_3)) 28 | { 29 | shellList.Add(SHELL_3); 30 | } 31 | if (!shellList.Contains(SHELL_4)) 32 | { 33 | shellList.Add(SHELL_4); 34 | } 35 | if (!shellList.Contains(SHELL_5)) 36 | { 37 | shellList.Add(SHELL_5); 38 | } 39 | 40 | AppConfig.Instance.SaveConfig(2); 41 | } 42 | 43 | public static void UpdateShellListItem(List shellList, int index, string cmd) 44 | { 45 | if (index < shellList.Count) 46 | { 47 | shellList[index] = cmd; 48 | } 49 | else if (!shellList.Contains(cmd)) 50 | { 51 | shellList.Add(cmd); 52 | } 53 | 54 | AppConfig.Instance.SaveConfig(2); 55 | } 56 | 57 | public static void RemoveShellListItem(List shellList, int index) 58 | { 59 | if (index < shellList.Count) 60 | { 61 | shellList.RemoveAt(index); 62 | } 63 | AppConfig.Instance.SaveConfig(2); 64 | } 65 | 66 | 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /AppMonitor/Bex/FILEATTR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Runtime.InteropServices; 5 | using System.Text; 6 | 7 | namespace AppMonitor.Bex 8 | { 9 | [StructLayout(LayoutKind.Sequential)] 10 | public struct SHELLEXECUTEINFO 11 | { 12 | public int cbSize; 13 | public uint fMask; 14 | public IntPtr hwnd; 15 | [MarshalAs(UnmanagedType.LPStr)] 16 | public string lpVerb; 17 | [MarshalAs(UnmanagedType.LPStr)] 18 | public string lpFile; 19 | [MarshalAs(UnmanagedType.LPStr)] 20 | public string lpParameters; 21 | [MarshalAs(UnmanagedType.LPStr)] 22 | public string lpDirectory; 23 | public int nShow; 24 | public IntPtr hInstApp; 25 | public IntPtr lpIDList; 26 | [MarshalAs(UnmanagedType.LPStr)] 27 | public string lpClass; 28 | public IntPtr hkeyClass; 29 | public uint dwHotKey; 30 | public IntPtr hIcon; 31 | public IntPtr hProcess; 32 | } 33 | 34 | public class FileAttr 35 | { 36 | private const int SW_SHOW = 5; 37 | private const uint SEE_MASK_INVOKEIDLIST = 12; 38 | [DllImport("shell32.dll")] 39 | static extern bool ShellExecuteEx(ref SHELLEXECUTEINFO lpExecInfo); 40 | 41 | public static void ShowFileProperties(string Filename) 42 | { 43 | SHELLEXECUTEINFO info = new SHELLEXECUTEINFO(); 44 | info.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(info); 45 | info.lpVerb = "properties"; 46 | info.lpFile = Filename; 47 | info.nShow = SW_SHOW; 48 | info.fMask = SEE_MASK_INVOKEIDLIST; 49 | ShellExecuteEx(ref info); 50 | } 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /AppMonitor/Bex/HelpData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Bex 7 | { 8 | public class HelpData 9 | { 10 | public static String SFTP_HELP = 11 | " Available commands:\n" + 12 | " * means unimplemented command.\n" + 13 | "cd path Change remote directory to 'path'\n" + 14 | "lcd path Change local directory to 'path'\n" + 15 | "chgrp grp path Change group of file 'path' to 'grp'\n" + 16 | "chmod mode path Change permissions of file 'path' to 'mode'\n" + 17 | "chown own path Change owner of file 'path' to 'own'\n" + 18 | "help Display this help text\n" + 19 | "get remote-path [local-path] Download file\n" + 20 | "get-resume remote-path [local-path] Resume to download file.\n" + 21 | "get-append remote-path [local-path] Append remote file to local file\n" + 22 | "*lls [ls-options [path]] Display local directory listing\n" + 23 | "ln oldpath newpath Symlink remote file\n" + 24 | "*lmkdir path Create local directory\n" + 25 | "lpwd Print local working directory\n" + 26 | "ls [path] Display remote directory listing\n" + 27 | "*lumask umask Set local umask to 'umask'\n" + 28 | "mkdir path Create remote directory\n" + 29 | "put local-path [remote-path] Upload file\n" + 30 | "put-resume local-path [remote-path] Resume to upload file\n" + 31 | "put-append local-path [remote-path] Append local file to remote file.\n" + 32 | "pwd Display remote working directory\n" + 33 | "stat path Display info about path\n" + 34 | "exit Quit sftp\n" + 35 | "quit Quit sftp\n" + 36 | "rename oldpath newpath Rename remote file\n" + 37 | "rmdir path Remove remote directory\n" + 38 | "rm path Delete remote file\n" + 39 | "symlink oldpath newpath Symlink remote file\n" + 40 | "rekey Key re-exchanging\n" + 41 | "compression level Packet compression will be enabled\n" + 42 | "version Show SFTP version\n" + 43 | "? Synonym for help"; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /AppMonitor/Bex/KeysUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Bex 7 | { 8 | public class KeysUtil 9 | { 10 | public static string PassKey = "Ikd#%_hGb2._d2fj4asiu&uyg78D78dP"; 11 | 12 | public static Dictionary KEY_DICT = new Dictionary() 13 | { 14 | {"k192", "`"}, {"K192", "~"}, 15 | {"k49", "1"}, {"K49", "!"}, 16 | {"k50", "2"}, {"K50", "@"}, 17 | {"k51", "3"}, {"K51", "#"}, 18 | {"k52", "4"}, {"K52", "$"}, 19 | {"k53", "5"}, {"K53", "%"}, 20 | {"k54", "6"}, {"K54", "^"}, 21 | {"k55", "7"}, {"K55", "&"}, 22 | {"k56", "8"}, {"K56", "*"}, 23 | {"k57", "9"}, {"K57", "("}, 24 | {"k48", "0"}, {"K48", ")"}, 25 | {"k189", "-"}, {"K189", "_"}, 26 | {"k187", "="}, {"K187", "+"}, 27 | {"k220", "\\"}, {"K220", "|"}, 28 | {"k81", "q"}, {"K81", "Q"}, 29 | {"k87", "w"}, {"K87", "W"}, 30 | {"k69", "e"}, {"K69", "E"}, 31 | {"k82", "r"}, {"K82", "R"}, 32 | {"k84", "t"}, {"K84", "T"}, 33 | {"k89", "y"}, {"K89", "Y"}, 34 | {"k85", "u"}, {"K85", "U"}, 35 | {"k73", "i"}, {"K73", "I"}, 36 | {"k79", "o"}, {"K79", "O"}, 37 | {"k80", "p"}, {"K80", "P"}, 38 | {"k219", "["}, {"K219", "{"}, 39 | {"k221", "]"}, {"K221", "}"}, 40 | {"k65", "a"}, {"K65", "A"}, 41 | {"k83", "s"}, {"K83", "S"}, 42 | {"k68", "d"}, {"K68", "D"}, 43 | {"k70", "f"}, {"K70", "F"}, 44 | {"k71", "g"}, {"K71", "G"}, 45 | {"k72", "h"}, {"K72", "H"}, 46 | {"k74", "j"}, {"K74", "J"}, 47 | {"k75", "k"}, {"K75", "K"}, 48 | {"k76", "l"}, {"K76", "L"}, 49 | {"k186", ";"}, {"K186", ":"}, 50 | {"k222", "'"}, {"K222", "\""}, 51 | {"k90", "z"}, {"K90", "Z"}, 52 | {"k88", "x"}, {"K88", "X"}, 53 | {"k67", "c"}, {"K67", "C"}, 54 | {"k86", "v"}, {"K86", "V"}, 55 | {"k66", "b"}, {"K66", "B"}, 56 | {"k78", "n"}, {"K78", "N"}, 57 | {"k77", "m"}, {"K77", "M"}, 58 | {"k188", ","}, {"K188", "<"}, 59 | {"k190", "."}, {"K190", ">"}, 60 | {"k191", "/"}, {"K191", "?"}, 61 | {"k32", ""}, {"K32", ""}, 62 | {"k111", "/"}, {"K111", "/"}, 63 | {"k106", "*"}, {"K106", "*"}, 64 | {"k109", "-"}, {"K109", "-"}, 65 | {"k103", "7"}, {"K103", ""}, 66 | {"k104", "8"}, {"K104", ""}, 67 | {"k105", "9"}, {"K105", ""}, 68 | {"k100", "4"}, {"K100", ""}, 69 | {"k101", "5"}, {"K101", ""}, 70 | {"k102", "6"}, {"K102", ""}, 71 | {"k107", "+"}, {"K107", "+"}, 72 | {"k97", "1"}, {"K97", ""}, 73 | {"k98", "2"}, {"K98", ""}, 74 | {"k99", "3"}, {"K99", ""}, 75 | {"k96", "0"}, {"K96", ""}, 76 | {"k110", "."}, {"K110", ""} 77 | }; 78 | 79 | public static String getKeyChar(int keyValue, bool shift = false) 80 | { 81 | string chars = ""; 82 | string c = "k" + keyValue; 83 | bool caps = Win32.CapsLockStatus; 84 | if(caps || shift){ 85 | c = "k" + keyValue; 86 | } 87 | if (KEY_DICT.ContainsKey(c)) 88 | { 89 | chars = KEY_DICT[c]; 90 | } 91 | return chars; 92 | } 93 | 94 | 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /AppMonitor/Bex/ShellForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Froms; 2 | using AppMonitor.Plugin; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | 8 | namespace AppMonitor.Bex 9 | { 10 | public class ShellForm 11 | { 12 | MonitorForm monitorForm = null; 13 | SftpLinuxForm sftpForm = null; 14 | public ShellForm(MonitorForm monitorForm) 15 | { 16 | this.monitorForm = monitorForm; 17 | } 18 | 19 | public ShellForm(SftpLinuxForm sftpForm) 20 | { 21 | this.sftpForm = sftpForm; 22 | } 23 | 24 | public Object RunSftpShell(string cmd, string src, string dst, bool isview = true, bool log = true) 25 | { 26 | if(null != monitorForm){ 27 | return monitorForm.RunSftpShell(string.Format("{0} {1} {2}", cmd, src, dst), isview, log); 28 | } 29 | else if (null != sftpForm) 30 | { 31 | return sftpForm.downloadFile(src, dst); 32 | } 33 | return null; 34 | } 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /AppMonitor/Bex/SkinUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Drawing; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace AppMonitor.Bex 10 | { 11 | public class SkinUtil 12 | { 13 | 14 | public static void SetFormSkin(Form form) 15 | { 16 | int index = AppConfig.Instance.MConfig.SkinIndex; 17 | DirectoryInfo dire = new DirectoryInfo(MainForm.APP_DIR + "\\skin"); 18 | if (dire.Exists) 19 | { 20 | FileInfo[] files = dire.GetFiles(); 21 | int i = 0; 22 | foreach (FileInfo file in files) 23 | { 24 | if(index == i){ 25 | form.BackgroundImage = new Bitmap(file.FullName); 26 | form.BackgroundImageLayout = ImageLayout.Stretch; 27 | break; 28 | } 29 | i++; 30 | } 31 | } 32 | } 33 | 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /AppMonitor/Bex/Utils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | namespace AppMonitor.Bex 8 | { 9 | public class Utils 10 | { 11 | 12 | public static MonitorItemConfig getMonitorItemConfig(List monitorConfigList, string uuid) 13 | { 14 | MonitorItemConfig itemConfig = null; 15 | foreach (var item in monitorConfigList) 16 | { 17 | if (null != item.spring && item.spring.Uuid == uuid) 18 | { 19 | itemConfig = item; 20 | break; 21 | } 22 | else if (null != item.tomcat && item.tomcat.Uuid == uuid) 23 | { 24 | itemConfig = item; 25 | break; 26 | } 27 | else if (null != item.nginx && item.nginx.Uuid == uuid) 28 | { 29 | itemConfig = item; 30 | break; 31 | } 32 | else if (null != item.ice && item.ice.Uuid == uuid) 33 | { 34 | itemConfig = item; 35 | break; 36 | } 37 | } 38 | return itemConfig; 39 | } 40 | 41 | public static int getMonitorItemIndex(MonitorItemConfig itemConfig) 42 | { 43 | int index = -1; 44 | if (itemConfig.nginx != null) 45 | { 46 | index = itemConfig.nginx.Index; 47 | } 48 | else if (itemConfig.spring != null) 49 | { 50 | index = itemConfig.spring.Index; 51 | } 52 | else if (itemConfig.tomcat != null) 53 | { 54 | index = itemConfig.tomcat.Index; 55 | } 56 | else if (itemConfig.ice != null) 57 | { 58 | index = itemConfig.ice.Index; 59 | } 60 | return index; 61 | } 62 | 63 | public static string getFileSize(long size) 64 | { 65 | if (size < 1024) 66 | { 67 | return size + "Bytes"; 68 | } 69 | else if (size < 1024 * 1024) 70 | { 71 | return (size / 1024) + "KB"; 72 | } 73 | else if (size < 1024 * 1024 * 1024) 74 | { 75 | return (size / (1024 * 1024)) + "MB"; 76 | } 77 | else if ((size / 1024) < 1024 * 1024 * 1024) 78 | { 79 | return (size / (1024 * 1024 * 1024)) + "GB"; 80 | } 81 | else if ((size / (1024 * 1024)) < 1024 * 1024 * 1024) 82 | { 83 | return ((size / (1024 * 1024) / 1024)) + "TB"; 84 | } 85 | else 86 | { 87 | return ""; 88 | } 89 | } 90 | 91 | public static string CalculaSpeed(long startByte, long endByte, long max, int start, int end) 92 | { 93 | float time = (end - start)/1000.0f; 94 | return getFileSize((long)((endByte - startByte) / time)) + "/S"; 95 | } 96 | 97 | public static string CalculaTimeLeft(long startByte, long endByte, long max, int start, int end) 98 | { 99 | int time = (end - start); 100 | long millis = ((time * (max - endByte)) / (endByte - startByte)) / 1000; 101 | long s = millis % 60; 102 | long m = millis / 60; 103 | long h = m / 60; 104 | m = m % 60; 105 | string timeLeft = (h < 10 ? "0" : "") + h + ":" + (m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s; 106 | return timeLeft; 107 | } 108 | 109 | public static string getLinuxName(string name) 110 | { 111 | if(name.Contains(" ")){ 112 | return "\"" + name + "\""; 113 | } 114 | return name; 115 | } 116 | 117 | public static bool isLinuxRootPath(string pathname) 118 | { 119 | return (pathname == "." || pathname == ".."); 120 | } 121 | 122 | public static string getLinuxPathDir(string remotePath) 123 | { 124 | string dir = "/"; 125 | int index = remotePath.LastIndexOf("/"); 126 | if (index > 0) 127 | { 128 | dir = remotePath.Substring(0, index); 129 | } 130 | return dir; 131 | } 132 | 133 | /// 134 | /// 判断目标是文件夹还是目录(目录包括磁盘) 135 | /// 136 | /// 文件名 137 | /// 138 | public static bool IsDir(string filepath) 139 | { 140 | FileInfo fi = new FileInfo(filepath); 141 | if ((fi.Attributes & FileAttributes.Directory) != 0) 142 | return true; 143 | else 144 | { 145 | return false; 146 | } 147 | } 148 | 149 | public static void CopyDir(string fromDir, string toDir) 150 | { 151 | if (!Directory.Exists(fromDir)) 152 | return; 153 | 154 | if (!Directory.Exists(toDir)) 155 | { 156 | Directory.CreateDirectory(toDir); 157 | } 158 | 159 | string[] files = Directory.GetFiles(fromDir); 160 | foreach (string formFileName in files) 161 | { 162 | string fileName = Path.GetFileName(formFileName); 163 | string toFileName = Path.Combine(toDir, fileName); 164 | File.Copy(formFileName, toFileName); 165 | } 166 | string[] fromDirs = Directory.GetDirectories(fromDir); 167 | foreach (string fromDirName in fromDirs) 168 | { 169 | string dirName = Path.GetFileName(fromDirName); 170 | string toDirName = Path.Combine(toDir, dirName); 171 | CopyDir(fromDirName, toDirName); 172 | } 173 | } 174 | 175 | public static void createParentDir(DirectoryInfo dire) 176 | { 177 | if(!dire.Exists){ 178 | if(dire.Parent.Exists){ 179 | dire.Create(); 180 | } 181 | else 182 | { 183 | createParentDir(dire.Parent); 184 | } 185 | } 186 | } 187 | 188 | public static string PathEndAddSlash(string path) 189 | { 190 | if(!path.EndsWith("/")){ 191 | path += "/"; 192 | } 193 | return path; 194 | } 195 | 196 | public static string PathWinToLinux(string path) 197 | { 198 | return path.Replace("\\", "/"); 199 | } 200 | 201 | } 202 | } 203 | -------------------------------------------------------------------------------- /AppMonitor/Bex/Win32.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Runtime.InteropServices; 5 | using System.Text; 6 | 7 | namespace AppMonitor.Bex 8 | { 9 | public class Win32 10 | { 11 | [DllImport("user32.dll", EntryPoint = "GetKeyboardState")] 12 | public static extern int GetKeyboardState(byte[] pbKeyState); 13 | 14 | 15 | public static bool CapsLockStatus 16 | { 17 | get 18 | { 19 | byte[] bs = new byte[256]; 20 | GetKeyboardState(bs); 21 | return (bs[0x14] == 1); 22 | } 23 | } 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /AppMonitor/Form1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Diagnostics; 6 | using System.Drawing; 7 | using System.IO; 8 | using System.Runtime.InteropServices; 9 | using System.Text; 10 | using System.Threading; 11 | using System.Windows.Forms; 12 | using Tamir.SharpSsh; 13 | using Tamir.SharpSsh.java.io; 14 | using Tamir.SharpSsh.jsch; 15 | using Tamir.Streams; 16 | 17 | namespace AppMonitor 18 | { 19 | public partial class Form1 : Form 20 | { 21 | SshShell shell; 22 | Channel m_Channel; 23 | string cmd = ""; 24 | 25 | public Form1() 26 | { 27 | InitializeComponent(); 28 | } 29 | 30 | private void button1_Click(object sender, EventArgs e) 31 | { 32 | try 33 | { 34 | string host = tb_host.Text; 35 | string acc = tb_acc.Text; 36 | string pwd = tb_pwd.Text; 37 | 38 | shell = new SshShell(host, acc, pwd); 39 | 40 | //shell.RedirectToConsole(); 41 | 42 | shell.Connect(22); 43 | 44 | m_Channel = shell.getChannel(); 45 | 46 | string line = null; 47 | ThreadPool.QueueUserWorkItem((a) => 48 | { 49 | while (shell.ShellOpened) 50 | { 51 | System.Threading.Thread.Sleep(100); 52 | 53 | while ((line = m_Channel.GetMessage()) != null) 54 | { 55 | ShowLogger(line); 56 | } 57 | } 58 | 59 | Console.Write("Disconnecting..."); 60 | shell.Close(); 61 | Console.WriteLine("OK"); 62 | }); 63 | 64 | } 65 | catch (Exception ex) 66 | { 67 | Console.WriteLine(ex); 68 | } 69 | 70 | } 71 | 72 | private void Form1_Load(object sender, EventArgs e) 73 | { 74 | button1_Click(null, null); 75 | } 76 | 77 | public void ShowLogger(string line) 78 | { 79 | this.BeginInvoke((MethodInvoker)delegate() 80 | { 81 | line = line.Replace("\r\r", ""); 82 | if(!line.EndsWith("\n")){ 83 | line += "\n"; 84 | } 85 | List msgList = new List(); 86 | if(line.StartsWith(cmd + "\r\n")){ 87 | string str1 = line.Substring(0, (cmd + "\r\n").Length); 88 | msgList.Add(new Message() { 89 | Text = str1, 90 | Color = Color.Red 91 | }); 92 | MessageUtils.FormatMessage(msgList, line.Substring((cmd + "\r\n").Length)); 93 | } 94 | else 95 | { 96 | MessageUtils.FormatMessage(msgList, line); 97 | } 98 | foreach (Message msg in msgList) 99 | { 100 | if(msg != null && msg.Text != null){ 101 | rtb_log.SelectionColor = msg.Color; 102 | rtb_log.SelectionBackColor = msg.BackColor; 103 | rtb_log.AppendText(msg.Text); 104 | } 105 | } 106 | 107 | rtb_log.Select(rtb_log.TextLength, 0); 108 | rtb_log.Focus(); 109 | //滚动到控件光标处 110 | rtb_log.ScrollToCaret(); 111 | tb_shell.Focus(); 112 | }); 113 | } 114 | 115 | private void run_Click(object sender, EventArgs e) 116 | { 117 | cmd = tb_shell.Text; 118 | byte[] byteArray = System.Text.Encoding.Default.GetBytes(cmd + "\n"); 119 | 120 | m_Channel.WriteBytes(byteArray); 121 | 122 | tb_shell.Text = ""; 123 | } 124 | 125 | private void tb_shell_KeyUp(object sender, KeyEventArgs e) 126 | { 127 | if(e.KeyCode == Keys.Enter){ 128 | run_Click(null, null); 129 | } 130 | } 131 | 132 | private void Form1_FormClosed(object sender, FormClosedEventArgs e) 133 | { 134 | System.Environment.Exit(0); 135 | } 136 | 137 | } 138 | 139 | } 140 | 141 | -------------------------------------------------------------------------------- /AppMonitor/Form1.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 | -------------------------------------------------------------------------------- /AppMonitor/Froms/AboutForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Diagnostics; 7 | using System.Drawing; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Windows.Forms; 11 | 12 | namespace AppMonitor.Froms 13 | { 14 | public partial class AboutForm : CCWin.Skin_Metro 15 | { 16 | public AboutForm() 17 | { 18 | InitializeComponent(); 19 | SkinUtil.SetFormSkin(this); 20 | } 21 | 22 | private void AboutForm_Load(object sender, EventArgs e) 23 | { 24 | 25 | } 26 | 27 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 28 | { 29 | Process.Start("http://blog.yinsin.net"); 30 | } 31 | 32 | private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 33 | { 34 | Process.Start("http://v.yinsin.net"); 35 | } 36 | 37 | private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 38 | { 39 | Process.Start("http://www.yinsin.net"); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /AppMonitor/Froms/CustomScriptForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | 11 | namespace AppMonitor.Froms 12 | { 13 | public partial class CustomScriptForm : CCWin.Skin_Metro 14 | { 15 | SessionConfig config; 16 | int index = 999999; 17 | 18 | public CustomScriptForm(SessionConfig _config, int _inx = 999999) 19 | { 20 | InitializeComponent(); 21 | SkinUtil.SetFormSkin(this); 22 | config = _config; 23 | index = _inx; 24 | } 25 | 26 | private void CustomScriptForm_Load(object sender, EventArgs e) 27 | { 28 | if (index != 999999 && index < config.ShellList.Count) 29 | { 30 | string shell = config.ShellList[index]; 31 | if(shell.EndsWith("&")){ 32 | shell = shell.Substring(0, shell.Length - 1); 33 | cb_cr.Checked = true; 34 | } 35 | stb_shell.Text = shell; 36 | } 37 | } 38 | 39 | private void button2_Click(object sender, EventArgs e) 40 | { 41 | // 取消 42 | this.Close(); 43 | } 44 | 45 | private void button1_Click(object sender, EventArgs e) 46 | { 47 | // 保存 48 | string cmd = stb_shell.Text; 49 | if(string.IsNullOrWhiteSpace(cmd) || cmd.Length < 2){ 50 | label_info.Text = "请输入正确的Shell命令"; 51 | return; 52 | } 53 | if(cb_cr.Checked){ 54 | cmd += "&"; 55 | } 56 | label_info.Text = ""; 57 | 58 | DefaultConfig.UpdateShellListItem(config.ShellList, index, cmd); 59 | 60 | this.Close(); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /AppMonitor/Froms/FileAttrForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using AppMonitor.Nodel; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.ComponentModel; 6 | using System.Data; 7 | using System.Drawing; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Windows.Forms; 11 | using Tamir.SharpSsh.jsch; 12 | 13 | namespace AppMonitor.Froms 14 | { 15 | public partial class FileAttrForm : CCWin.Skin_Metro 16 | { 17 | ChannelSftp.LsEntry file = null; 18 | SshUser user = null; 19 | string dir = null; 20 | 21 | public FileAttrForm(ChannelSftp.LsEntry file, SshUser user, String dir) 22 | { 23 | InitializeComponent(); 24 | SkinUtil.SetFormSkin(this); 25 | this.file = file; 26 | this.user = user; 27 | this.dir = dir; 28 | } 29 | 30 | private void FileAttrForm_Load(object sender, EventArgs e) 31 | { 32 | this.Text = file.getFilename() + " 的属性"; 33 | if(file.getAttrs().isDir()){ 34 | text_type.Text = "文件夹"; 35 | icon.BackgroundImage = Properties.Resources.folder_64px; 36 | } 37 | else 38 | { 39 | text_type.Text = getFileExt(file.getFilename()); 40 | icon.Image = Properties.Resources.filen_64px; 41 | } 42 | text_name.Text = file.getFilename(); 43 | text_size.Text = Utils.getFileSize(file.getAttrs().getSize()); 44 | text_host.Text = user.Host; 45 | text_location.Text = dir + file.getFilename(); 46 | 47 | text_modified.Text = file.getAttrs().getMtimeString(); 48 | text_owner.Text = getFileOwner(file.getLongname(), 3); 49 | text_group.Text = getFileOwner(file.getLongname(), 4); 50 | text_permiss.Text = file.getAttrs().getPermissionsString(); 51 | 52 | } 53 | 54 | private string getFileExt(string filename) 55 | { 56 | string ext = ""; 57 | if (null != filename && filename.IndexOf(".") != -1) 58 | { 59 | ext = filename.Substring(filename.LastIndexOf(".") + 1).ToUpper() + "文件"; 60 | } 61 | return ext; 62 | } 63 | 64 | private string getFileOwner(string str, int size) 65 | { 66 | string user = ""; 67 | if (null != str && str.Length > 5 && str.IndexOf(" ") != -1) 68 | { 69 | string[] arrs = str.Split(' '); 70 | if (arrs.Length > size) 71 | { 72 | int i = 0, j = 0; 73 | foreach (string s in arrs) 74 | { 75 | if (!string.IsNullOrWhiteSpace(s)) 76 | { 77 | i++; 78 | if (i >= size) 79 | { 80 | user = arrs[j]; 81 | break; 82 | } 83 | } 84 | j++; 85 | } 86 | } 87 | } 88 | return user; 89 | } 90 | 91 | private void button1_Click(object sender, EventArgs e) 92 | { 93 | this.Close(); 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /AppMonitor/Froms/FullScreenMonitorForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace AppMonitor.Froms 2 | { 3 | partial class FullScreenMonitorForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FullScreenMonitorForm)); 32 | this.SuspendLayout(); 33 | // 34 | // FullScreenMonitorForm 35 | // 36 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 37 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 38 | this.ClientSize = new System.Drawing.Size(797, 478); 39 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 40 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 41 | this.Name = "FullScreenMonitorForm"; 42 | this.Text = "FullScreenMonitorForm"; 43 | this.TopMost = true; 44 | this.Load += new System.EventHandler(this.FullScreenMonitorForm_Load); 45 | this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.FullScreenMonitorForm_KeyUp); 46 | this.ResumeLayout(false); 47 | 48 | } 49 | 50 | #endregion 51 | } 52 | } -------------------------------------------------------------------------------- /AppMonitor/Froms/FullScreenMonitorForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace AppMonitor.Froms 11 | { 12 | public partial class FullScreenMonitorForm : Form 13 | { 14 | MonitorForm form = null; 15 | public FullScreenMonitorForm(MonitorForm _form) 16 | { 17 | form = _form; 18 | InitializeComponent(); 19 | } 20 | 21 | private void FullScreenMonitorForm_KeyUp(object sender, KeyEventArgs e) 22 | { 23 | if(e.KeyCode == Keys.Escape){ 24 | Exit(); 25 | } 26 | } 27 | 28 | private void FullScreenMonitorForm_Load(object sender, EventArgs e) 29 | { 30 | int SH = Screen.PrimaryScreen.Bounds.Height; 31 | int SW = Screen.PrimaryScreen.Bounds.Width; 32 | 33 | this.Size = new Size(SW, SH); 34 | this.Location = new Point(0, 0); 35 | 36 | this.Controls.Add(form); 37 | } 38 | 39 | public void Exit(){ 40 | this.Controls.Remove(form); 41 | this.Close(); 42 | form.ExitFullScreen(); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /AppMonitor/Froms/InputForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace AppMonitor.Froms 2 | { 3 | partial class InputForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InputForm)); 32 | this.input = new CCWin.SkinControl.SkinTextBox(); 33 | this.btn_sure = new System.Windows.Forms.Button(); 34 | this.btn_cancel = new System.Windows.Forms.Button(); 35 | this.info = new System.Windows.Forms.Label(); 36 | this.SuspendLayout(); 37 | // 38 | // input 39 | // 40 | this.input.BackColor = System.Drawing.Color.Transparent; 41 | this.input.DownBack = null; 42 | this.input.Icon = null; 43 | this.input.IconIsButton = false; 44 | this.input.IconMouseState = CCWin.SkinClass.ControlState.Normal; 45 | this.input.IsPasswordChat = '\0'; 46 | this.input.IsSystemPasswordChar = false; 47 | this.input.Lines = new string[0]; 48 | this.input.Location = new System.Drawing.Point(18, 97); 49 | this.input.Margin = new System.Windows.Forms.Padding(0); 50 | this.input.MaxLength = 32767; 51 | this.input.MinimumSize = new System.Drawing.Size(28, 28); 52 | this.input.MouseBack = null; 53 | this.input.MouseState = CCWin.SkinClass.ControlState.Normal; 54 | this.input.Multiline = false; 55 | this.input.Name = "input"; 56 | this.input.NormlBack = null; 57 | this.input.Padding = new System.Windows.Forms.Padding(5); 58 | this.input.ReadOnly = false; 59 | this.input.ScrollBars = System.Windows.Forms.ScrollBars.None; 60 | this.input.Size = new System.Drawing.Size(415, 28); 61 | // 62 | // 63 | // 64 | this.input.SkinTxt.BorderStyle = System.Windows.Forms.BorderStyle.None; 65 | this.input.SkinTxt.Dock = System.Windows.Forms.DockStyle.Fill; 66 | this.input.SkinTxt.Font = new System.Drawing.Font("微软雅黑", 9.75F); 67 | this.input.SkinTxt.Location = new System.Drawing.Point(5, 5); 68 | this.input.SkinTxt.Name = "BaseText"; 69 | this.input.SkinTxt.Size = new System.Drawing.Size(405, 18); 70 | this.input.SkinTxt.TabIndex = 0; 71 | this.input.SkinTxt.WaterColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(127)))), ((int)(((byte)(127))))); 72 | this.input.SkinTxt.WaterText = ""; 73 | this.input.TabIndex = 0; 74 | this.input.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; 75 | this.input.WaterColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(127)))), ((int)(((byte)(127))))); 76 | this.input.WaterText = ""; 77 | this.input.WordWrap = true; 78 | // 79 | // btn_sure 80 | // 81 | this.btn_sure.Location = new System.Drawing.Point(373, 33); 82 | this.btn_sure.Name = "btn_sure"; 83 | this.btn_sure.Size = new System.Drawing.Size(60, 25); 84 | this.btn_sure.TabIndex = 1; 85 | this.btn_sure.Text = "确定"; 86 | this.btn_sure.UseVisualStyleBackColor = true; 87 | this.btn_sure.Click += new System.EventHandler(this.btn_sure_Click); 88 | // 89 | // btn_cancel 90 | // 91 | this.btn_cancel.Location = new System.Drawing.Point(373, 62); 92 | this.btn_cancel.Name = "btn_cancel"; 93 | this.btn_cancel.Size = new System.Drawing.Size(60, 25); 94 | this.btn_cancel.TabIndex = 2; 95 | this.btn_cancel.Text = "取消"; 96 | this.btn_cancel.UseVisualStyleBackColor = true; 97 | this.btn_cancel.Click += new System.EventHandler(this.btn_cancel_Click); 98 | // 99 | // info 100 | // 101 | this.info.Location = new System.Drawing.Point(21, 37); 102 | this.info.Name = "info"; 103 | this.info.Size = new System.Drawing.Size(328, 50); 104 | this.info.TabIndex = 3; 105 | // 106 | // InputForm 107 | // 108 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 109 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 110 | this.BackColor = System.Drawing.SystemColors.Control; 111 | this.BackgroundImage = global::AppMonitor.Properties.Resources.skin_12; 112 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 113 | this.CaptionFont = new System.Drawing.Font("微软雅黑", 9F); 114 | this.ClientSize = new System.Drawing.Size(451, 142); 115 | this.Controls.Add(this.info); 116 | this.Controls.Add(this.btn_cancel); 117 | this.Controls.Add(this.btn_sure); 118 | this.Controls.Add(this.input); 119 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 120 | this.MaximizeBox = false; 121 | this.MaximumSize = new System.Drawing.Size(451, 142); 122 | this.MinimizeBox = false; 123 | this.MinimumSize = new System.Drawing.Size(451, 142); 124 | this.Name = "InputForm"; 125 | this.Text = "请输入"; 126 | this.TitleCenter = false; 127 | this.TitleColor = System.Drawing.Color.White; 128 | this.Load += new System.EventHandler(this.InputForm_Load); 129 | this.ResumeLayout(false); 130 | 131 | } 132 | 133 | #endregion 134 | 135 | private CCWin.SkinControl.SkinTextBox input; 136 | private System.Windows.Forms.Button btn_sure; 137 | private System.Windows.Forms.Button btn_cancel; 138 | private System.Windows.Forms.Label info; 139 | } 140 | } -------------------------------------------------------------------------------- /AppMonitor/Froms/InputForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | 11 | namespace AppMonitor.Froms 12 | { 13 | public partial class InputForm : CCWin.Skin_Metro 14 | { 15 | private FormResult result; 16 | public delegate void FormResult(string result); 17 | public InputForm() 18 | { 19 | InitializeComponent(); 20 | SkinUtil.SetFormSkin(this); 21 | } 22 | 23 | public InputForm(string msg, string value, FormResult result) : this() 24 | { 25 | this.info.Text = msg; 26 | this.input.Text = value == null ? "" : value; 27 | this.input.WaterText = msg; 28 | this.result = result; 29 | } 30 | 31 | private void InputForm_Load(object sender, EventArgs e) 32 | { 33 | this.input.SkinTxt.KeyUp += SkinTxt_KeyUp; 34 | } 35 | 36 | void SkinTxt_KeyUp(object sender, KeyEventArgs e) 37 | { 38 | if(e.KeyCode == Keys.Enter){ 39 | btn_sure_Click(null, null); 40 | } 41 | } 42 | 43 | private void btn_sure_Click(object sender, EventArgs e) 44 | { 45 | if(result != null){ 46 | result(this.input.Text); 47 | } 48 | this.Close(); 49 | } 50 | 51 | private void btn_cancel_Click(object sender, EventArgs e) 52 | { 53 | this.Close(); 54 | } 55 | 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /AppMonitor/Froms/InputSshPwdForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | 11 | namespace AppMonitor.Froms 12 | { 13 | public partial class InputSshPwdForm : CCWin.Skin_Metro 14 | { 15 | public delegate void WritePwd(string pwd, bool remenber); 16 | private WritePwd pwdDelegate; 17 | private string host = ""; 18 | private string userName = ""; 19 | 20 | public InputSshPwdForm(WritePwd _pwd, string host, string userName) 21 | { 22 | InitializeComponent(); 23 | SkinUtil.SetFormSkin(this); 24 | this.pwdDelegate = _pwd; 25 | this.host = host; 26 | this.userName = userName; 27 | } 28 | 29 | private void InputSshPwdForm_Load(object sender, EventArgs e) 30 | { 31 | 32 | this.Text = this.host; 33 | label_name.Text = string.Format("请输入[{0}]的密码:", this.userName); 34 | 35 | password.SkinTxt.KeyUp += SkinTxt_KeyUp; 36 | } 37 | 38 | void SkinTxt_KeyUp(object sender, KeyEventArgs e) 39 | { 40 | if(e.KeyCode == Keys.Enter){ 41 | string pwd = password.Text; 42 | if(pwd.Length > 0){ 43 | this.Close(); 44 | 45 | pwdDelegate(pwd, cb_remenber.Checked); 46 | } 47 | } 48 | } 49 | 50 | private void button1_Click(object sender, EventArgs e) 51 | { 52 | string pwd = password.Text; 53 | if (pwd.Length > 0) 54 | { 55 | this.Close(); 56 | 57 | pwdDelegate(pwd, cb_remenber.Checked); 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /AppMonitor/Froms/LockForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | 11 | namespace AppMonitor.Froms 12 | { 13 | public partial class LockForm : CCWin.Skin_Metro 14 | { 15 | public string lockPwd = null; 16 | public LockForm() 17 | { 18 | InitializeComponent(); 19 | SkinUtil.SetFormSkin(this); 20 | } 21 | 22 | private void LockForm_Load(object sender, EventArgs e) 23 | { 24 | 25 | } 26 | 27 | public void showForm() 28 | { 29 | if (MainForm.isLock) 30 | { 31 | button1.Visible = true; 32 | button2.Visible = true; 33 | button3.Visible = false; 34 | button4.Visible = false; 35 | } 36 | else 37 | { 38 | button1.Visible = false; 39 | button2.Visible = false; 40 | button3.Visible = true; 41 | button4.Visible = true; 42 | } 43 | } 44 | 45 | private void button2_Click(object sender, EventArgs e) 46 | { 47 | // 退出软件 48 | System.Environment.Exit(0); 49 | } 50 | 51 | private void button1_Click(object sender, EventArgs e) 52 | { 53 | string pwd = stb_pwd.Text; 54 | if(pwd == lockPwd){ 55 | Program.MAIN.unLockForm(); 56 | } 57 | else 58 | { 59 | MessageBox.Show(this, "密码不正确"); 60 | } 61 | } 62 | 63 | private void button4_Click(object sender, EventArgs e) 64 | { 65 | // 锁定 66 | string pwd = stb_pwd.Text; 67 | if (string.IsNullOrWhiteSpace(pwd)) 68 | { 69 | MessageBox.Show(this, "请输入解锁密码,并牢记"); 70 | } 71 | else 72 | { 73 | lockPwd = pwd; 74 | stb_pwd.Text = ""; 75 | 76 | Program.MAIN.Lock(); 77 | } 78 | } 79 | 80 | private void button3_Click(object sender, EventArgs e) 81 | { 82 | // 取消 83 | this.Close(); 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /AppMonitor/Froms/MonitorBaseForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace AppMonitor.Froms 2 | { 3 | partial class MonitorBaseForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.SuspendLayout(); 32 | // 33 | // MonitorBaseForm 34 | // 35 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 36 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 37 | this.ClientSize = new System.Drawing.Size(284, 261); 38 | this.Name = "MonitorBaseForm"; 39 | this.Text = "MonitorBaseForm"; 40 | this.Load += new System.EventHandler(this.MonitorBaseForm_Load); 41 | this.ResumeLayout(false); 42 | 43 | } 44 | 45 | #endregion 46 | } 47 | } -------------------------------------------------------------------------------- /AppMonitor/Froms/MonitorBaseForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace AppMonitor.Froms 11 | { 12 | public partial class MonitorBaseForm : Form 13 | { 14 | public MonitorBaseForm() 15 | { 16 | InitializeComponent(); 17 | } 18 | 19 | private void MonitorBaseForm_Load(object sender, EventArgs e) 20 | { 21 | 22 | } 23 | 24 | public virtual void CloseForm() 25 | { 26 | this.Close(); 27 | } 28 | 29 | public virtual void ReflushMonitorItem() 30 | { 31 | } 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /AppMonitor/Froms/MonitorBaseForm.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /AppMonitor/Froms/NginxMappingItemForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using AppMonitor.Model; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.ComponentModel; 6 | using System.Data; 7 | using System.Drawing; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Windows.Forms; 11 | 12 | namespace AppMonitor.Froms 13 | { 14 | public partial class NginxMappingItemForm : CCWin.Skin_Metro 15 | { 16 | NginxMonitorUrl pro = null; 17 | MonitorItemConfig itemConfig = null; 18 | SessionConfig seConfig; 19 | public NginxMappingItemForm(SessionConfig seConfig, MonitorItemConfig itemConfig) 20 | { 21 | InitializeComponent(); 22 | SkinUtil.SetFormSkin(this); 23 | this.itemConfig = itemConfig; 24 | this.seConfig = seConfig; 25 | } 26 | 27 | private void NginxMappingItemForm_Load(object sender, EventArgs e) 28 | { 29 | if(pro == null){ 30 | stb_url.Text = string.Format("http://{0}", this.seConfig.Host); 31 | stb_host.Text = "http://ip:port"; 32 | cb_check.Checked = true; 33 | } 34 | } 35 | 36 | public void SetNginxMonitorUrl(NginxMonitorUrl pro) 37 | { 38 | this.pro = pro; 39 | 40 | stb_url.Text = pro.url; 41 | stb_host.Text = pro.host; 42 | cb_check.Checked = pro.check; 43 | 44 | } 45 | 46 | private void button1_Click(object sender, EventArgs e) 47 | { 48 | bool isnew = false; 49 | if(this.pro == null){ 50 | pro = new NginxMonitorUrl(); 51 | pro.RunStatus = RunState.NoCheck; 52 | isnew = true; 53 | } 54 | pro.url = stb_url.Text; 55 | pro.host = stb_host.Text; 56 | pro.check = cb_check.Checked; 57 | 58 | if(isnew){ 59 | itemConfig.nginx.MonitorList.Add(pro); 60 | } 61 | 62 | this.Close(); 63 | } 64 | 65 | private void button2_Click(object sender, EventArgs e) 66 | { 67 | this.Close(); 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /AppMonitor/Froms/SettingForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.IO; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Windows.Forms; 11 | 12 | namespace AppMonitor.Froms 13 | { 14 | public partial class SettingForm : CCWin.Skin_Metro 15 | { 16 | public SettingForm() 17 | { 18 | InitializeComponent(); 19 | SkinUtil.SetFormSkin(this); 20 | } 21 | 22 | private void SettingForm_Load(object sender, EventArgs e) 23 | { 24 | cb_showMenuBar.Checked = AppConfig.Instance.MConfig.ShowMenuBar; 25 | cb_showStatusBar.Checked = AppConfig.Instance.MConfig.ShowStatusBar; 26 | monitorTimer.Value = AppConfig.Instance.MConfig.MonitorTimer; 27 | 28 | DirectoryInfo dire = new DirectoryInfo(MainForm.APP_DIR + "\\skin"); 29 | if(dire.Exists){ 30 | FileInfo[] files = dire.GetFiles(); 31 | ListViewItem item = null; 32 | int index = 0; 33 | foreach(FileInfo file in files){ 34 | imageList1.Images.Add(new Bitmap(file.FullName)); 35 | item = new ListViewItem(); 36 | item.Tag = index; 37 | item.Text = file.Name; 38 | item.ImageIndex = index; 39 | item.Checked = index == AppConfig.Instance.MConfig.SkinIndex; 40 | listView1.Items.Add(item); 41 | index++; 42 | } 43 | 44 | } 45 | 46 | } 47 | 48 | private void listView1_SelectedIndexChanged(object sender, EventArgs e) 49 | { 50 | if (listView1.SelectedItems.Count > 0) 51 | { 52 | ListViewItem item = listView1.SelectedItems[0]; 53 | foreach(ListViewItem o in listView1.Items){ 54 | o.Checked = false; 55 | } 56 | item.Checked = true; 57 | } 58 | } 59 | 60 | private void SettingForm_FormClosed(object sender, FormClosedEventArgs e) 61 | { 62 | //AppConfig.Instance.SaveConfig(1); 63 | } 64 | 65 | private void buttonSave_Click(object sender, EventArgs e) 66 | { 67 | foreach (ListViewItem item in listView1.Items) 68 | { 69 | if (item.Checked) 70 | { 71 | AppConfig.Instance.MConfig.SkinIndex = Convert.ToInt32(item.Tag.ToString()); 72 | break; 73 | } 74 | } 75 | 76 | AppConfig.Instance.SaveConfig(1); 77 | 78 | this.Close(); 79 | } 80 | 81 | private void cb_showStatusBar_CheckedChanged(object sender, EventArgs e) 82 | { 83 | AppConfig.Instance.MConfig.ShowStatusBar = cb_showStatusBar.Checked; 84 | } 85 | 86 | private void cb_showMenuBar_CheckedChanged(object sender, EventArgs e) 87 | { 88 | AppConfig.Instance.MConfig.ShowMenuBar = cb_showMenuBar.Checked; 89 | } 90 | 91 | private void monitorTimer_ValueChanged(object sender, EventArgs e) 92 | { 93 | AppConfig.Instance.MConfig.MonitorTimer = (int) monitorTimer.Value; 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /AppMonitor/Froms/ShellHelpForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace AppMonitor.Froms 2 | { 3 | partial class ShellHelpForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("ssh"); 32 | System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("sftp"); 33 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShellHelpForm)); 34 | this.tree = new System.Windows.Forms.TreeView(); 35 | this.web = new System.Windows.Forms.WebBrowser(); 36 | this.SuspendLayout(); 37 | // 38 | // tree 39 | // 40 | this.tree.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 41 | | System.Windows.Forms.AnchorStyles.Left))); 42 | this.tree.Font = new System.Drawing.Font("微软雅黑", 10F); 43 | this.tree.Location = new System.Drawing.Point(11, 33); 44 | this.tree.Name = "tree"; 45 | treeNode1.Name = "ssh"; 46 | treeNode1.NodeFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 47 | treeNode1.Text = "ssh"; 48 | treeNode2.Name = "sftp"; 49 | treeNode2.NodeFont = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 50 | treeNode2.Text = "sftp"; 51 | this.tree.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { 52 | treeNode1, 53 | treeNode2}); 54 | this.tree.Size = new System.Drawing.Size(192, 589); 55 | this.tree.TabIndex = 2; 56 | this.tree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tree_AfterSelect); 57 | // 58 | // web 59 | // 60 | this.web.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 61 | | System.Windows.Forms.AnchorStyles.Left) 62 | | System.Windows.Forms.AnchorStyles.Right))); 63 | this.web.Location = new System.Drawing.Point(209, 33); 64 | this.web.MinimumSize = new System.Drawing.Size(20, 20); 65 | this.web.Name = "web"; 66 | this.web.Size = new System.Drawing.Size(722, 589); 67 | this.web.TabIndex = 3; 68 | // 69 | // ShellHelpForm 70 | // 71 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 72 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 73 | this.BackgroundImage = global::AppMonitor.Properties.Resources.skin_12; 74 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 75 | this.CaptionFont = new System.Drawing.Font("微软雅黑", 9F); 76 | this.ClientSize = new System.Drawing.Size(942, 633); 77 | this.Controls.Add(this.web); 78 | this.Controls.Add(this.tree); 79 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 80 | this.Name = "ShellHelpForm"; 81 | this.Text = "ShellHelpForm"; 82 | this.TitleCenter = false; 83 | this.TitleColor = System.Drawing.Color.White; 84 | this.Load += new System.EventHandler(this.ShellHelpForm_Load); 85 | this.ResumeLayout(false); 86 | 87 | } 88 | 89 | #endregion 90 | 91 | private System.Windows.Forms.TreeView tree; 92 | private System.Windows.Forms.WebBrowser web; 93 | } 94 | } -------------------------------------------------------------------------------- /AppMonitor/Froms/ShellHelpForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.IO; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Windows.Forms; 11 | 12 | namespace AppMonitor.Froms 13 | { 14 | public partial class ShellHelpForm : CCWin.Skin_Metro 15 | { 16 | public ShellHelpForm() 17 | { 18 | InitializeComponent(); 19 | SkinUtil.SetFormSkin(this); 20 | } 21 | 22 | private void ShellHelpForm_Load(object sender, EventArgs e) 23 | { 24 | 25 | tree.ExpandAll(); 26 | } 27 | 28 | private void tree_AfterSelect(object sender, TreeViewEventArgs e) 29 | { 30 | string name = tree.SelectedNode.Name; 31 | string path = MainForm.APP_DIR + "\\help\\" + name + ".html"; 32 | if (File.Exists(path)) 33 | { 34 | web.Navigate(path); 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /AppMonitor/Froms/SshSettingForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using YSTools; 10 | 11 | namespace AppMonitor.Froms 12 | { 13 | public partial class SshSettingForm : CCWin.Skin_Metro 14 | { 15 | private static SessionConfig config = null; 16 | 17 | public SshSettingForm(SessionConfig _config = null) 18 | { 19 | config = _config; 20 | InitializeComponent(); 21 | } 22 | 23 | private void SshSettingForm_Load(object sender, EventArgs e) 24 | { 25 | SkinUtil.SetFormSkin(this); 26 | 27 | cb_protocol.SelectedIndex = 0; 28 | cb_method.SelectedIndex = 0; 29 | cb_scheme.SelectedIndex = 0; 30 | cb_fontName.SelectedIndex = 0; 31 | cb_fontSize.SelectedIndex = 2; 32 | 33 | if (null != config) 34 | { 35 | InitUI(); 36 | } 37 | 38 | treeView1.ExpandAll(); 39 | } 40 | 41 | public SessionConfig getSessionConfig() 42 | { 43 | return config; 44 | } 45 | 46 | public void InitUI() 47 | { 48 | tb_host.Text = config.Host; 49 | tb_name.Text = config.Name; 50 | tb_password.Text = YSEncrypt.DecryptB(config.Password, KeysUtil.PassKey); 51 | tb_userName.Text = config.UserName; 52 | 53 | cb_protocol.SelectedItem = config.Protocol; 54 | cb_method.SelectedItem = config.Method; 55 | cb_scheme.SelectedItem = config.Theme.ColorScheme; 56 | cb_fontName.SelectedItem = config.Theme.FontName; 57 | cb_fontSize.SelectedItem = config.Theme.FontSize; 58 | cb_remenber_pwd.Checked = config.RemenberPwd; 59 | 60 | } 61 | 62 | private void btn_Cancel_Click(object sender, EventArgs e) 63 | { 64 | this.Close(); 65 | } 66 | 67 | private void btn_Ok_Click(object sender, EventArgs e) 68 | { 69 | // 保存 70 | if (config == null) 71 | { 72 | config = new SessionConfig(); 73 | config.Index = AppConfig.Instance.SessionConfigDict.Count + 1; 74 | config.SessionId = "S" + YSTools.YSDateTime.ConvertDateTimeToLong(); 75 | config.Name = string.IsNullOrWhiteSpace(tb_name.Text) ? "New Session" + config.Index : tb_name.Text; 76 | config.Host = tb_host.Text; 77 | config.Port = (int) nud_port.Value; 78 | config.Protocol = cb_protocol.SelectedItem.ToString(); 79 | config.Method = cb_method.SelectedItem.ToString(); 80 | config.RemenberPwd = cb_remenber_pwd.Checked; 81 | config.UserName = tb_userName.Text; 82 | config.Password = YSEncrypt.EncryptA(tb_password.Text, KeysUtil.PassKey); 83 | 84 | ColorTheme theme = new ColorTheme(); 85 | theme.ColorScheme = cb_scheme.SelectedItem.ToString(); 86 | theme.FontName = cb_fontName.SelectedItem.ToString(); 87 | theme.FontSize = Convert.ToInt32(cb_fontSize.SelectedItem.ToString()); 88 | 89 | config.Theme = theme; 90 | 91 | AppConfig.Instance.SessionConfigDict.Add(config.Index + config.Name, config); 92 | } 93 | else 94 | { 95 | config.Name = string.IsNullOrWhiteSpace(tb_name.Text) ? "New Session" + config.Index : tb_name.Text; 96 | config.Host = tb_host.Text; 97 | config.Port = (int)nud_port.Value; 98 | config.Protocol = cb_protocol.SelectedItem.ToString(); 99 | config.Method = cb_method.SelectedItem.ToString(); 100 | config.RemenberPwd = cb_remenber_pwd.Checked; 101 | config.UserName = tb_userName.Text; 102 | config.Password = YSEncrypt.EncryptA(tb_password.Text, KeysUtil.PassKey); 103 | 104 | config.Theme.ColorScheme = cb_scheme.SelectedItem.ToString(); 105 | config.Theme.FontName = cb_fontName.SelectedItem.ToString(); 106 | config.Theme.FontSize = Convert.ToInt32(cb_fontSize.SelectedItem.ToString()); 107 | 108 | if (AppConfig.Instance.SessionConfigDict.ContainsKey(config.SessionId)) 109 | { 110 | AppConfig.Instance.SessionConfigDict.Remove(config.SessionId); 111 | } 112 | AppConfig.Instance.SessionConfigDict.Add(config.SessionId, config); 113 | } 114 | // 保存 115 | AppConfig.Instance.SaveConfig(); 116 | 117 | this.Close(); 118 | } 119 | 120 | private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 121 | { 122 | string name = treeView1.SelectedNode.Name; 123 | if (name == "Connection") 124 | { 125 | tabControl1.SelectedIndex = 0; 126 | } 127 | else if (name == "Authentication") 128 | { 129 | tabControl1.SelectedIndex = 1; 130 | } 131 | else if (name == "Setting") 132 | { 133 | tabControl1.SelectedIndex = 2; 134 | } 135 | else if (name == "Appearance") 136 | { 137 | tabControl1.SelectedIndex = 3; 138 | } 139 | } 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /AppMonitor/Froms/TextEditorForm.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Froms/TextEditorForm.cs -------------------------------------------------------------------------------- /AppMonitor/Froms/TextFindForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Text.RegularExpressions; 10 | using System.Windows.Forms; 11 | 12 | namespace AppMonitor.Froms 13 | { 14 | public partial class TextFindForm : CCWin.Skin_Metro 15 | { 16 | public delegate string GetContentMethod(); 17 | public delegate void FindCallback(string str, int index); 18 | public delegate void ReplaceCallback(string str, string res, bool isAll); 19 | private bool openReplace = false; 20 | private GetContentMethod getContent; 21 | private FindCallback findCall; 22 | private ReplaceCallback replaceCall; 23 | private string tempCont = null, tempStr = null; 24 | private Regex reg1 = null, reg2 = null; 25 | private Match match1 = null, match2 = null; 26 | private List findHisList = new List(); 27 | 28 | public TextFindForm(GetContentMethod method, FindCallback findCall, bool openReplace = false) 29 | { 30 | InitializeComponent(); 31 | SkinUtil.SetFormSkin(this); 32 | this.openReplace = openReplace; 33 | this.getContent = method; 34 | this.findCall = findCall; 35 | } 36 | 37 | public TextFindForm(GetContentMethod method, FindCallback findCall, ReplaceCallback replaceCall) 38 | : this(method, findCall, true) 39 | { 40 | this.replaceCall = replaceCall; 41 | } 42 | 43 | private void regex_CheckedChanged(object sender, EventArgs e) 44 | { 45 | if (cb_regex.Checked) 46 | { 47 | cb_case.Enabled = false; 48 | cb_case.Checked = false; 49 | cb_whole.Enabled = false; 50 | cb_whole.Checked = false; 51 | } 52 | else 53 | { 54 | cb_case.Enabled = true; 55 | cb_whole.Enabled = true; 56 | } 57 | } 58 | 59 | private void find_Click(object sender, EventArgs e) 60 | { 61 | FindStr(); 62 | } 63 | 64 | private void btn_replace_find_Click(object sender, EventArgs e) 65 | { 66 | ReplaceStr(); 67 | 68 | bool result = FindStr(); 69 | } 70 | 71 | private void btn_replace_Click(object sender, EventArgs e) 72 | { 73 | ReplaceStr(); 74 | } 75 | 76 | private void btn_replace_all_Click(object sender, EventArgs e) 77 | { 78 | string res = text_res.Text; 79 | if(res.Length > 0){ 80 | ReplaceStr(res, true); 81 | } 82 | } 83 | 84 | private void btn_close_Click(object sender, EventArgs e) 85 | { 86 | this.Close(); 87 | } 88 | 89 | private void TextFindForm_Load(object sender, EventArgs e) 90 | { 91 | if (!this.openReplace) 92 | { 93 | text_target.Enabled = false; 94 | btn_replace.Enabled = false; 95 | btn_replace_all.Enabled = false; 96 | btn_replace_find.Enabled = false; 97 | } 98 | } 99 | 100 | private void addFindHisItem(string str) { 101 | if (null != str && str.Length > 0 && !findHisList.Contains(str)) 102 | { 103 | findHisList.Add(str); 104 | 105 | text_res.Items.Add(str); 106 | } 107 | } 108 | 109 | private void text_res_KeyUp(object sender, KeyEventArgs e) 110 | { 111 | if (e.KeyCode == Keys.Enter || cb_immed.Checked) 112 | { 113 | FindStr(); 114 | } 115 | } 116 | 117 | public bool FindStr() 118 | { 119 | bool finds = false; 120 | string text = text_res.Text; 121 | info.Text = ""; 122 | if (text != "") 123 | { 124 | string content = getContent(); 125 | bool caseDx = cb_case.Checked; 126 | bool whole = cb_whole.Checked; 127 | bool regex = cb_regex.Checked; 128 | 129 | if (tempCont != content || text != tempStr) 130 | { 131 | string fmt = null; 132 | if (whole) 133 | { 134 | fmt = "[^\u4e00-\u9fa50-9a-zA-Z]+{0}[^\u4e00-\u9fa50-9a-zA-Z]+"; 135 | } 136 | 137 | reg1 = new Regex(fmt == null ? text : string.Format(fmt, text)); 138 | reg2 = null; 139 | if (caseDx) 140 | { 141 | if (text.ToUpper() != text.ToLower()) 142 | { 143 | reg1 = new Regex(fmt == null ? text.ToUpper() : string.Format(fmt, text.ToUpper())); 144 | reg2 = new Regex(fmt == null ? text.ToLower() : string.Format(fmt, text.ToLower())); 145 | } 146 | } 147 | 148 | match1 = reg1.Match(content); 149 | match2 = null; 150 | if (reg2 != null) 151 | { 152 | match2 = reg2.Match(content); 153 | } 154 | } 155 | else 156 | { 157 | match1 = reg1.Match(content, match1.Index + match1.Length); 158 | if (reg2 != null) 159 | { 160 | match2 = reg2.Match(content, match2.Index + match2.Length); 161 | } 162 | } 163 | 164 | 165 | if (null != match1 && match1.Success) //当查找成功时候 166 | { 167 | tempCont = content; 168 | tempStr = text; 169 | addFindHisItem(text); 170 | finds = true; 171 | 172 | findCall(text, match1.Index); 173 | } 174 | else if (null != match2 && match2.Success) //当查找成功时候 175 | { 176 | tempCont = content; 177 | tempStr = text; 178 | addFindHisItem(text); 179 | finds = true; 180 | 181 | findCall(text, match2.Index); 182 | } 183 | else 184 | { 185 | info.Text = "没有找到结果"; 186 | } 187 | } 188 | return finds; 189 | } 190 | 191 | public void ReplaceStr(string res = null, bool isAll = false) 192 | { 193 | string target = text_target.Text; 194 | replaceCall(target, res, isAll); 195 | } 196 | 197 | } 198 | } 199 | -------------------------------------------------------------------------------- /AppMonitor/Froms/TomcatMonitorForm.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 18, 12 122 | 123 | 124 | 108, 12 125 | 126 | 127 | 273, 12 128 | 129 | 130 | 409, 13 131 | 132 | 133 | 42 134 | 135 | -------------------------------------------------------------------------------- /AppMonitor/MessageUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Drawing; 4 | using System.Text; 5 | 6 | namespace AppMonitor 7 | { 8 | public class MessageUtils 9 | { 10 | public static readonly string EMPTY = ""; 11 | public static readonly string T = ""; 12 | public static readonly string T0m = ""; 13 | public static readonly string Tm = ""; 14 | public static readonly string TK = ""; 15 | public static readonly string T0131 = ""; 16 | public static readonly string T0132 = ""; 17 | public static readonly string T0134 = ""; 18 | public static readonly string T0136 = ""; 19 | public static readonly string T3042 = ""; 20 | 21 | public static List FormatMessage(List msgList, string message) 22 | { 23 | if (msgList == null) 24 | { 25 | msgList = new List(); 26 | } 27 | Message msg = null; 28 | if (message.IndexOf(T0m) == -1 && message.IndexOf(Tm) == -1 && message.IndexOf(TK) == -1) 29 | { 30 | msg = new Message(); 31 | msg.Text = message; 32 | msgList.Add(msg); 33 | } 34 | else 35 | { 36 | message = message.Replace(TK, ""); 37 | message = message.Replace(Tm, T0m); 38 | 39 | string[] arrs = message.Split(new string[] { T0m }, StringSplitOptions.None); 40 | string str = null; 41 | int index = -1; 42 | foreach (string line in arrs) 43 | { 44 | str = line.Replace("\r\n", "\n"); 45 | if ((index = str.IndexOf(T0131)) != -1) 46 | { 47 | SplitMsg(msgList, str, index, T0131, Color.IndianRed, Color.Empty); 48 | } 49 | else if ((index = str.IndexOf(T0132)) != -1) 50 | { 51 | SplitMsg(msgList, str, index, T0132, Color.LawnGreen, Color.Empty); 52 | } 53 | else if ((index = str.IndexOf(T0134)) != -1) 54 | { 55 | SplitMsg(msgList, str, index, T0134, Color.RoyalBlue, Color.Empty); 56 | } 57 | else if ((index = str.IndexOf(T0136)) != -1) 58 | { 59 | SplitMsg(msgList, str, index, T0136, Color.PowderBlue, Color.Empty); 60 | } 61 | else if ((index = str.IndexOf(T3042)) != -1) 62 | { 63 | SplitMsg(msgList, str, index, T3042, Color.CadetBlue, Color.Green); 64 | } 65 | else 66 | { 67 | msg = new Message(); 68 | msg.Text = str; 69 | msgList.Add(msg); 70 | } 71 | } 72 | } 73 | return msgList; 74 | } 75 | 76 | private static void SplitMsg(List msgList, string str, int index, string flag, Color color, Color back) 77 | { 78 | Message msg = null; 79 | if (index > 0) 80 | { 81 | string str1 = str.Substring(0, index); 82 | msg = new Message(); 83 | msg.Text = str1; 84 | msgList.Add(msg); 85 | } 86 | 87 | string str2 = str.Substring(index + flag.Length); 88 | msg = new Message(); 89 | msg.Text = str2; 90 | msg.Color = color; 91 | if (back != Color.Empty) 92 | { 93 | msg.BackColor = back; 94 | } 95 | msgList.Add(msg); 96 | } 97 | } 98 | 99 | public class Message { 100 | public string Text { get; set; } 101 | 102 | private Color _color = Color.CadetBlue; 103 | public Color Color { 104 | get 105 | { 106 | return _color; 107 | } 108 | set 109 | { 110 | _color = value; 111 | } 112 | } 113 | 114 | private Color _backColor = Color.FromArgb(255, 20, 20, 20); 115 | public Color BackColor 116 | { 117 | get 118 | { 119 | return _backColor; 120 | } 121 | set 122 | { 123 | _backColor = value; 124 | } 125 | } 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /AppMonitor/Model/CmdShell.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Model 7 | { 8 | public class CmdShell 9 | { 10 | public string Target { get; set; } 11 | 12 | public string Uuid { get; set; } 13 | 14 | public string Name { get; set; } 15 | 16 | public TaskType TaskType { get; set; } 17 | 18 | public string Type { get; set; } 19 | 20 | public string Condition { get; set; } 21 | 22 | public List ShellList { get; set; } 23 | 24 | } 25 | 26 | public class TaskShell 27 | { 28 | public string Uuid { get; set; } 29 | 30 | public string DateTime { get; set; } 31 | 32 | public string Name { get; set; } 33 | 34 | public string Shell { get; set; } 35 | } 36 | 37 | public enum TaskType 38 | { 39 | Default, Timed, Condition 40 | } 41 | 42 | public delegate void ShellResultDelegate(string result); 43 | 44 | } 45 | -------------------------------------------------------------------------------- /AppMonitor/Model/ListBoxItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Model 7 | { 8 | public class ListBoxItem 9 | { 10 | public string Text { get; set; } 11 | 12 | public string Value { get; set; } 13 | 14 | public Object Tag { get; set; } 15 | 16 | public override string ToString() 17 | { 18 | return Text; 19 | } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /AppMonitor/Model/MonitorItem.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json.Linq; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | namespace AppMonitor.Model 8 | { 9 | public class MonitorItem 10 | { 11 | } 12 | 13 | public class SpringBootMonitorItem : MonitorItem 14 | { 15 | public string Uuid { get; set; } 16 | 17 | public int Index = 0; 18 | 19 | public String AppName { get; set; } 20 | 21 | public String HomeUrl { get; set; } 22 | 23 | public String ShFileDir { get; set; } 24 | 25 | public String BuildFileName { get; set; } 26 | 27 | public String CrlFileName { get; set; } 28 | 29 | public bool NeedAdd { get; set; } 30 | 31 | public String ProjectSourceDir { get; set; } 32 | 33 | public String ProjectSvnUrl { get; set; } 34 | 35 | public RunState RunStatus { get; set; } 36 | } 37 | 38 | public class IceMonitorItem : MonitorItem 39 | { 40 | public string Uuid { get; set; } 41 | 42 | public int Index = 3; 43 | 44 | public String AppName { get; set; } 45 | 46 | public String ServerName { get; set; } 47 | 48 | public String NodePorts { get; set; } 49 | 50 | public String IceSrvDir { get; set; } 51 | 52 | public RunState RunStatus { get; set; } 53 | 54 | public IceProjectAttr Project { get; set; } 55 | } 56 | 57 | public class IceProjectAttr 58 | { 59 | public String LocalCodePath { get; set; } 60 | 61 | public String LocalIceXmlPath { get; set; } 62 | 63 | public String MavenSetting { get; set; } 64 | } 65 | 66 | public class TomcatMonitorItem : MonitorItem 67 | { 68 | public string Uuid { get; set; } 69 | 70 | public int Index = 1; 71 | 72 | public String TomcatName { get; set; } 73 | 74 | public String TomcatDir { get; set; } 75 | 76 | public String TomcatPort { get; set; } 77 | 78 | public RunState RunStatus { get; set; } 79 | } 80 | 81 | public class NginxMonitorItem : MonitorItem 82 | { 83 | public string Uuid { get; set; } 84 | 85 | public int Index = 2; 86 | 87 | public String NginxName { get; set; } 88 | 89 | public String NginxPath { get; set; } 90 | 91 | public String NginxConfig { get; set; } 92 | 93 | public List MonitorList { get; set; } 94 | 95 | public RunState RunStatus { get; set; } 96 | 97 | public JObject Config { get; set; } 98 | } 99 | 100 | public class NginxMonitorUrl { 101 | public bool check { get; set; } 102 | 103 | public String url { get; set; } 104 | 105 | public String host { get; set; } 106 | 107 | public RunState RunStatus { get; set; } 108 | } 109 | 110 | public enum RunState 111 | { 112 | NoCheck, // 未检查 113 | Normal, // 正常 114 | AbNormal // 异常 115 | } 116 | 117 | public class ConditionItem 118 | { 119 | public int Index { get; set; } 120 | 121 | public MonitorItem Item { get; set; } 122 | 123 | public override string ToString() 124 | { 125 | string str = ""; 126 | if(Index == 0){ 127 | str = "[Springboot] " + ((SpringBootMonitorItem)Item).AppName; 128 | } 129 | else if (Index == 1) 130 | { 131 | str = "[Tomcat] " + ((TomcatMonitorItem)Item).TomcatName; 132 | } 133 | else if (Index == 2) 134 | { 135 | str = "[Nginx] " + ((NginxMonitorItem)Item).NginxName; 136 | } 137 | else if (Index == 3) 138 | { 139 | str = "[Ice] " + ((IceMonitorItem)Item).AppName; 140 | } 141 | return str; 142 | } 143 | } 144 | 145 | } 146 | -------------------------------------------------------------------------------- /AppMonitor/Model/SshUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Nodel 7 | { 8 | public class SshUser 9 | { 10 | public string UserName { get; set; } 11 | 12 | public string Password { get; set; } 13 | 14 | public string Host { get; set; } 15 | 16 | public int Port { get; set; } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /AppMonitor/Model/TransferItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace AppMonitor.Model 7 | { 8 | public class TransferItem 9 | { 10 | public string Id { get; set; } 11 | public string Name { get; set; } 12 | 13 | public TransferStatus Status { get; set; } 14 | 15 | public long Progress { get; set; } 16 | 17 | public string Size { get; set; } 18 | 19 | public string LocalPath { get; set; } 20 | 21 | public string RemotePath { get; set; } 22 | 23 | public string Speed { get; set; } 24 | 25 | public string TimeLeft { get; set; } 26 | 27 | } 28 | 29 | public enum TransferStatus 30 | { 31 | Wait, Transfers, Success, Failed, Cancel 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /AppMonitor/Plugin/CustomShellForm.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using AppMonitor.Model; 3 | using FastColoredTextBoxNS; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.ComponentModel; 7 | using System.Data; 8 | using System.Drawing; 9 | using System.Linq; 10 | using System.Text; 11 | using System.Windows.Forms; 12 | 13 | namespace AppMonitor.Plugin 14 | { 15 | public partial class CustomShellForm : CCWin.Skin_Metro 16 | { 17 | CmdShell shell = null; 18 | SessionConfig config; 19 | string uuid = ""; 20 | 21 | public CustomShellForm(SessionConfig _config, string name) 22 | { 23 | InitializeComponent(); 24 | SkinUtil.SetFormSkin(this); 25 | config = _config; 26 | uuid = name; 27 | } 28 | 29 | private void button1_Click(object sender, EventArgs e) 30 | { 31 | string name = stb_name.Text; 32 | string cmdstr = cmd.Text; 33 | if(string.IsNullOrWhiteSpace(name)){ 34 | MessageBox.Show(this, "请定义一个名称"); 35 | return; 36 | } 37 | if (string.IsNullOrWhiteSpace(cmdstr)) 38 | { 39 | MessageBox.Show(this, "请输入要执行的命令"); 40 | return; 41 | } 42 | List cmdList = new List(); 43 | string[] cmds = cmdstr.Split('\n'); 44 | TaskShell task = null; 45 | foreach(string c in cmds){ 46 | if (!string.IsNullOrWhiteSpace(c.Trim())) 47 | { 48 | task = new TaskShell(); 49 | task.Uuid = Guid.NewGuid().ToString("N"); 50 | task.Name = ""; 51 | task.Shell = c.Trim(); 52 | cmdList.Add(task); 53 | } 54 | } 55 | bool isnew = false; 56 | if(shell == null){ 57 | shell = new CmdShell(); 58 | shell.Uuid = Guid.NewGuid().ToString("N"); 59 | shell.Target = uuid; 60 | isnew = true; 61 | } 62 | shell.Name = name; 63 | shell.Type = "自定义脚本"; 64 | shell.TaskType = TaskType.Default; 65 | shell.ShellList = cmdList; 66 | if (isnew) 67 | { 68 | config.CustomShellList.Add(shell); 69 | } 70 | 71 | AppConfig.Instance.SaveConfig(2); 72 | 73 | this.Close(); 74 | } 75 | 76 | private void button2_Click(object sender, EventArgs e) 77 | { 78 | this.Close(); 79 | } 80 | 81 | private void CustomScriptForm_Load(object sender, EventArgs e) 82 | { 83 | if (null != shell) 84 | { 85 | stb_name.Text = shell.Name; 86 | cmd.Clear(); 87 | foreach (TaskShell task in shell.ShellList) 88 | { 89 | cmd.AppendText(task.Shell + "\n"); 90 | } 91 | } 92 | } 93 | 94 | public void SetUpdater(CmdShell cmds) 95 | { 96 | shell = cmds; 97 | } 98 | 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /AppMonitor/Plugin/MyProgressMonitor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using Tamir.SharpSsh.jsch; 6 | 7 | namespace AppMonitor.Plugin 8 | { 9 | 10 | public delegate void ProgressDelegate(string id, long percent, long cm, long max, int elapsed); 11 | 12 | public delegate void TransfersEndDelegate(string id); 13 | 14 | public class MyProgressMonitor : SftpProgressMonitor 15 | { 16 | private long c = 0; 17 | private long max = 0; 18 | private long percent = -1; 19 | int elapsed = -1; 20 | 21 | System.Timers.Timer timer; 22 | 23 | private ProgressDelegate progress; 24 | private TransfersEndDelegate transferEnd; 25 | private string id; 26 | 27 | public MyProgressMonitor(string id, ProgressDelegate progress, TransfersEndDelegate end) 28 | { 29 | this.id = id; 30 | this.progress = progress; 31 | this.transferEnd = end; 32 | } 33 | 34 | public override void init(int op, String src, String dest, long max) 35 | { 36 | this.max = max; 37 | elapsed = 0; 38 | timer = new System.Timers.Timer(1000); 39 | timer.Start(); 40 | timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); 41 | } 42 | 43 | public override bool count(long c) 44 | { 45 | this.c += c; 46 | if (percent >= this.c * 100 / max) { return true; } 47 | percent = this.c * 100 / max; 48 | 49 | //string note = ("Transfering... [Elapsed time: " + elapsed + "]"); 50 | 51 | progress(id, percent, this.c, max, elapsed); 52 | return true; 53 | } 54 | 55 | public override void end() 56 | { 57 | timer.Stop(); 58 | timer.Dispose(); 59 | //string note = ("Done in " + elapsed + " seconds!"); 60 | 61 | transferEnd(id); 62 | } 63 | 64 | private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) 65 | { 66 | this.elapsed++; 67 | } 68 | 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /AppMonitor/Plugin/YmlItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | namespace AppMonitor.Plugin 8 | { 9 | public class YmlItem 10 | { 11 | public string Uuid { get; set; } 12 | public int ImageIndex {get; set; } 13 | public string Key {get; set; } 14 | public string Value {get; set; } 15 | public int Level {get; set; } 16 | 17 | public int SpcCount { get; set; } 18 | public string Common {get; set; } 19 | public YmlItem Parent {get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /AppMonitor/Plugin/sftpWinForm.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 380, 17 125 | 126 | 127 | 253, 17 128 | 129 | 130 | 127, 17 131 | 132 | -------------------------------------------------------------------------------- /AppMonitor/Program.cs: -------------------------------------------------------------------------------- 1 | using AppMonitor.Bex; 2 | using AppMonitor.Froms; 3 | using AppMonitor.Nodel; 4 | using AppMonitor.Plugin; 5 | using log4net; 6 | using System; 7 | using System.Collections.Generic; 8 | using System.Diagnostics; 9 | using System.Runtime.InteropServices; 10 | using System.Text; 11 | using System.Windows.Forms; 12 | using Tamir.SharpSsh.java.lang; 13 | 14 | [assembly: log4net.Config.XmlConfigurator(Watch = true)] 15 | namespace AppMonitor 16 | { 17 | public static class Program 18 | { 19 | static ILog logger = LogManager.GetLogger("LogFileAppender"); 20 | public static MainForm MAIN = null; 21 | public static SshUser initUser = null; 22 | 23 | /* 24 | [DllImport("Kernel32.dll")] 25 | private static extern bool AllocConsole(); 26 | [DllImport("kernel32.dll", EntryPoint = "FreeConsole")] 27 | private static extern bool FreeConsole(); 28 | [DllImport("user32.dll", EntryPoint = "FindWindow")] 29 | extern static IntPtr FindWindow(string lpClassName, string lpWindowName); 30 | [DllImport("user32.dll", EntryPoint = "GetSystemMenu")] 31 | extern static IntPtr GetSystemMenu(IntPtr hWnd, IntPtr bRevert); 32 | [DllImport("user32.dll", EntryPoint = "RemoveMenu")] 33 | extern static IntPtr RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags); 34 | [DllImport("Kernel32.dll")] 35 | public static extern bool SetConsoleTitle(string strMessage); 36 | 37 | public static IntPtr windowHandle; 38 | */ 39 | /// 40 | /// 应用程序的主入口点。 41 | /// 42 | [STAThread] 43 | static void Main(string[] args) 44 | { 45 | if (null != args && args.Length > 3) 46 | { 47 | initUser = new SshUser(); 48 | initUser.Host = args[0]; 49 | initUser.UserName = args[1]; 50 | initUser.Password = args[2]; 51 | initUser.Port = Convert.ToInt32(args[3]); 52 | } 53 | /*AllocConsole(); 54 | windowHandle = FindWindow(null, Process.GetCurrentProcess().MainModule.FileName); 55 | 56 | IntPtr closeMenu = GetSystemMenu(windowHandle, IntPtr.Zero); 57 | uint SC_CLOSE = 0xF060; 58 | RemoveMenu(closeMenu, SC_CLOSE, 0x0); 59 | SetConsoleTitle("调试信息");*/ 60 | 61 | try 62 | { 63 | //处理未捕获的异常 64 | Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); 65 | //处理UI线程异常 66 | Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 67 | //处理非UI线程异常 68 | AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 69 | 70 | 71 | Application.EnableVisualStyles(); 72 | Application.SetCompatibleTextRenderingDefault(false); 73 | 74 | MAIN = new MainForm(); 75 | Application.Run(MAIN); 76 | 77 | //Application.Run(new SftpForm(initUser)); 78 | } 79 | catch (Exception ex) 80 | { 81 | string str = GetExceptionMsg(ex, string.Empty); 82 | MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); 83 | } 84 | 85 | //FreeConsole(); 86 | } 87 | 88 | static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) 89 | { 90 | string str = GetExceptionMsg(e.Exception, e.ToString()); 91 | MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); 92 | logger.Error(str); 93 | } 94 | 95 | static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) 96 | { 97 | string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString()); 98 | MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); 99 | logger.Error(str); 100 | } 101 | 102 | /// 103 | /// 生成自定义异常消息 104 | /// 105 | /// 异常对象 106 | /// 备用异常消息:当ex为null时有效 107 | /// 异常字符串文本 108 | static string GetExceptionMsg(Exception ex, string backStr) 109 | { 110 | StringBuilder sb = new StringBuilder(); 111 | sb.AppendLine("****************************异常文本****************************"); 112 | sb.AppendLine("【出现时间】:" + DateTime.Now.ToString()); 113 | if (ex != null) 114 | { 115 | sb.AppendLine("【异常类型】:" + ex.GetType().Name); 116 | sb.AppendLine("【异常信息】:" + ex.Message); 117 | sb.AppendLine("【堆栈调用】:" + ex.StackTrace); 118 | } 119 | else 120 | { 121 | sb.AppendLine("【未处理异常】:" + backStr); 122 | } 123 | sb.AppendLine("***************************************************************"); 124 | return sb.ToString(); 125 | } 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /AppMonitor/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的常规信息通过以下 6 | // 特性集控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("AppMonitor")] 9 | [assembly: AssemblyDescription("应用监控")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Yisin Soft")] 12 | [assembly: AssemblyProduct("AppMonitor")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 使此程序集中的类型 18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, 19 | // 则将该类型上的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("87281e3a-b0d5-4d1b-a8fc-56b7574eff77")] 24 | 25 | // 程序集的版本信息由下面四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, 33 | // 方法是按如下所示使用“*”: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /AppMonitor/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace AppMonitor.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.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 | } 27 | -------------------------------------------------------------------------------- /AppMonitor/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AppMonitor/Resources/Circle_72px0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/Circle_72px0.png -------------------------------------------------------------------------------- /AppMonitor/Resources/Circle_72px1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/Circle_72px1.png -------------------------------------------------------------------------------- /AppMonitor/Resources/Circle_72px2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/Circle_72px2.png -------------------------------------------------------------------------------- /AppMonitor/Resources/MB_light_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/MB_light_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/Save_all_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/Save_all_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/Terminal_24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/Terminal_24px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/closeConn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/closeConn.png -------------------------------------------------------------------------------- /AppMonitor/Resources/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/copy.png -------------------------------------------------------------------------------- /AppMonitor/Resources/custom_24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/custom_24px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/encoding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/encoding.png -------------------------------------------------------------------------------- /AppMonitor/Resources/filen_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/filen_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/filen_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/filen_64px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/find.png -------------------------------------------------------------------------------- /AppMonitor/Resources/folder_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/folder_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/folder_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/folder_64px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/font.png -------------------------------------------------------------------------------- /AppMonitor/Resources/ftp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/ftp.png -------------------------------------------------------------------------------- /AppMonitor/Resources/ftp_64px.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/ftp_64px.ico -------------------------------------------------------------------------------- /AppMonitor/Resources/fullScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/fullScreen.png -------------------------------------------------------------------------------- /AppMonitor/Resources/gray_light_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/gray_light_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/gray_light_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/gray_light_48.png -------------------------------------------------------------------------------- /AppMonitor/Resources/green_light_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/green_light_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/green_light_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/green_light_48.png -------------------------------------------------------------------------------- /AppMonitor/Resources/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/help.png -------------------------------------------------------------------------------- /AppMonitor/Resources/loading2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/loading2.gif -------------------------------------------------------------------------------- /AppMonitor/Resources/locks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/locks.png -------------------------------------------------------------------------------- /AppMonitor/Resources/lookAttr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/lookAttr.png -------------------------------------------------------------------------------- /AppMonitor/Resources/monitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/monitor.png -------------------------------------------------------------------------------- /AppMonitor/Resources/monitor48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/monitor48.png -------------------------------------------------------------------------------- /AppMonitor/Resources/newSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/newSession.png -------------------------------------------------------------------------------- /AppMonitor/Resources/one_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/one_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/openSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/openSession.png -------------------------------------------------------------------------------- /AppMonitor/Resources/org_light_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/org_light_48.png -------------------------------------------------------------------------------- /AppMonitor/Resources/pageDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/pageDown.png -------------------------------------------------------------------------------- /AppMonitor/Resources/pageHover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/pageHover.png -------------------------------------------------------------------------------- /AppMonitor/Resources/pageNomal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/pageNomal.png -------------------------------------------------------------------------------- /AppMonitor/Resources/parent_24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/parent_24px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/paste.png -------------------------------------------------------------------------------- /AppMonitor/Resources/reConn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/reConn.png -------------------------------------------------------------------------------- /AppMonitor/Resources/refresh_24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/refresh_24px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/remove_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/remove_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/setting.png -------------------------------------------------------------------------------- /AppMonitor/Resources/skin_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/skin_02.png -------------------------------------------------------------------------------- /AppMonitor/Resources/skin_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/skin_04.png -------------------------------------------------------------------------------- /AppMonitor/Resources/skin_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/skin_12.png -------------------------------------------------------------------------------- /AppMonitor/Resources/ssh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/ssh.png -------------------------------------------------------------------------------- /AppMonitor/Resources/ssh48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/ssh48.png -------------------------------------------------------------------------------- /AppMonitor/Resources/sx_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/sx_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/sxzy_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/sxzy_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/theme.png -------------------------------------------------------------------------------- /AppMonitor/Resources/users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/users.png -------------------------------------------------------------------------------- /AppMonitor/Resources/view_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/view_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/wait063.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/wait063.gif -------------------------------------------------------------------------------- /AppMonitor/Resources/write_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/write_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/yellow_light_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/yellow_light_16px.png -------------------------------------------------------------------------------- /AppMonitor/Resources/yxkj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/yxkj.png -------------------------------------------------------------------------------- /AppMonitor/Resources/zy_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/Resources/zy_16px.png -------------------------------------------------------------------------------- /AppMonitor/TextBoxWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | 7 | namespace AppMonitor 8 | { 9 | public class TextBoxWriter : TextWriter 10 | { 11 | RichTextBox textBox; 12 | delegate void WriteFunc(string value); 13 | WriteFunc write; 14 | WriteFunc writeLine; 15 | 16 | public TextBoxWriter(RichTextBox textBox) 17 | { 18 | this.textBox = textBox; 19 | write = Write; 20 | writeLine = WriteLine; 21 | } 22 | 23 | 24 | // 使用UTF-16避免不必要的编码转换 25 | public override Encoding Encoding 26 | { 27 | get { return Encoding.Unicode; } 28 | } 29 | 30 | 31 | // 最低限度需要重写的方法 32 | public override void Write(string value) 33 | { 34 | if (textBox.InvokeRequired) 35 | textBox.BeginInvoke(write, value); 36 | else 37 | textBox.AppendText(value); 38 | } 39 | 40 | 41 | // 为提高效率直接处理一行的输出 42 | public override void WriteLine(string value) 43 | { 44 | if (textBox.InvokeRequired) 45 | textBox.BeginInvoke(writeLine, value); 46 | else 47 | { 48 | textBox.AppendText(value); 49 | textBox.AppendText(this.NewLine); 50 | } 51 | } 52 | 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /AppMonitor/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /AppMonitor/bin/Debug/新建文本文档.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Debug/新建文本文档.txt -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AMSftp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/AMSftp.exe -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AMSftp.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AMSftp.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/AMSftp.pdb -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AMSftp.vshost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/AMSftp.vshost.exe -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AMSftp.vshost.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AMSftp.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AppMonitor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/AppMonitor.exe -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AppMonitor.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AppMonitor.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/AppMonitor.pdb -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AppMonitor.vshost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/AppMonitor.vshost.exe -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AppMonitor.vshost.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/AppMonitor.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/CSkin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/CSkin.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/DiffieHellman.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/DiffieHellman.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/FastColoredTextBox.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/FastColoredTextBox.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/Org.Mentalis.Security.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/Org.Mentalis.Security.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/System.Runtime.InteropServices.APIs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/System.Runtime.InteropServices.APIs.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/System.Windows.Forms.TreeListView.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/System.Windows.Forms.TreeListView.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/TabStrip.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/TabStrip.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/Tamir.SharpSSH.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/Tamir.SharpSSH.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/YSTools.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/YSTools.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/conf/__build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SOURCE=_sourcePath_/_projectName_ 3 | cd $SOURCE 4 | svn up 5 | mvn -Pdev clean package -DskipTests=true 6 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/conf/__ctl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | 4 | APP_HOME=_sourcePath_/_projectName_/target 5 | 6 | #启动的程序名称 7 | APP_NAME=_projectName_ 8 | 9 | #注册服务器地址 10 | APP_REG=_disconfigUrl_ 11 | 12 | PROFILE=dev,swagger 13 | 14 | #java虚拟机启动参数 15 | JAVA_OPTS="-Xmx2048m -Xms512m" 16 | 17 | #************************** 18 | #(函数)判断程序是否已启动 19 | #初始化psid变量 20 | #**************************** 21 | psid=0 22 | 23 | checkpid() { 24 | JPID=$(ps -ef | grep java.*$APP_NAME.*.war | grep -v grep | awk '{ print $2 }') 25 | if [ -z "$JPID" ] 26 | then 27 | psid=0 28 | else 29 | psid=$JPID 30 | fi 31 | } 32 | 33 | #************************** 34 | #启动程序 35 | #**************************** 36 | start() { 37 | checkpid 38 | 39 | if [ $psid -ne 0 ]; then 40 | echo "================================" 41 | echo "warn: $APP_NAME already started! (pid=$psid)" 42 | echo "================================" 43 | else 44 | echo -n "Starting $APP_NAME ..." 45 | 46 | nohup java -jar $APP_HOME/$APP_NAME*.war $JAVA_OPTS --spring.cloud.config.uri=$APP_REG --spring.profiles.active=$PROFILE >/dev/null 2>&1 & 47 | checkpid 48 | if [ $psid -ne 0 ]; then 49 | echo "(pid=$psid) [OK]" 50 | else 51 | echo "[Failed]" 52 | fi 53 | fi 54 | } 55 | 56 | #***************************** 57 | #停止程序 58 | #***************************** 59 | stop() { 60 | checkpid 61 | 62 | if [ $psid -ne 0 ]; then 63 | echo -n "Stopping $APP_NAME ...(pid=$psid) " 64 | kill $psid 65 | if [ $? -eq 0 ]; then 66 | echo "[OK]" 67 | else 68 | echo "[Failed]" 69 | fi 70 | 71 | checkpid 72 | if [ $psid -ne 0 ]; then 73 | kill -9 $psid 74 | else 75 | echo "[force stop OK]" 76 | fi 77 | 78 | checkpid 79 | if [ $psid -ne 0 ]; then 80 | stop 81 | fi 82 | else 83 | echo "================================" 84 | echo "warn: $APP_NAME is not running" 85 | echo "================================" 86 | fi 87 | } 88 | 89 | #**************************** 90 | #检查程序运行状态 91 | #**************************** 92 | status() { 93 | checkpid 94 | 95 | if [ $psid -ne 0 ]; then 96 | echo "$APP_NAME is running! (pid=$psid)" 97 | else 98 | echo "$APP_NAME is not running" 99 | fi 100 | } 101 | 102 | #******************************** 103 | #读取脚本的第一个参数($1),进行判断 104 | #参数取值范围:{start|stop|restart|status} 105 | ################################### 106 | case "$1" in 107 | 'start') 108 | start 109 | ;; 110 | 'stop') 111 | stop 112 | ;; 113 | 'restart') 114 | stop 115 | start 116 | ;; 117 | 'status') 118 | status 119 | ;; 120 | *) 121 | echo "Usage: $0 {start|stop|restart|status}" 122 | exit 1 123 | esac 124 | exit 0 125 | 126 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/conf/conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "SchemeConfigDict": {}, 3 | "UserId": "16d8373ae6ff470b9735a755d6f3993c", 4 | "SkinIndex": 11, 5 | "OnstartShowSessMgt": false, 6 | "MonitorTimer": 30, 7 | "ShowMenuBar": true, 8 | "ShowStatusBar": true 9 | } 10 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/conf/shell_temp.json: -------------------------------------------------------------------------------- 1 | { 2 | "task_shell_temp": { 3 | "springboot": { 4 | "build": "{sh_bin_dir}/{build_sh_file}", 5 | "stop": "{sh_bin_dir}/{ctl_sh_file} stop", 6 | "start": "{sh_bin_dir}/{ctl_sh_file} start", 7 | "restart": "{sh_bin_dir}/{ctl_sh_file} restart" 8 | }, 9 | "tomcat": { 10 | "start": "{tomcat_dir}/bin/startup.sh", 11 | "stop": "{tomcat_dir}/bin/shutdown.sh", 12 | "version": "{tomcat_dir}/bin/catalina.sh version", 13 | "configtest": "{tomcat_dir}/bin/catalina.sh configtest" 14 | }, 15 | "nginx": { 16 | "start": "{nginx_path} -s start", 17 | "stop": "{nginx_path} -s stop", 18 | "reload": "{nginx_path} -s reload" 19 | } 20 | }, 21 | "vars_temp": { 22 | "springboot": [{ 23 | "value": "sh_bin_dir", 24 | "desc": "sh脚本文件目录" 25 | }, { 26 | "value": "build_sh_file", 27 | "desc": "**_build.sh文件名称" 28 | }, { 29 | "value": "ctl_sh_file", 30 | "desc": "**_ctl.sh文件名称" 31 | }, { 32 | "value": "project_dir", 33 | "desc": "项目代码目录" 34 | }], 35 | "tomcat": [{ 36 | "value": "tomcat_dir", 37 | "desc": "tomcat目录" 38 | }, { 39 | "value": "tomcat_webapps", 40 | "desc": "tomcat webapps目录" 41 | }, { 42 | "value": "tomcat_logs", 43 | "desc": "tomcat logs目录" 44 | }, { 45 | "value": "tomcat_startup", 46 | "desc": "tomcat启动脚本文件" 47 | }, { 48 | "value": "tomcat_shutdown", 49 | "desc": "tomcat停止脚本文件" 50 | }], 51 | "nginx": [{ 52 | "value": "nginx_dir", 53 | "desc": "Nginx目录" 54 | }, { 55 | "value": "nginx", 56 | "desc": "nginx执行文件路径" 57 | }] 58 | }, 59 | "condition_temp": { 60 | "d1": "无法访问", 61 | "d2": "没有运行", 62 | "d3": "访问正常", 63 | "d4": "运行正常" 64 | } 65 | } -------------------------------------------------------------------------------- /AppMonitor/bin/Release/help/sftp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Linux 6 | 7 | 21 | 22 |

从服务器下载文件到本地:
23 | [root@localhost ~]$ get [remote file path] [local file path]
24 |

25 | 26 |

上传本地文件到服务器:
27 | [root@localhost ~]$ put [local file path] [remote file path]
28 |

29 | 30 |

更改服务器目录到“路径”:
31 | [root@localhost ~]$ cd [path]
32 |

33 | 34 |

更改文件“路径”的权限“模式”:
35 | [root@localhost ~]$ chmod mode [path]
36 |

37 | 38 |

更改文件“路径”的“拥有者”:
39 | [root@localhost ~]$ chown own [path]
40 |

41 | 42 |

显示服务器“路径”下的文件列表:
43 | [root@localhost ~]$ ls [path]
44 |

45 | 46 |

在服务器路径下创建“目录”:
47 | [root@localhost ~]$ mkdir [path]
48 |

49 | 50 |

删除服务器路径下的“目录”:
51 | [root@localhost ~]$ rmdir [path]
52 |

53 | 54 |

修改服务器的目录名称:
55 | [root@localhost ~]$ rename [oldname] [newname]
56 |

57 | 58 |

显示当前目录路径
59 | [root@localhost ~]$ pwd
60 |

61 | 62 |

显示全部帮助命令
63 | [root@localhost ~]$ help 或者 ?
64 |

65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/help/ssh.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Linux 6 | 7 | 21 | 22 | 23 |

显示当前目录路径
24 | [root@localhost ~]$ pwd
25 |

26 | 27 |

更改服务器目录到“路径”:
28 | [root@localhost ~]$ cd [path]
29 |

30 | 31 |

在服务器路径下创建“目录”:
32 | [root@localhost ~]$ mkdir [path]
33 |

34 | 35 |

删除服务器文件或目录:
36 | [root@localhost ~]$ rm [path]
37 | [root@localhost ~]$ rm -rf [path]
38 | [root@localhost ~]$ rm --help
39 |

40 | 41 |

重命名或移动文件/目录:
42 | [root@localhost ~]$ mv [path] [new path]
43 | [root@localhost ~]$ mv [name] [new name]
44 |

45 | 46 |

端口占用查询:
47 | [root@localhost ~]$ netstat –apn | grep [port]
48 | [root@localhost ~]$ lsof -i:[port]
49 |

50 | 51 |

新增用户:
52 | [root@localhost ~]$ useradd [acc]
53 | [root@localhost ~]$ passwd [acc]
54 |

55 | 56 |

安装zip 、unzip 命令组件
57 | [root@localhost ~]$ yum install -y unzip zip 58 |

59 | 60 |

把文件授权给当前用户
61 | [root@localhost ~]$ chmod +x [file] 62 |

63 | 64 |

文件权限转移
65 | [root@localhost ~]$ chown [username]:[username] [file]
66 | [root@localhost ~]$ chown -R [username]:[username] [file] 67 |

68 | 69 |

关闭Conter Os系统防火墙
70 | [root@localhost ~]$ systemctl stop firewalld.service 71 |

72 | 73 |

快速开放端口(重启后失效):
74 | [root@localhost ~]$ iptables -I INPUT -p tcp --dport [port] -j ACCEPT 75 |

76 | 77 | 78 |

解压:
79 | //解压 tar包
80 | [root@localhost ~]$ tar –xvf [*.tar]
81 | //解压tar.gz
82 | [root@localhost ~]$ tar -xzvf [*.tar.gz]
83 | //解压 tar.bz2
84 | [root@localhost ~]$ tar -xjvf [*.tar.bz2]
85 | //解压tar.Z
86 | [root@localhost ~]$ tar –xZvf [*.tar.Z]
87 | //解压rar
88 | [root@localhost ~]$ unrar e [*.rar]
89 | //解压zip
90 | [root@localhost ~]$ unzip [*.zip]
91 |
92 | 93 | 1、*.tartar –xvf 解压
94 | 2、*.gzgzip -d或者gunzip 解压
95 | 3、*.tar.gz*.tgztar –xzf 解压
96 | 4、*.bz2bzip2 -d或者用bunzip2 解压
97 | 5、*.tar.bz2tar –xjf 解压
98 | 6、*.Zuncompress 解压
99 | 7、*.tar.Ztar –xZf 解压
100 | 8、*.rarunrar e 解压
101 | 9、*.zipunzip 解压
102 |
103 |

104 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/log4net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/log4net.dll -------------------------------------------------------------------------------- /AppMonitor/bin/Release/session/session0.json: -------------------------------------------------------------------------------- 1 | { 2 | "Index": 1, 3 | "SessionId": "S1517569644943", 4 | "Name": "192.168.20.32", 5 | "Host": "192.168.20.32", 6 | "Port": 22, 7 | "Protocol": "SSH", 8 | "Method": "Password", 9 | "UserName": "gxyj", 10 | "Password": "t3V61pM3v73VyQXFLUpjT2AmLEEZRGca6xs9WW3/lEo=", 11 | "RemenberPwd": true, 12 | "CentralServerConfigDir": "", 13 | "Theme": { 14 | "ColorScheme": "Default Scheme", 15 | "FontName": "Courier New", 16 | "FontSize": 11 17 | }, 18 | "MonitorConfigList": [], 19 | "CustomShellList": [], 20 | "ShellList": [ 21 | "ps -ef | grep tomcat&", 22 | "ps -ef | grep java&", 23 | "tailf ../logs/[name].{date}.log", 24 | "scp [user]@[host]:[filepath] [filepath]", 25 | "rm -rf [file/dir]" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_01.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_02.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_03.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_04.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_05.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_06.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_07.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_08.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_09.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_10.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_11.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_12.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_13.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_14.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_17.gif -------------------------------------------------------------------------------- /AppMonitor/bin/Release/skin/skin_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/skin/skin_18.png -------------------------------------------------------------------------------- /AppMonitor/bin/Release/temp/1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/bin/Release/temp/1.txt -------------------------------------------------------------------------------- /AppMonitor/ftp_64px.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/ftp_64px.ico -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Form1.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Form1.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.AboutForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.AboutForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.ConditionTaskForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.ConditionTaskForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.CustomScriptForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.CustomScriptForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.FileAttrForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.FileAttrForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.FullScreenMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.FullScreenMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.IceMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.IceMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.InputForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.InputForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.InputSshPwdForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.InputSshPwdForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.LockForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.LockForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.MonitorBaseForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.MonitorBaseForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.MonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.MonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.MonitorItemForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.MonitorItemForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.NginxMappingItemForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.NginxMappingItemForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.NginxMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.NginxMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.QuickCommandManageForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.QuickCommandManageForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.SessionManageForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.SessionManageForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.SettingForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.SettingForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.ShellHelpForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.ShellHelpForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.SpringBootMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.SpringBootMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.SshSettingForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.SshSettingForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.TextEditorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.TextEditorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.TextFindForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.TextFindForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.TimedTaskForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.TimedTaskForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Froms.TomcatMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Froms.TomcatMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.MainForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.MainForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Plugin.CentralServerConfigForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Plugin.CentralServerConfigForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Plugin.CustomShellForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Plugin.CustomShellForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Plugin.SftpForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Plugin.SftpForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Plugin.SftpLinuxForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Plugin.SftpLinuxForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Plugin.SftpWinForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Plugin.SftpWinForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Plugin.YmlNodeForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Plugin.YmlNodeForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.Properties.Resources.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\Tamir.SharpSSH.dll 2 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\DiffieHellman.dll 3 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\Org.Mentalis.Security.dll 4 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\Tamir.SharpSSH.pdb 5 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.csprojResolveAssemblyReference.cache 6 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Form1.resources 7 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Properties.Resources.resources 8 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.csproj.GenerateResource.Cache 9 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.MainForm.resources 10 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\TabStrip.dll 11 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.SshSettingForm.resources 12 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\YSTools.dll 13 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\Newtonsoft.Json.dll 14 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.MonitorForm.resources 15 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\log4net.dll 16 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\CSkin.dll 17 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.FullScreenMonitorForm.resources 18 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.MonitorItemForm.resources 19 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.CustomScriptForm.resources 20 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.QuickCommandManageForm.resources 21 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.SpringBootMonitorForm.resources 22 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.MonitorBaseForm.resources 23 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.NginxMonitorForm.resources 24 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.TomcatMonitorForm.resources 25 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.SessionManageForm.resources 26 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\FastColoredTextBox.dll 27 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.TextEditorForm.resources 28 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Plugin.CustomShellForm.resources 29 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.TimedTaskForm.resources 30 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.ShellHelpForm.resources 31 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.InputSshPwdForm.resources 32 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.NginxMappingItemForm.resources 33 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.ConditionTaskForm.resources 34 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.LockForm.resources 35 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.SettingForm.resources 36 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Plugin.SftpForm.resources 37 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Plugin.sftpWinForm.resources 38 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Plugin.SftpLinuxForm.resources 39 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.InputForm.resources 40 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.FileAttrForm.resources 41 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\AppMonitor.exe.config 42 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\AppMonitor.exe 43 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\AppMonitor.pdb 44 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.exe 45 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.pdb 46 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.TextFindForm.resources 47 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.IceMonitorForm.resources 48 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\System.Runtime.InteropServices.APIs.dll 49 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\bin\Debug\System.Windows.Forms.TreeListView.dll 50 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Froms.AboutForm.resources 51 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Plugin.CentralServerConfigForm.resources 52 | G:\SoftResource\CSharp\SharpSSH-1.1.1.13.src\AppMonitor\obj\Debug\AppMonitor.Plugin.YmlNodeForm.resources 53 | -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.exe -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/AppMonitor.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/AppMonitor.pdb -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /AppMonitor/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Form1.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Form1.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.AboutForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.AboutForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.ConditionTaskForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.ConditionTaskForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.CustomScriptForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.CustomScriptForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.FileAttrForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.FileAttrForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.FullScreenMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.FullScreenMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.IceMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.IceMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.InputForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.InputForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.InputSshPwdForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.InputSshPwdForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.LockForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.LockForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.MonitorBaseForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.MonitorBaseForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.MonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.MonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.MonitorItemForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.MonitorItemForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.NginxMappingItemForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.NginxMappingItemForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.NginxMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.NginxMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.QuickCommandManageForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.QuickCommandManageForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.SessionManageForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.SessionManageForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.SettingForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.SettingForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.ShellHelpForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.ShellHelpForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.SpringBootMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.SpringBootMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.SshSettingForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.SshSettingForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.TextEditorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.TextEditorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.TextFindForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.TextFindForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.TimedTaskForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.TimedTaskForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Froms.TomcatMonitorForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Froms.TomcatMonitorForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.MainForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.MainForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Plugin.CentralServerConfigForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Plugin.CentralServerConfigForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Plugin.CustomShellForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Plugin.CustomShellForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Plugin.IceDeployVersionForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Plugin.IceDeployVersionForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Plugin.SftpForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Plugin.SftpForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Plugin.SftpLinuxForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Plugin.SftpLinuxForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Plugin.SftpWinForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Plugin.SftpWinForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Plugin.YmlNodeForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Plugin.YmlNodeForm.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.Properties.Resources.resources -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.exe -------------------------------------------------------------------------------- /AppMonitor/obj/Release/AppMonitor.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/AppMonitor.pdb -------------------------------------------------------------------------------- /AppMonitor/obj/Release/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /AppMonitor/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /AppMonitor/obj/Release/TempPE/Properties.Resources.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/obj/Release/TempPE/Properties.Resources.Designer.cs.dll -------------------------------------------------------------------------------- /AppMonitor/qd64.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/qd64.ico -------------------------------------------------------------------------------- /AppMonitor/ssh.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/AppMonitor/ssh.ico -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AMShell 2 | 用c#开发的仿XShell客户端,集成了Springboot项目、tomcat、nginx、ice项目的监控,一键部署、启动、停止等功能,还能设置自动任务、执行自定义脚本、按条件监控项目执行脚本等等有用功能,为开发团队带来方便,您可以自行扩展功能,想咋整就咋整. 3 | 工程使用Visual Studio 2013开发。 4 | 5 | ![1](http://files.git.oschina.net/group1/M00/02/DC/PaAvDFpycjaAcHAGAAFCfcMGsE4700.jpg?token=13ba2e26dedc310e81206231a392d151&ts=1517449830&attname=222222.jpg) 6 | ![2](http://files.git.oschina.net/group1/M00/02/DC/PaAvDFpyclWAVCImAAGc2cKbGL0964.jpg?token=204d3da00f39960e1f94f7277bdaba04&ts=1517449830&attname=5555555.jpg) 7 | ![3](http://files.git.oschina.net/group1/M00/02/DC/PaAvDFpyck2Ac6afAAEk4BMhgJ0637.jpg?token=904797fffa17d2cabe0893ee0b19b551&ts=1517449830&attname=3333333.jpg) 8 | ![4](http://files.git.oschina.net/group1/M00/02/DC/PaAvDFpyciuALxT_AABNYV7-TsU171.png?token=f879ec327dd07ef23fe91244fb720573&ts=1517449830&attname=111111.png) 9 | ![5](http://files.git.oschina.net/group1/M00/02/DC/PaAvDFpyckCAZIbBAAKIuE5U9hQ585.jpg?token=32d8150be58613d7b707e02e863f6fb2&ts=1517449830&attname=666666.jpg) 10 | ![6](http://files.git.oschina.net/group1/M00/02/E1/PaAvDFp1JI2AG1L6AAKH9SQ3Rys656.png?token=613617c7ab622f02dd51e12b8f5a6be9&ts=1517626540&attname=2222.png) 11 | ![7](http://files.git.oschina.net/group1/M00/02/E1/PaAvDFp1JJWAFftwAAFhcTiCWb0308.png?token=edb75f4ff4422b0081952a52e44ae7bd&ts=1517626540&attname=33333.png) 12 | ![8](http://files.git.oschina.net/group1/M00/02/E1/PaAvDFp1JJyAJ4y1AAYIX42VHGs952.png?token=b4bca92f35455aa831202a7172055893&ts=1517626540&attname=44444.png) 13 | ![9](http://files.git.oschina.net/group1/M00/02/E1/PaAvDFp1JKOAXRy8AAOH-q8b8lw362.png?token=e0e8a280c9aedd7434d7b9f7c6e34d90&ts=1517626540&attname=55555.png) 14 | ![10](http://files.git.oschina.net/group1/M00/02/E1/PaAvDFp1JKyAcNLKAAViUn_NHe4720.png?token=8788ac09d4222f9fdcaa525109fa765d&ts=1517626540&attname=666666.png) 15 | ![11](http://files.git.oschina.net/group1/M00/02/E1/PaAvDFp1JiqAb7QtAAJVxg3NQnY155.png?token=6161b8fdb84774a296e44f0e001cd195&ts=1517626923&attname=7777.png) 16 | -------------------------------------------------------------------------------- /cssh.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.21005.1 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppMonitor", "AppMonitor\AppMonitor.csproj", "{F22D235F-F2FE-43D9-AAD5-6D695ADB556E}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Any CPU = Debug|Any CPU 10 | Release|Any CPU = Release|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {F22D235F-F2FE-43D9-AAD5-6D695ADB556E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {F22D235F-F2FE-43D9-AAD5-6D695ADB556E}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {F22D235F-F2FE-43D9-AAD5-6D695ADB556E}.Release|Any CPU.ActiveCfg = Release|Any CPU 16 | {F22D235F-F2FE-43D9-AAD5-6D695ADB556E}.Release|Any CPU.Build.0 = Release|Any CPU 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /cssh.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/cssh.suo -------------------------------------------------------------------------------- /cssh.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/214175590/AMShell/8710e14b68199ba7c64a3b56cc673dc7bc2ee6da/cssh.v12.suo --------------------------------------------------------------------------------