/// <summary> /// Send process icon to the client /// </summary> private void SendProcessIcon(int previousProcessID) { if (ProcessPrototypesList != null && ProcessPrototypesList.Count > 0) { ProcessPrototype prototype = null; if (previousProcessID == 0) { prototype = ProcessPrototypesList.FirstOrDefault(); } else { prototype = ProcessPrototypesList.SkipWhile(x => x.ProcessID != previousProcessID).Skip(1).FirstOrDefault(); } if (prototype != null) { Icon ico = Icon.ExtractAssociatedIcon(prototype.FileName); if (ico != null) { Bitmap bitmap = ico.ToBitmap(); RemoteAppManager.Packets.Message message = new RemoteAppManager.Packets.Message(MessageTypes.RESPONSE_IMAGE, Utils.BitmapToBase64String(bitmap) + ConnectionService.PROCESS_START_DELIMITER + prototype.ProcessID + ConnectionService.PROCESS_END_DELIMITER); Send(this.Socket, message.Data, true); } } } }
private void RefreshProcessPrototypesList() { ProcessPrototypesList.Clear(); //build filename list if (_processesCacheList != null) { foreach (Process process in _processesCacheList) { String fileName = TryGetProcessFilename(process); if (!String.IsNullOrEmpty(fileName)) { ProcessPrototype proto = new ProcessPrototype(process.Id, fileName); ProcessPrototypesList.Add(proto); } } } }