欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂JAVA培訓簡述C#程序啟動項的設置方法

2019-09-26 09:59:16 5860瀏覽

本篇文章扣丁學堂JAVA培訓小編主要是給大家介紹一下C#程序啟動項的設置方法,關于C#程序啟動項的設置方法文中有詳細的代碼列出供小伙伴們參考,感興趣的小伙伴就隨小編一起來看看吧。


扣丁學堂JAVA培訓簡述C#程序啟動項的設置方法


托盤圖標設置


新建一個NotifyIcon,會在托盤處顯示一個圖標。

NotifyIcon.Icon可以直接設置一個ico圖片,也可以延用原有程序的圖標。

notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(Application.ExecutablePath);


public partial class MainWindow : Window
 {
  private NotifyIcon notifyIcon;

  public MainWindow()
  {
   InitializeComponent();
   SetNotifyIcon();
   this.Hide();
  }

  #region NotifyIcon

  private void SetNotifyIcon()
  {
   this.notifyIcon = new NotifyIcon();
   this.notifyIcon.BalloonTipText = "磁盤清理工具";
   this.notifyIcon.ShowBalloonTip(2000);
   this.notifyIcon.Text = "磁盤清理工具:每20天清理一次";
   this.notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(Application.ExecutablePath);
   this.notifyIcon.Visible = true;
   //打開菜單項
   MenuItem open = new MenuItem("打開");
   open.Click += new EventHandler(Show);
   //退出菜單項
   MenuItem exit = new MenuItem("退出");
   exit.Click += new EventHandler(Close);
   //關聯(lián)托盤控件
   MenuItem[] childen = new MenuItem[] { open, exit };
   notifyIcon.ContextMenu = new ContextMenu(childen);

   this.notifyIcon.MouseDoubleClick += new MouseEventHandler((o, e) =>
   {
    if (e.Button == MouseButtons.Left) this.Show(o, e);
   });
  }

  private void Show(object sender, EventArgs e)
  {
   this.Visibility = Visibility.Visible;
   this.ShowInTaskbar = true;
   this.Activate();
  }

  private void Hide(object sender, EventArgs e)
  {
   this.ShowInTaskbar = false;
   this.Visibility = Visibility.Hidden;
  }

  private void Close(object sender, EventArgs e)
  {
   System.Windows.Application.Current.Shutdown();
  }

  #endregion

  #region 窗口

  private void MinimizeButton_OnClick(object sender, RoutedEventArgs e)
  {
   WindowState = WindowState.Minimized;
  }

  private void CloseButton_OnClick(object sender, RoutedEventArgs e)
  {
   this.Hide();
  }

  private void HeaderGrid_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  {
   if (e.ButtonState == MouseButtonState.Pressed)
   {
    this.DragMove();
   }
  }

  #endregion
 }


禁用多進程啟動


//禁止雙進程
 bool canCreateNew;
 using (System.Threading.Mutex m = new System.Threading.Mutex(true, System.Windows.Forms.Application.ProductName, out canCreateNew))
 {
  if (!canCreateNew)
  {
   this.Shutdown();
  }
 }


刪除原有進程


/// <summary>
 /// 刪除原有進程
 /// </summary>
 /// <param name="processName"></param>
 private void KillProcess(string processName)
 {
  //得到所有打開的進程 
  try
  {
   Process currentProcess = Process.GetCurrentProcess();
   var processes = Process.GetProcessesByName(processName).Where(process=> process.Id!=currentProcess.Id);
   foreach (Process thisproc in processes)
   {
    //找到程序進程,kill之。
    if (!thisproc.CloseMainWindow())
    {
     thisproc.Kill();
    }
   }
  }
  catch (Exception ex)
  {
    
  }
 }


設置開機自啟動


private void SetAppAutoRun(bool autoRun)
 {
  if (autoRun) //設置開機自啟動 
  {
   string path = System.Windows.Forms.Application.ExecutablePath;
   RegistryKey rk = Registry.LocalMachine;
   RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
   rk2.SetValue("JcShutdown", path);
   rk2.Close();
   rk.Close();
  }
  else //取消開機自啟動 
  {
   RegistryKey rk = Registry.LocalMachine;
   RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
   rk2.DeleteValue("JcShutdown", false);
   rk2.Close();
   rk.Close();
  }
 }


App.cs中完整代碼:


public partial class App : Application
 {
  public App()
  {
   //禁止雙進程
   bool canCreateNew;
   using (System.Threading.Mutex m = new System.Threading.Mutex(true, System.Windows.Forms.Application.ProductName, out canCreateNew))
   {
    if (!canCreateNew)
    {
     this.Shutdown();
    }
   }

   SetAppAutoRun(true);

   Startup += App_Startup;
  }

  private void SetAppAutoRun(bool autoRun)
  {
   if (autoRun) //設置開機自啟動 
   {
    MessageBox.Show("設置開機自啟動,需要修改注冊表", "提示"); // hovertree.com
    string path = System.Windows.Forms.Application.ExecutablePath;
    RegistryKey rk = Registry.LocalMachine;
    RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
    rk2.SetValue("JcShutdown", path);
    rk2.Close();
    rk.Close();
   }
   else //取消開機自啟動 
   {
    MessageBox.Show("取消開機自啟動,需要修改注冊表", "提示");
    RegistryKey rk = Registry.LocalMachine;
    RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
    rk2.DeleteValue("JcShutdown", false);
    rk2.Close();
    rk.Close();
   }
  }

  private void App_Startup(object sender, StartupEventArgs e)
  {
   new AutoCleanCacheHelper(CleanCacheVeiwModel.ViewModel).Start();
  }
 }


想要了解更多內容的小伙伴可以登錄扣丁學堂官網(wǎng)咨詢。想要學好JAVA開發(fā)小編給大家推薦口碑良好的扣丁學堂,扣丁學堂有專業(yè)老師制定的JAVA學習路線圖輔助學員學習,此外還有與時俱進的JAVA課程體系和JAVA視頻教程供大家學習,想要學好JAVA開發(fā)技術的小伙伴快快行動吧。扣丁學堂Java技術交流群:850353792。


                          JavaEE/微服務/源碼解析/分布式/企業(yè)級架構【VIP體驗課】


     【關注微信公眾號獲取更多學習資料】        【掃碼進入JavaEE/微服務VIP免費公開課】  



查看更多關于“Java開發(fā)資訊”的相關文章>>


標簽: Java培訓 Java視頻教程 Java多線程 Java面試題 Java學習視頻 springBoot項目

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部