• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            aurain
            技術(shù)文摘
            posts - 137,  comments - 268,  trackbacks - 0

            IS(Inno Setup,我用的是5.2.2)是一款免費(fèi)的制作安裝包的工具,關(guān)于它的具體介紹和如何制作安裝包(用向?qū)б徊揭徊胶苋菀咨鲜值模┪揖筒唤榻B了。在這里,只介紹兩個(gè)方面的內(nèi)容:

            1. 安裝軟件前,檢查該軟件是否正在運(yùn)行,如果正在運(yùn)行,則提示用戶,需要先關(guān)閉,然后才能進(jìn)一步按照。

            2. 卸載軟件的時(shí)候,檢查該軟件是否正在運(yùn)行,如果正在運(yùn)行,則要關(guān)閉才能進(jìn)行卸載。

             

            IS中,有[code]段,該段是用來編寫pascal腳本的。

            這里,主要用到FindWindowByWindowName這個(gè)函數(shù),該函數(shù)通過窗口標(biāo)題來獲取其句柄,本來想用FindWindowByClassName,但現(xiàn)在的窗口類有些難找,用spy++,查出的是一些afx…之類的。具體用法可以查看IS幫助文檔。

             

            IS編寫腳本中,有兩個(gè)函數(shù)很重要,InitializeSetup, InitializeUninstall,大家從字面應(yīng)該可以看出是什么意思了,分別是安裝前,安裝后執(zhí)行的動(dòng)作。

            所以,我們的腳本應(yīng)該寫在這里。
            另外,
            [code]段可以放在IS腳本的最后部分。

            這里還是直接給出代碼,代碼倒不怎么難,拋磚引玉了,希望大家對于安裝制作有更好的方法。

            [Code]

            var

              HasRun:HWND;

             

            function InitializeSetup():Boolean;

            begin

              Result := true;

              HasRun := FindWindowByWindowName('你的窗口標(biāo)題');

              while HasRun<>0 do

              begin

                if MsgBox('安裝程序檢測到你的應(yīng)用程序正在運(yùn)行。' #13#13 '您必須先關(guān)閉它然后單擊“是”繼續(xù)安裝,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then

                begin

                  Result := false;

                  HasRun := 0;

                end

                else

                begin

                  Result := true;

                  HasRun := FindWindowByWindowName('你的窗口標(biāo)題');

                end;

              end;

            end;

             

            function InitializeUninstall(): Boolean;

            begin

              HasRun := FindWindowByWindowName('你的窗口標(biāo)題');

              if HasRun<>0 then

              begin

                MsgBox('卸載程序檢測到你的應(yīng)用程序正在運(yùn)行。' #13#13 '請先退出你的應(yīng)用程序,然后再進(jìn)行卸載!', mbError, MB_OK);

                Result := false;

              end

              else

                Result := true;

            end;

            posted on 2008-06-12 15:25 閱讀(5427) 評論(2)  編輯 收藏 引用 所屬分類: c/c++基礎(chǔ)知識(shí)

            FeedBack:
            # re: 在Inno Setup制作的安裝包中利用Pascal腳本檢查安裝,卸載前檢查程序是否已經(jīng)啟動(dòng)。
            2013-04-15 12:23 | cv
            # re: 在Inno Setup制作的安裝包中利用Pascal腳本檢查安裝,卸載前檢查程序是否已經(jīng)啟動(dòng)。
            2013-04-15 12:31 | cv
            @cv
            shenmea
              回復(fù)  更多評論
              

            <2012年11月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網(wǎng)絡(luò)開發(fā)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 500427
            • 排名 - 37

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久天堂AV综合合色蜜桃网| 成人国内精品久久久久影院VR| 久久人妻少妇嫩草AV无码蜜桃| 一本色道久久综合狠狠躁| 久久婷婷色综合一区二区| 精品无码久久久久久尤物| 国产精品VIDEOSSEX久久发布| 久久中文字幕视频、最近更新| 狠狠色综合网站久久久久久久高清 | 婷婷久久五月天| 精品久久久噜噜噜久久久| 久久久综合香蕉尹人综合网| 国产A级毛片久久久精品毛片| 亚洲国产二区三区久久| 国内精品伊人久久久久777| 99久久精品国产综合一区| 精产国品久久一二三产区区别| 国产视频久久| 国产综合久久久久| 久久精品国产亚洲AV久| 国产亚州精品女人久久久久久 | 99999久久久久久亚洲| 狠狠色丁香久久婷婷综合蜜芽五月 | 亚洲精品无码久久久久AV麻豆| 91精品国产综合久久久久久| 偷偷做久久久久网站| 国产精品伊人久久伊人电影 | 99久久国产亚洲综合精品| 国产三级精品久久| 国产精品久久久久久久午夜片| 99国产欧美精品久久久蜜芽 | 国产精品嫩草影院久久| 精品一区二区久久久久久久网站| 久久久久久久精品成人热色戒| 久久久免费观成人影院| 久久国产美女免费观看精品 | 久久婷婷国产剧情内射白浆| 亚洲美日韩Av中文字幕无码久久久妻妇| 2020最新久久久视精品爱| 久久99精品国产一区二区三区| 国内精品久久久久|