PageRenderTime 48ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/InstantImageUploader/App.xaml.cs

https://bitbucket.org/ugaya40/instant-image-uploader
C# | 86 lines | 68 code | 15 blank | 3 comment | 4 complexity | 1ba6b0802638603b7d3182416e97576c MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Windows;
  7. using Livet;
  8. using System.IO;
  9. using System.ComponentModel.Composition.Hosting;
  10. using System.Reflection;
  11. using InstantImageUploader.Models;
  12. using InstantImageUploader.Views;
  13. using System.Windows.Shell;
  14. using System.Diagnostics;
  15. using System.Runtime.InteropServices;
  16. using System.Drawing;
  17. namespace InstantImageUploader
  18. {
  19. /// <summary>
  20. /// App.xaml の相互作用ロジック
  21. /// </summary>
  22. public partial class App : Application
  23. {
  24. private void Application_Startup(object sender, StartupEventArgs e)
  25. {
  26. DispatcherHelper.UIDispatcher = Dispatcher;
  27. var assm = new AssemblyCatalog(Assembly.GetExecutingAssembly());
  28. var extensions = new DirectoryCatalog("Extensions");
  29. var agg = new AggregateCatalog(assm, extensions);
  30. var container = new CompositionContainer(agg);
  31. ImageUploaderApplication.Current.ImageUploaders = container.GetExportedValues<IImageUploader>();
  32. var osVersion = Environment.OSVersion;
  33. if (Environment.OSVersion.Platform == PlatformID.Win32NT &&
  34. Environment.OSVersion.Version.CompareTo(new Version(6, 1)) >= 0)
  35. {
  36. var jumpList = JumpList.GetJumpList(this) == null ? new JumpList() : JumpList.GetJumpList(this);
  37. jumpList.JumpItems.Clear();
  38. var appPath = Assembly.GetExecutingAssembly().Location;
  39. foreach (var imageUploader in ImageUploaderApplication.Current.ImageUploaders)
  40. {
  41. var dllPath = Assembly.GetAssembly(imageUploader.GetType()).Location;
  42. var jumpTask = new JumpTask();
  43. jumpTask.ApplicationPath = appPath;
  44. jumpTask.Arguments = "u:" + imageUploader.ImageUploaderName;
  45. jumpTask.Title = imageUploader.ImageUploaderName + "に画像をアップロード";
  46. jumpTask.CustomCategory="アップローダー";
  47. jumpTask.IconResourceIndex = -1;
  48. jumpList.JumpItems.Add(jumpTask);
  49. }
  50. var settingTask = new JumpTask();
  51. settingTask.ApplicationPath = appPath;
  52. settingTask.Arguments = "Setting";
  53. settingTask.CustomCategory="設定";
  54. settingTask.Title = "InstantImageUploader設定";
  55. settingTask.IconResourceIndex = -1;
  56. jumpList.JumpItems.Add(settingTask);
  57. JumpList.SetJumpList(this, jumpList);
  58. }
  59. if (e.Args.Contains("Setting"))
  60. {
  61. var settingWindow = new SettingWindow();
  62. settingWindow.Show();
  63. }
  64. else
  65. {
  66. var mainWindow = new MainWindow();
  67. mainWindow.Show();
  68. }
  69. }
  70. }
  71. }