• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      應(yīng)用程序開發(fā)過程中軟件開機(jī)自動(dòng)運(yùn)行的實(shí)現(xiàn)

      2014-04-29 00:00:00常志東趙立平

      摘 要:軟件開機(jī)自動(dòng)運(yùn)行,為用戶操作使用頻率高的軟件提供了便利,它是基于操作系統(tǒng)的系統(tǒng)“啟動(dòng)項(xiàng)”實(shí)現(xiàn)。分析系統(tǒng)啟動(dòng)項(xiàng)的設(shè)置方法,在應(yīng)用程序開發(fā)中,可以通過“寫入注冊(cè)表”和“寫入系統(tǒng)‘啟動(dòng)’文件夾”來(lái)組織程序、編寫代碼。

      關(guān)鍵詞:應(yīng)用程序;軟件;開機(jī)自動(dòng)運(yùn)行;操作系統(tǒng);系統(tǒng)啟動(dòng)項(xiàng)

      中圖分類號(hào):TP316.7

      應(yīng)用程序是指為完成某項(xiàng)或某幾項(xiàng)特定任務(wù)而被開發(fā)運(yùn)行于操作系統(tǒng)之上的計(jì)算機(jī)程序。軟件是指程序及與其相關(guān)文檔或其他從屬物的集合。軟件開機(jī)自動(dòng)運(yùn)行,也可稱為程序開機(jī)自動(dòng)加載。要實(shí)現(xiàn)軟件開機(jī)自動(dòng)運(yùn)行,就要在應(yīng)用程序開發(fā)過程中編寫實(shí)現(xiàn)相應(yīng)功能的代碼。基于運(yùn)行方式的不同,應(yīng)用程序又分為WEB應(yīng)用程序和WINDOWS應(yīng)用程序。WEB應(yīng)用程序是基于B/S(瀏覽器/服務(wù)器)模式,通過WEB訪問的應(yīng)用程序,不需要安裝到本地操作系統(tǒng)中。WINDOWS應(yīng)用程序是基于C/S(客戶端/服務(wù)器)模式,又稱為窗口程序或者桌面程序,是需要將生成的軟件安裝到本地操作系統(tǒng)中,每次使用時(shí)單獨(dú)運(yùn)行才可以在本地操作的程序。這里所講的軟件開機(jī)自動(dòng)運(yùn)行就是指WINDOWS應(yīng)用程序生成的軟件。要實(shí)現(xiàn)軟件開機(jī)自動(dòng)運(yùn)行,我們首先應(yīng)該了解操作系統(tǒng)下,已經(jīng)成功安裝的軟件自動(dòng)運(yùn)行的實(shí)現(xiàn)方式,然后在此基礎(chǔ)上,組織程序,編寫代碼,從而在應(yīng)用程序中實(shí)現(xiàn)功能。下面就從這兩步來(lái)展開介紹。

      1 了解操作系統(tǒng)下,軟件開機(jī)自動(dòng)運(yùn)行的設(shè)置

      在操作系統(tǒng)下,要讓軟件開機(jī)自動(dòng)運(yùn)行一般采用三種方式:(1)使用操作系統(tǒng)的“啟動(dòng)”文件夾;(2)程序采用Windows服務(wù)的形式;(3)修改注冊(cè)表。

      下面就對(duì)這三種方式的具體實(shí)現(xiàn)做一下簡(jiǎn)單介紹:(1)使用操作系統(tǒng)的“啟動(dòng)”文件夾:“啟動(dòng)”文件夾中包含著系統(tǒng)中的啟動(dòng)項(xiàng)目,啟動(dòng)項(xiàng)目就是系統(tǒng)開機(jī)運(yùn)行時(shí),會(huì)在前臺(tái)或后臺(tái)運(yùn)行的程序。這些啟動(dòng)項(xiàng)目在應(yīng)用中是指軟件的運(yùn)行快捷方式。將軟件的運(yùn)行快捷方式放到系統(tǒng)的啟動(dòng)項(xiàng)文件夾(C:\Users\計(jì)算機(jī)用戶名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)中就可以實(shí)現(xiàn)程序開機(jī)自動(dòng)加載;(2)采用Windows服務(wù)的形式:Windows服務(wù)應(yīng)用程序是一種需要長(zhǎng)期運(yùn)行的應(yīng)用程序,它對(duì)于服務(wù)器環(huán)境特別適合。它沒有用戶界面,并且也不會(huì)產(chǎn)生任何可視輸出。任何用戶消息都會(huì)被寫進(jìn)Windows事件日志。計(jì)算機(jī)啟動(dòng)時(shí),服務(wù)會(huì)自動(dòng)開始運(yùn)行。它們不要用戶一定登錄才運(yùn)行,它們能在包括這個(gè)系統(tǒng)內(nèi)的任何用戶環(huán)境下運(yùn)行。通過服務(wù)控制管理器,Windows服務(wù)是可控的,可以終止、暫停及當(dāng)需要時(shí)啟動(dòng)。這種方法是將程序在操作系統(tǒng)的后臺(tái)運(yùn)行,不涉及到軟件的頁(yè)面,跟本文提到的自動(dòng)運(yùn)行有區(qū)別,確切地說(shuō)是啟動(dòng)了一項(xiàng)后臺(tái)服務(wù),所以這種方法無(wú)法實(shí)現(xiàn)軟件開機(jī)自動(dòng)運(yùn)行、打開軟件界面的操作;(3)修改注冊(cè)表:控制開機(jī)運(yùn)行的程序在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]這個(gè)位置,所以可以在run這一項(xiàng)下面手動(dòng)地添加新的字符串值,然后把這個(gè)字符串的數(shù)值數(shù)據(jù)寫成本軟件的具體的安裝路徑,這個(gè)路徑中應(yīng)包括.exe可執(zhí)行程序,設(shè)置成功后軟件就可以實(shí)現(xiàn)開機(jī)自動(dòng)運(yùn)行了。

      2 分析方法,在應(yīng)用程序下實(shí)現(xiàn)

      在了解了操作系統(tǒng)下軟件開機(jī)自動(dòng)運(yùn)行的設(shè)置方法后,應(yīng)用程序就可以基于這些方法來(lái)組織程序,編寫代碼。下面就來(lái)介紹這兩種方法在應(yīng)用程序中的實(shí)現(xiàn)。

      首先了解一下.NET技術(shù)與C#腳本語(yǔ)言,.NET是Microsoft XML Web services平臺(tái)。XML Web services允許應(yīng)用程序通過Internet進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語(yǔ)言。從技術(shù)的角度,一個(gè).NET應(yīng)用是一個(gè)運(yùn)行于.NET Framework之上的應(yīng)用程序。C#是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\(yùn)行于.NET Framework之上的高級(jí)程序設(shè)計(jì)語(yǔ)言。

      文中介紹的應(yīng)用程序開發(fā)技術(shù)是.NET技術(shù),腳本語(yǔ)言采用的是C#語(yǔ)言。

      在應(yīng)用程序開發(fā)中一般需要通過控件的事件來(lái)觸發(fā)其事件過程,在事件過程中添加腳本來(lái)實(shí)現(xiàn)功能。在實(shí)際的操作界面中一般選擇使用按鈕(Button)控件或者單選按鈕(RadioButton)控件來(lái)實(shí)現(xiàn)。在這里選擇使用按鈕(Button)控件來(lái)實(shí)現(xiàn)。單擊“開機(jī)運(yùn)行”按鈕后,執(zhí)行按鈕單擊事件的事件過程,完成對(duì)操作系統(tǒng)中相應(yīng)設(shè)置—寫入注冊(cè)表或者加入系統(tǒng)啟動(dòng)項(xiàng)。下面依次介紹兩種方法的具體實(shí)現(xiàn)。說(shuō)明:文中使用到的按鈕(Button)控件的ID分別為btn_run(開機(jī)運(yùn)行)和btn_forbit(禁止運(yùn)行)。

      這兩種方法都需要知道軟件安裝后.exe可執(zhí)行文件的詳細(xì)路徑,因此首先設(shè)計(jì)一個(gè)通用函數(shù)以在兩種方法中使用。函數(shù)是用來(lái)獲取安裝軟件保存路徑字符串的,是通過應(yīng)用程序名稱到注冊(cè)表中去獲取該子鍵的鍵值,該鍵值即是軟件的安裝路徑。

      2.1 寫入注冊(cè)表的實(shí)現(xiàn)方法。通過單擊按鈕(Button)控件(btn_run)激發(fā)單擊事件,執(zhí)行“寫入注冊(cè)表”的事件過程代碼。整個(gè)過程分兩步:首先獲取安裝后軟件的詳細(xì)路徑(包括.exe可執(zhí)行文件),然后將該路徑字符串作為鍵值寫入注冊(cè)表中的子鍵中。

      2.2 使用操作系統(tǒng)“啟動(dòng)”文件夾的實(shí)現(xiàn)方法。實(shí)現(xiàn)該方法,主要分兩步完成:首先應(yīng)該確定該程序的啟動(dòng)快捷方式是否已經(jīng)創(chuàng)建,如果沒有創(chuàng)建,則先創(chuàng)建軟件的啟動(dòng)快捷運(yùn)行方式,因?yàn)橹挥锌旖葸\(yùn)行方式才可以在非安裝目錄下啟動(dòng)應(yīng)用程序;然后將創(chuàng)建的快捷方式復(fù)制到“啟動(dòng)”文件夾下。整個(gè)實(shí)現(xiàn)過程需要通過以下3個(gè)步驟。

      第1步:建立獲取軟件安裝路徑函數(shù),函數(shù)代碼見上面“獲取軟件安裝路徑代碼”;

      第2步:建立向指定文件夾中添加啟動(dòng)快捷方式的函數(shù)在獲取了軟件的安裝路徑之后,就可以在此基礎(chǔ)上向系統(tǒng)“啟動(dòng)”文件夾中添加啟動(dòng)快捷方式。創(chuàng)建該函數(shù)的腳本如下:(注意:在創(chuàng)建時(shí)要使用到微軟用來(lái)創(chuàng)建快捷方式的類庫(kù)IWshRuntimeLibrary,要使用該類庫(kù),應(yīng)該添加對(duì)該類庫(kù)的引用,引用的方法是在項(xiàng)目的資源管理器下的“引用”文件夾上單擊鼠標(biāo)右鍵選擇“添加引用”,然后選擇COM選項(xiàng)卡并選擇Windows Script Host Object Model,點(diǎn)擊確定后就添加IWshRuntimeLibrary類庫(kù),完成上述操作后就可以在程序中通過using IWshRuntimeLibrary加入對(duì)該命名空間的引用。)

      private void createlinktool(string startpath,string appname,string exepath)//創(chuàng)建啟動(dòng)快捷方式函數(shù),startpath為系統(tǒng)啟動(dòng)項(xiàng)文件夾路徑;appname為應(yīng)用程序名稱;exepath為可執(zhí)行程序存儲(chǔ)路徑;

      {

      WshShell shell = new WshShell();//實(shí)例化WshShell對(duì)象

      IWshShortcut shortcut=(IWshShortcut)shell.CreateShortcut(startpath+\"\\\"+appname+\".lnk\");//通過該對(duì)象的CreateShortcut方法來(lái)創(chuàng)建IWshShortcut接口的實(shí)例對(duì)象

      shortcut.TargetPath = exepath;

      shortcut.Arguments=\"\";//參數(shù)

      shortcut.Description=\"快捷方式\";

      shortcut.WorkingDirectory=exepath.Substring(0, exepath.LastIndexOf('\\'));//可執(zhí)行程序所在文件夾;

      shortcut.IconLocation=exepath+\",0\";//圖標(biāo)

      shortcut.Hotkey=\"CTRL+SHIFT+Z\";//熱鍵

      shortcut.WindowStyle=1;

      shortcut.Save();

      }

      第3步:在“開機(jī)運(yùn)行”按鈕控件的單擊事件的事件過程中依次調(diào)用上面兩個(gè)函數(shù),事件過程代碼如下:

      private void btn_run_Click(object sender, System.EventArgs e) //點(diǎn)擊開機(jī)運(yùn)行按鈕

      {

      string mypath=\"\";

      string startup=System.Environment.GetFolderPath((System.Environment.SpecialFolder)(7));//調(diào)用獲取系統(tǒng)“啟動(dòng)”文件夾路徑;其中System.Environment.GetFolderPath()為獲取系統(tǒng)特殊文件夾路徑函數(shù),7代表枚舉常數(shù),即代表系統(tǒng)“啟動(dòng)”文件夾

      bool f=TryGetSoftwarePath(string softName, out string mypath) ;//調(diào)用獲取可執(zhí)行程序路徑函數(shù)

      if(f==true)

      {

      createlinktool(startup,\"應(yīng)用程序名稱(打包軟件時(shí)設(shè)定)\",mypath);//調(diào)用創(chuàng)建啟動(dòng)快捷方式函數(shù);

      }

      }

      通過以上三步就可以實(shí)現(xiàn)“開機(jī)運(yùn)行”操作,“禁用運(yùn)行”操作仍然是將系統(tǒng)“啟動(dòng)”文件夾中的快捷方式刪除掉。按鈕控件(ID:btn_forbit)的單擊事件的事件過程代碼如下:

      private void btn_forbit_Click(object sender, System.EventArgs e)

      {

      string filepath=System.Environment.GetFolderPath((System.Environment.SpecialFolder)(7))+應(yīng)用程序名(打包軟件時(shí)設(shè)定).lnk;//獲取系統(tǒng)“啟動(dòng)”文件夾下的快捷方式;

      if(File.Exists(filepah)

      {

      //如果存在則刪除

      File.Delete(filepah);

      }

      }

      至此使用系統(tǒng)“啟動(dòng)”文件夾的方法也已經(jīng)實(shí)現(xiàn)。

      分析以上兩種方法,實(shí)際都是用到操作系統(tǒng)的“系統(tǒng)啟動(dòng)項(xiàng)”,通過向“注冊(cè)表”和“啟動(dòng)”文件夾寫入的方式來(lái)實(shí)現(xiàn)。在理解了操作系統(tǒng)下的設(shè)置方法后,在應(yīng)用程序中的實(shí)現(xiàn)過程并不復(fù)雜。兩種方法不存在優(yōu)劣,在實(shí)際應(yīng)用中可以選擇任何一種使用。軟件開發(fā)不是簡(jiǎn)單的書寫代碼,它綜合操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等多項(xiàng)計(jì)算機(jī)相關(guān)知識(shí),所以在系統(tǒng)分析過程中要充分利用這些知識(shí)來(lái)組織程序邏輯,從而設(shè)計(jì)出簡(jiǎn)潔、完善、合理的應(yīng)用程序。

      參考文獻(xiàn):

      [1]肖柏昀.Android應(yīng)用程序中多線程應(yīng)用的方法研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(07):71-72.

      作者簡(jiǎn)介:常志東(1980.07-),男,山東棲霞人,講師,本科,研究方向:軟件設(shè)計(jì)、網(wǎng)站開發(fā);趙立平(1980.05-),女,山東青州人,講師,學(xué)士學(xué)位。

      作者單位:威海海洋職業(yè)學(xué)院 信息工程系,山東棲霞 265300;山東師范大學(xué)歷山學(xué)院,山東青州 262500

      基隆市| 大同市| 普兰店市| 登封市| 华坪县| 莱西市| 连山| 威宁| 宁陕县| 育儿| 阜城县| 灵宝市| 庆阳市| 湄潭县| 南投县| 图木舒克市| 安溪县| 望奎县| 乌拉特前旗| 赤壁市| 汉阴县| 阜南县| 永和县| 教育| 乐陵市| 常德市| 晋宁县| 邵阳县| 建始县| 绵竹市| 舒城县| 田林县| 隆安县| 安阳县| 荆州市| 邵武市| 叶城县| 宿州市| 临清市| 罗山县| 平潭县|