a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C#程序啟動項的設置方法

2019-10-29 19:41:23
字體:
來源:轉載
供稿:網友

本文為大家分享了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);   //關聯托盤控件   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();  } }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品免费视频 | 深夜av在线 | 日韩欧美精品在线观看 | 全免费一级毛片免费看 | 黄色一级在线观看 | 91大神在线看 | 精品一区二区三区在线观看视频 | 亚洲成人av在线 | 天天干夜夜骑 | 久国久产久精永久网页 | 黄色香蕉网站 | 超碰人人爱 | 成人精品一区二区 | 亚洲精品一二区 | 国产欧美一区二区在线观看 | 99福利视频 | 欧美一区精品 | 国产精品一区二区精品 | 综合网激情五月 | 国产精品久久国产愉拍 | 中文字幕第一页在线视频 | 操操操操操操操操操操操操操操 | 亚州av| 亚洲国产精品久久久久秋霞不卡 | 精品国产乱码久久久久夜 | 日韩精品影院 | vagaa欧洲色爽免影院 | 久久99精品久久久久久国产越南 | 国产精品久久久久久久久久10秀 | 久久国产精品一区二区三区 | 欧美精品区 | 亚洲国产欧美一区二区三区久久 | 99国产精品视频免费观看一公开 | 欧美亚洲视频 | 久久99精品视频在线观看 | 一区二区在线电影 | av免费网站在线观看 | 一区二区在线免费观看 | 91视频免费看 | 日韩三区视频 | 亚洲女同老女人女同志 |