哇塞,嘿嘿,各種變態的需求啊,這回整個開機自動運行的程序。不要說我壞啊,嘿嘿,C#也可以實現開始自動運行滴,開機了,哇塞,整個藍屏,要不整個黑屏,一直黑著,弄不好,那個哥們還要每個新顯示器去。哇哈哈。此實例謹獻給,好yin,嘿嘿。
這個實例的名字叫做開機自動運行軟件,用我們的C#來實現,這個實例沒有什麼難度,只是為我們的C#學習之路,增添一點點樂趣罷了。
首先我們還是准備工作,當然是引入命名空間了。
using Microsoft.Win32;
using System.IO;然後我們開始,准備一下,我們這個實例的位置,得到運行目錄有兩種方法,
第一種,拼接
//獲得文件的當前路徑
string dir = Directory.GetCurrentDirectory();
//獲取可執行文件的全部路徑
string exeDir = dir + @"\SetStart.exe";嘿嘿,當然也可以這麼做
string strName = Application.ExecutablePath;當然,下面我們要操作注冊表了,嘿嘿,這裡用360衛士大哥給咱們做個測試吧,防止我還要重啟電腦,哈哈 當然,你也可以俺下面的截圖輸入 msconfig查看
嘿嘿。好了,我們得到我們的文件了。
聲明一個可以使用注冊表的字段。
RegistryKey reg = null;然後我們打開注冊表
reg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);當然,如果沒有怎麼辦,廢話當然創建啊,
if (reg == null)
reg = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");好了,可以寫入注冊表的值了
if (isAutoRun)
{
reg.SetValue(name, fileName);
MessageBox.Show("開機可以黑屏了", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}OK,完成,封裝一下就OK了。
public static void SetAutoRun(string fileName, bool isAutoRun)
{
RegistryKey reg = null;
try
{
if (!File.Exists(fileName))
{
throw new Exception("木有這個文件,搞什麼搞");
}
string name = fileName.Substring(fileName.LastIndexOf(@"\") + 1);
reg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (reg == null)
reg = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
if (isAutoRun)
{
reg.SetValue(name, fileName);
MessageBox.Show("開機可以黑屏了", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
reg.SetValue(name, false);
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
finally
{
if (reg != null)
{
reg.Close();
}
}
}當然,我只是簡單的實現了一下,嘿嘿,你呢,發壞可以自己這麼實現
每3秒,彈出窗口告訴你,被惡搞!(該窗口不可關閉);
無法使用 Ctrl+alt+del 打開任務管理器(意思,你運行了,除非重啟,要不你就別想關閉!)
.....................喝黑,我還是不要說了。防止管理禁我言啊。
奉上最後的截圖
最後注明一下,操作注冊表需要的是管理員的權限。所以請確定,程序是在操作員的權限下運行。
作者“ASP.NET自學博客”