public MainWindow() { InitializeComponent(); App.ViewModel = new AppViewModel(); DataContext = App.ViewModel; WindowState = System.Windows.WindowState.Minimized; Loaded += (_, __) => { if (!AppJumpList.RunningOnWin7) { MessageBox.Show("This application requires Windows 7", "Windows 7 Required", MessageBoxButton.OK); Environment.Exit(1); } Program.JumpList.SetJumpList(); Program.JumpList.OtherCommandLineReceived += line => { // from explorer Trace.WriteLine("CLI from explorer: " + line); var list = new List <string>(); list.Add(line); UploadFileList(list); }; Program.SetMenu(true); if (Program.HTTP == null) { FlashProgress(TaskbarProgressBarState.Error); } }; Closing += (_, e) => { WindowState = System.Windows.WindowState.Minimized; e.Cancel = true; }; Program.JumpListItemClicked += item => { this.Invoke(() => { Window w = null; switch (item.Title) { case "Send Note": w = new NoteWindow(); break; case "Send SMS": w = new MessageWindow(MessageWindowType.SMS); break; case "Send Mail": w = new MessageWindow(MessageWindowType.EMail); break; case "Send Clipboard": SendClipboard(); break; case "Set Transfer Destination": Uploader.PresentOptions(() => { FlashProgress(TaskbarProgressBarState.Normal); }, () => { FlashProgress(TaskbarProgressBarState.Paused); }, IntPtr.Zero); break; default: Trace.WriteLine("Invalid jumplist item: " + item); break; } if (w != null) { w.Show(); w.Topmost = true; w.Activate(); this.InvokeDelay(1000, () => w.Topmost = false); } }); }; }
private void SendClipboard() { if (Clipboard.ContainsText()) { var clipText = Clipboard.GetText(); TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Indeterminate); new Thread(() => { App.ViewModel.API.SendMessage("clip", "Clipboard Text", "", clipText); FlashProgress(TaskbarProgressBarState.Normal); }).Start(); } else if (Clipboard.ContainsImage()) { try { TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Indeterminate); var clipimg = Clipboard.GetImage(); string path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "S2WP7_" + new Random().Next(0, int.MaxValue) + "_Clipboard"); if (Settings.Get("Clipboard_PNG", true)) { path += ".png"; } else { path += ".jpg"; } using (FileStream stream = new FileStream(path, FileMode.Create)) { BitmapEncoder encoder; if (Settings.Get("Clipboard_PNG", true)) { encoder = new PngBitmapEncoder(); (encoder as PngBitmapEncoder).Interlace = PngInterlaceOption.On; } else { encoder = new JpegBitmapEncoder(); (encoder as JpegBitmapEncoder).QualityLevel = Settings.Get("JpegQuality", 95); } encoder.Frames.Add(BitmapFrame.Create(clipimg)); encoder.Save(stream); } Trace.WriteLine("Image saved at: " + path); var t = new Thread(() => { try { Uploader.UploadFile(path, ret => { if (ret.URL == null) { Trace.WriteLine("*** URL is null"); FlashProgress(TaskbarProgressBarState.Error); } else { App.ViewModel.API.SendMessage("img", "Clipboard Image", ret.URL, ""); FlashProgress(TaskbarProgressBarState.Normal); } }, () => { FlashProgress(TaskbarProgressBarState.Paused); }); } catch (Exception ex) { FlashProgress(TaskbarProgressBarState.Error); Trace.WriteLine("Error uploading file: " + ex); } }); t.SetApartmentState(ApartmentState.STA); t.Start(); } catch (Exception ex) { Trace.WriteLine("Error saving image:" + ex); } } else if (Clipboard.ContainsFileDropList()) { UploadFileList(GetFilesFromDropList(Clipboard.GetFileDropList())); } else { FlashProgress(TaskbarProgressBarState.Error); Trace.WriteLine("Clipboard content is not valid"); } }