StartupTool.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. //############################################################
  2. // https://github.com/yuzhengyang
  3. // author:yuzhengyang
  4. //############################################################
  5. using System;
  6. using Y.Utils.WindowsUtils.InfoUtils;
  7. namespace Y.Utils.AppUtils
  8. {
  9. public class StartupTool
  10. {
  11. [Obsolete]
  12. public static string RegeditRunKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
  13. public static string regAll = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
  14. public static string regCurrent = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run";
  15. public static string commonStartup = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartup);
  16. public static string startup = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
  17. [Obsolete]
  18. public static bool Regedit(string appName, string appFile, bool start = true)
  19. {
  20. if (start)
  21. {
  22. //添加启动注册表
  23. if (RegisterTool.Write(RegeditRunKey, appName, appFile))
  24. return true;
  25. }
  26. else
  27. {
  28. //删除启动注册表
  29. if (RegisterTool.Delete(RegeditRunKey, appName))
  30. return true;
  31. }
  32. return false;
  33. }
  34. public static bool Register(string name, string file, bool start = true, bool allUser = true)
  35. {
  36. if (start)
  37. {
  38. //注册开机启动注册表项
  39. if (allUser)
  40. {
  41. if (RegisterTool.SetValue(regAll, name, file)) return true;
  42. }
  43. else
  44. {
  45. if (RegisterTool.SetValue(regCurrent, name, file)) return true;
  46. }
  47. }
  48. else
  49. {
  50. //移除开机启动注册表项
  51. if (allUser)
  52. {
  53. if (RegisterTool.DeleteValue(regAll, name)) return true;
  54. }
  55. else
  56. {
  57. if (RegisterTool.DeleteValue(regCurrent, name)) return true;
  58. }
  59. }
  60. return false;
  61. }
  62. public static bool Shortcut(string name, string file, bool start = true, bool allUser = true)
  63. {
  64. if (start)
  65. {
  66. //添加开机启动开始菜单项
  67. if (allUser)
  68. {
  69. if (ShortcutTool.Create(commonStartup, name, file)) return true;
  70. }
  71. else
  72. {
  73. if (ShortcutTool.Create(startup, name, file)) return true;
  74. }
  75. }
  76. else
  77. {
  78. //删除开机启动开始菜单项
  79. if (allUser)
  80. {
  81. if (ShortcutTool.Delete(commonStartup, name)) return true;
  82. }
  83. else
  84. {
  85. if (ShortcutTool.Delete(startup, name)) return true;
  86. }
  87. }
  88. return false;
  89. }
  90. }
  91. }