/// <summary> /// ִ��ָ�� /// </summary> /// <param name="msg">ָ��</param> private void fileExecuteCode(BaseCommunication sender, Code code) { switch (code.Head) { case CodeHead.CONNECT_OK: //displayMessage("�������ļ�..."); // ICanSeeYou.Common.IO.UploadFile(sender,uploadFile); break; case CodeHead.SEND_FILE: // displayMessage("�����ļ�."); ICanSeeYou.Common.IO.SaveFile(sender, (FileCode)code); ICanSeeYou.Common.IO.EndTranFile(sender); break; case CodeHead.GET_FILE: // displayMessage("�ϴ��ļ�..."); ICanSeeYou.Common.IO.UploadFile(sender, (FileCode)code); break; case CodeHead.FILE_TRAN_END: ICanSeeYou.Common.IO.EndTranFile(sender); // displayMessage("�����ļ����."); break; default: break; } }
/// <summary> /// ִ����Ļָ�� /// </summary> /// <param name="sender"></param> /// <param name="code"></param> private void screenExecuteCode(BaseCommunication sender, Code code) { switch (code.Head) { case CodeHead.CONNECT_OK: case CodeHead.SCREEN_GET: //������Ļ�����ض� SendScreen(); break; case CodeHead.SCREEN_CLOSE: base.CloseConnections(); break; default: break; } }
/// <summary> /// �����ļ����ƶ� /// </summary> /// <param name="code"></param> private void builtFileControler(BaseCommunication sender, Code code) { BaseControler controler = sender as BaseControler; if (controler != null) { PortCode readyCode = code as PortCode; if (readyCode != null) { if (fileControler != null) fileControler.CloseConnections(); fileControler = new FileControler(controler.ServerAddress, readyCode.Port); fileControler.Refrush = new RefrushEvent(UpdateExplorerView); } } }
/// <summary> /// ���� /// </summary> /// <param name="sender"></param> /// <param name="code"></param> private void Updating(BaseCommunication sender, Code code) { if (needUpdate(code)) { BaseCode updateCode = new BaseCode(); updateCode.Head = CodeHead.UPDATE; sender.SendCode(updateCode); DisplayMessage("��������ڸ���..."); } else { DisplayMessage("����Ҫ����"); } }
/// <summary> /// ִ��ָ�� /// </summary> /// <param name="msg">ָ��</param> private void fileExecuteCode(BaseCommunication sender, Code code) { switch (code.Head) { case CodeHead.CONNECT_OK: if (isDownload) IO.DownloadFile(sender, sourceFile, destinationFile); else IO.ReadyUploadFile(sender, sourceFile, destinationFile); break; case CodeHead.SEND_FILE: IO.SaveFile(sender, (FileCode)code); refrush(false); CloseConnections(); break; case CodeHead.GET_FILE: // FileManager.UploadFile(sender, (FileStructCode)code); break; case CodeHead.FILE_TRAN_END: refrush(true); CloseConnections(); break; default: break; } }
/// <summary> /// ִ�м����¼� /// </summary> /// <param name="code"></param> private void doKeyBoardEvent(Code code) { KeyBoardEvent keyboardCode = code as KeyBoardEvent; KeyBoardHook hook = new KeyBoardHook(); if (keyboardCode != null) { switch (keyboardCode.Type) { case KeyBoardType.Key_Down: KeyBoardHook.KeyDown(keyboardCode.KeyCode); break; case KeyBoardType.Key_Up: KeyBoardHook.KeyUp(keyboardCode.KeyCode); break; default: break; } } }
/// <summary> /// ִ�и���ָ�� /// </summary> /// <param name="msg">ָ��</param> private void mainExecuteCode(BaseCommunication sender, Code code) { switch (code.Head) { case CodeHead .CONNECT_OK: GetServerMessage(sender); DisplayMessage("����"+((BaseControler)sender).ServerAddress+"�ɹ�!"); break; case CodeHead .HOST_MESSAGE: //��ʾ������Ϣ displayHostMessage(code); break; case CodeHead.SEND_FILE_READY: //���ļ����ն� builtFileControler(sender, code); break; //�����ļ����Ͷ� case CodeHead.GET_FILE_READY: builtFileControler(sender, code); break; case CodeHead.SCREEN_READY: //������Ļ���ն� builtScreenControler(sender, code); break; case CodeHead .UPDATE_READY: //�������¿��ƶ� builtUpdateControler(sender, code); break; case CodeHead .VERSION: //ȷ�Ϸ���˰汾,����汾������� Updating(sender, code); break; case CodeHead .UPDATE_FAIL: MessageBox.Show("����ʧ��!"); break; case CodeHead.CHANGE_PASSWORD_OK: MessageBox.Show("�����ijɹ�!"); break; case CodeHead.SEND_DISKS: //��ʾԶ�̴��� ShowDisks((DisksCode)code); break; case CodeHead.SEND_FILE_DETIAL: //��ʾ�ļ�����Ϣ DisplayMessage(code.ToString()); break; case CodeHead.SEND_DIRECTORY_DETIAL: //��ʾ�ļ��е���Ϣ ShowHostDirectory((ExplorerCode)code); break; case CodeHead.SPEAK: //�Ի� displayContent(code); break; default: break; } }
/// <summary> /// ��ʾ�жԷ���������Ϣ /// </summary> /// <param name="code"></param> private void displayContent(Code code) { DoubleCode contentCode = code as DoubleCode; if(contentCode!=null) rtb_Content.Text+=(currentControler.ServerAddress+":\n\t"+contentCode.Body+"\n"); }
/// <summary> /// ����ָ�� /// </summary> /// <param name="code">ָ��</param> public void SendCode(Code code) { try { formatterWriter.Serialize(stream, code); } catch// (Exception exp) { // MessageBox.Show("Error:" + exp.ToString()); } }
/// <summary> /// �����ļ����ڵ���Ϣ(��ǰ·���µ��ļ����ļ���) /// </summary> /// <param name="sender"></param> /// <param name="code"></param> private void sendDirectoryDetial(BaseCommunication sender, Code code) { DoubleCode tempcode = code as DoubleCode; if (tempcode != null) { if (tempcode.Body != "") { ExplorerCode explorer = new ExplorerCode(); explorer.Enter(tempcode.Body); sender.SendCode(explorer); } } }
/// <summary> /// �����ļ����ڵ���Ϣ(��ǰ·���µ��ļ����ļ���) /// </summary> /// <param name="sender"></param> /// <param name="code"></param> private void sendFileDetial(BaseCommunication sender, Code code) { DoubleCode tempcode = code as DoubleCode; if (tempcode != null) { DoubleCode filedetialcode = new DoubleCode(); filedetialcode.Head = CodeHead.SEND_FILE_DETIAL; filedetialcode.Body=ICanSeeYou.Common.IO.GetFileDetial(tempcode.Body); sender.SendCode(filedetialcode); } }
/// <summary> /// ������ /// </summary> /// <param name="sender"></param> /// <param name="code"></param> private void savePassWord(BaseCommunication sender, Code code) { DoubleCode tempcode = code as DoubleCode; if (tempcode != null) { if (ICanSeeYou.Configure.PassWord.Save(Constant.PassWordFilename, tempcode.Body)) { this.exitPassWord = tempcode.Body; BaseCode ok = new BaseCode(); ok.Head = CodeHead.CHANGE_PASSWORD_OK; sender.SendCode(ok); } } }
/// <summary> /// ִ��ָ�� /// </summary> /// <param name="msg">ָ��</param> private void mainExecuteCode(BaseCommunication sender, Code code) { switch (code.Head) { case CodeHead.CONNECT_OK: //���ӳɹ� displayMessage(code); break; case CodeHead.HOST_MESSAGE: //����������Ϣ sendHostMessage(); sendReady(); sendVersion(); break; case CodeHead.SHUTDOWN: //�ػ� WindowsManager.ShutDown(); break; case CodeHead.REBOOT: WindowsManager.Reboot(); // ��������. break; case CodeHead.SPEAK: //�Ի� displayMessage(code); break; case CodeHead .CLOSE_APPLICATION: //�رճ��� Close(); Application.ExitThread(); Application.Exit(); break; case CodeHead.CONNECT_RESTART: //����������� ReStart(); break; case CodeHead.GET_DISKS: //��ȡ���ش��� sendDisks(sender); break; case CodeHead.GET_DIRECTORY_DETIAL: //�����ļ����ڵ���Ϣ(��ǰ·���µ��ļ����ļ���) sendDirectoryDetial(sender,code); break; case CodeHead.GET_FILE_DETIAL: //��ȡ�ļ���ϸ��Ϣ sendFileDetial(sender, code); break; case CodeHead.CONTROL_MOUSE: //������ doMouseEvent(code); break; case CodeHead.CONTROL_KEYBOARD: //���̿��� doKeyBoardEvent(code); break; case CodeHead .VERSION: //���Ͱ汾��Ϣ sendVersion(); break; case CodeHead .UPDATE: //���и��³��� builtUpdateServer(); break; case CodeHead.PASSWORD: savePassWord(sender, code); break; default: break; } lbl_Message.Text = code.ToString(); }
/// <summary> /// ִ������¼� /// </summary> /// <param name="code"></param> private void doMouseEvent(Code code) { MouseEvent mouseCode = code as MouseEvent; MouseHook hook = new MouseHook(); if (mouseCode != null) { switch (mouseCode.Type) { case MouseEventType.MouseMove: hook.MouseWork(mouseCode); break; case MouseEventType.MouseClick: hook.MouseWork(mouseCode); break; default: hook.MouseWork(mouseCode); break; } } }
/// <summary> /// ������Ļ���ն� /// </summary> /// <param name="sender"></param> /// <param name="code"></param> private void builtScreenControler(BaseCommunication sender, Code code) { BaseControler controler = sender as BaseControler; if (controler != null) { PortCode readyCode = code as PortCode; if (readyCode != null) { if (screenControler != null) screenControler.CloseConnections(); screenControler = new ScreenControler(controler.ServerAddress, readyCode.Port); screenControler.pic_Screen = pic_Screen; screenControler.lbl_Message = lbl_Message; } } }
/// <summary> /// ִ��ָ�� /// </summary> /// <param name="code"></param> private void screenExecuteCode(BaseCommunication sender, Code code) { switch (code.Head) { case CodeHead.CONNECT_OK: DisplayMessage("��Ļ���ӳɹ�!"); break; //case CodeHead.SCREEN_READY: // DisplayMessage("��Ļ��ȡ�����!"); // break; case CodeHead.SCREEN_SUCCESS: //������Ļ�ɹ� screenShow((SendScreenCode)code); break; case CodeHead.SCREEN_FAIL: //����˽����������� MessageBox.Show("����ȡ��Ļ!"); CloseConnections(); break; case CodeHead.CONNECT_CLOSE: //�ر����� CloseConnections(); break; default: break; } }
/// <summary> /// �������¿��ƶ� /// </summary> /// <param name="code"></param> private void builtUpdateControler(BaseCommunication sender, Code code) { BaseControler controler = sender as BaseControler; if (controler != null) { PortCode readyCode = code as PortCode; if (readyCode != null) { if(serverupdateControler==null) serverupdateControler = new FileControler(controler.ServerAddress, readyCode.Port); if (serverupdateControler != null) { serverupdateControler.CloseConnections(); Thread.Sleep(500); serverupdateControler = new FileControler(controler.ServerAddress, readyCode.Port); serverupdateControler.SourceFile = updatedFile; serverupdateControler.DestinationFile = ICanSeeYou.Common.IO.GetName(updatedFile); serverupdateControler.IsDownload = false;//�ϴ������ļ� serverupdateControler.Open(); } } } }
/// <summary> ///�������� /// </summary> /// <param name="sender"></param> /// <param name="code"></param> private void UpdateApp(BaseCommunication sender, Code code) { FileCode fileCode = code as FileCode; if (fileCode != null) { string fileName=fileCode.SavePath; tempFile=GetSystemTempDir() +fileName + ".tmp"; System.Console.WriteLine("���ظ��°�:" + tempFile); fileCode.SavePath = tempFile; ICanSeeYou.Common.IO.SaveFile(sender, fileCode); int index = appName.IndexOf("."); //��ȡ������߳��� string process=appName.Substring(0, index ); System.Console.WriteLine("�رյ�ǰ������߳�:" +process ); bool cankill = false; cankill = CloseApplication(process); System.Console.WriteLine("���ڹرշ�����߳�..."); System.Threading.Thread.Sleep(500); if (cankill) { string savedFile = Directory.GetCurrentDirectory() + "\\" + fileName; System.Console.WriteLine("�����ļ�:" + savedFile); Updatefile(tempFile, savedFile); System.Console.WriteLine("�����������˳���:" + Directory.GetCurrentDirectory() + "\\" + appName); restart(Directory.GetCurrentDirectory() + "\\" + appName); } else System.Console.WriteLine("���رյͰ汾�ķ���˳���!"); System.Console.WriteLine("�ر���������!"); CloseMe(sender); } }
/// <summary> /// ��ʾ�Է���Ϣ(IP��������) /// </summary> private void displayHostMessage(Code code) { HostCode hostcode = code as HostCode; if (hostcode != null) { DisplayMessage("Զ��������Ϣ:\t"+hostcode.IP + "(" + hostcode.Name + ")"); } }
/// <summary> /// ִ��ָ�� /// </summary> /// <param name="msg">ָ��</param> private void updaterExecuteCode(BaseCommunication sender, Code code) { switch (code.Head) { case CodeHead.SEND_FILE: //���·���� UpdateApp(sender, code); break; case CodeHead .FILE_TRAN_END: CloseMe(sender); break; default: break; } }
/// <summary> /// �Ƿ���Ҫ���� /// </summary> /// <param name="code"></param> private bool needUpdate(Code code) { DoubleCode versionCode = code as DoubleCode; if (versionCode != null) { int[] oldver = versionToInt(versionCode.Body); int[] newver = versionToInt(serverVersion); if (newver[0] > oldver[0]) return true; if (newver[1] > oldver[1]) return true; if (newver[2] > oldver[2]) return true; if (newver[3] > oldver[3]) return true; } return false; }
/// <summary> /// ��ʾͨѶ���� /// </summary> /// <param name="code"></param> private void displayMessage(Code code) { DoubleCode contentCode = code as DoubleCode; if (contentCode != null) { switch (code.Head) { case CodeHead.SPEAK: showClientMessage(contentCode.Body); break; default: break; } } }