亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        使用Delphi啟動(dòng)和關(guān)閉外部應(yīng)用程序

        字號(hào):

        Delphi與Windows平臺(tái)緊密結(jié)合,編譯代碼快速高效。作為一種可視化的面向?qū)ο箝_發(fā)工具,Delphi可以幫助程序員更輕松、更快速地編寫各種Windows應(yīng)用程序。而且通過編程可以方便地調(diào)用其它語言編寫的動(dòng)態(tài)庫或應(yīng)用程序,并在不需要時(shí)關(guān)閉這些外部程序。這一點(diǎn)對(duì)許多編程人員非常有用,例如,在采用Delphi進(jìn)行軟件開發(fā)的同時(shí),可能需要調(diào)用以前采用其它工具開發(fā)的應(yīng)用程序,以免再次重新編寫代碼,或者需要調(diào)用Windows中的記事本和計(jì)算器等工具,以便在程序運(yùn)行過程中記錄信息或進(jìn)行計(jì)算等。
            在Delphi中,通過調(diào)用一組API函數(shù)是可以比較輕松地完成上述要求的。下面本文將以一個(gè)實(shí)際的例子詳細(xì)地介紹一下實(shí)現(xiàn)外部應(yīng)用程序啟動(dòng)和關(guān)閉的具體方法和步驟:
            1. 創(chuàng)建一個(gè)應(yīng)用程序
            在應(yīng)用程序的窗體上添加兩個(gè)Tbutton組件和一個(gè)TopenDialog組件。設(shè)置其中一個(gè)Tbutton組件的Caption屬性為“啟動(dòng)外部應(yīng)用程序”、另一個(gè)Tbutton組件的Caption屬性為“關(guān)閉已開啟的外部應(yīng)用程序”。設(shè)置TopenDialog組件的Filter屬性為“可執(zhí)行文件(*.exe)|*.exe”。
            2. 實(shí)現(xiàn)外部應(yīng)用程序的啟動(dòng)功能
            ⑴ 要啟動(dòng)外部應(yīng)用程序,可以通過調(diào)用API函數(shù)WinExec來實(shí)現(xiàn)。該函數(shù)用于運(yùn)行指定的應(yīng)用程序。下面介紹一下該函數(shù)所需的參數(shù)和返回值:
            UINT WinExec(
            LPCSTR lpCmdLine, file://命令行指針
            UINT uCmdShow file://應(yīng)用程序的窗口風(fēng)格
            );
            如果成功,返回值大于31。否則可能返回下列結(jié)果:   0 系統(tǒng)內(nèi)存或資源不足
            ERROR_BAD_FORMAT 該*.EXE文件無效
            ERROR_FILE_NOT_FOUND 沒找到指定的文件
            ERROR_PATH_NOT_FOUND 沒找到指定路徑
            ⑵ 通過編寫標(biāo)題為“啟動(dòng)外部應(yīng)用程序”組件的OnClick事件,來實(shí)現(xiàn)外部應(yīng)用程序的啟動(dòng),代碼如下:
            procedure TForm1.Button1Click(Sender: TObject);
            var
            str: string; file://存儲(chǔ)指定的應(yīng)用程序文件名
            begin
            if opendialog1.Execute then file://選擇要調(diào)用的外部可執(zhí)行程序
            begin
            str := opendialog1.FileName; file://獲取可執(zhí)行文件名
            winexec(PChar(str), SW_SHOWNORMAL); file://啟動(dòng)指定的可執(zhí)行程序
            end;
            end;
            3. 關(guān)閉已開啟的外部應(yīng)用程序
            ⑴ 通過調(diào)用兩個(gè)API函數(shù),可以實(shí)現(xiàn)該功能。這兩個(gè)函數(shù)分別為:
            ① FindWindow函數(shù) 該函數(shù)用于查找與指定的類名和窗口名相匹配的高層窗口,如果查找成功,返回非0值,否則返回0。
            ② SendMessage函數(shù) 此函數(shù)向一個(gè)或多個(gè)窗口發(fā)送指定的消息。在此通過發(fā)送WM_CLOSE消息來關(guān)閉指定的外部應(yīng)用程序。
            ⑵ 通過編寫標(biāo)題為“關(guān)閉已開啟的外部應(yīng)用程序”組件的OnClick事件,來關(guān)閉已開啟的外部應(yīng)用程序。代碼如下:
            procedure TForm1.Button2Click(Sender: TObject);
            var
            hWndClose: HWnd; file://存儲(chǔ)指定的外部應(yīng)用程序窗口句柄
            str: String; file://存儲(chǔ)指定的外部應(yīng)用程序的窗口名
            begin
            str := InputBox('提示','請(qǐng)輸入應(yīng)用程序名:',''); file://獲取要關(guān)閉的應(yīng)用程序窗口名
            if str <> '' then begin
            file://根據(jù)窗口名查找要關(guān)閉的窗口句柄
            hWndClose := FindWindow(nil, PChar(str));
            if hWndClose <> 0 then file://如果查找成功,則發(fā)送消息,關(guān)閉指定的窗口
            SendMessage(hWndClose,WM_CLOSE,0,0);
            else file://否則,給出提示信息
            ShowMessage('沒找到指定的應(yīng)用程序,所以無法關(guān)閉!');
            end;
            end;