• <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
            技術文摘
            posts - 137,  comments - 268,  trackbacks - 0

            IS(Inno Setup,我用的是5.2.2)是一款免費的制作安裝包的工具,關于它的具體介紹和如何制作安裝包(用向導一步一步很容易上手的)我就不介紹了。在這里,只介紹兩個方面的內容:

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

            2. 卸載軟件的時候,檢查該軟件是否正在運行,如果正在運行,則要關閉才能進行卸載。

             

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

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

             

            IS編寫腳本中,有兩個函數很重要,InitializeSetup, InitializeUninstall,大家從字面應該可以看出是什么意思了,分別是安裝前,安裝后執行的動作。

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

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

            [Code]

            var

              HasRun:HWND;

             

            function InitializeSetup():Boolean;

            begin

              Result := true;

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

              while HasRun<>0 do

              begin

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

                begin

                  Result := false;

                  HasRun := 0;

                end

                else

                begin

                  Result := true;

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

                end;

              end;

            end;

             

            function InitializeUninstall(): Boolean;

            begin

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

              if HasRun<>0 then

              begin

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

                Result := false;

              end

              else

                Result := true;

            end;

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

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

            <2009年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 499388
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久久久久无码精品亚洲日韩| 久久天天躁狠狠躁夜夜av浪潮| 亚洲人成网站999久久久综合 | 久久久久九九精品影院| 久久免费观看视频| 亚洲精品乱码久久久久久蜜桃 | 久久电影网| 久久精品无码专区免费青青| 久久99久久99精品免视看动漫| 久久99精品久久久久久野外| 亚洲七七久久精品中文国产| 久久人人妻人人爽人人爽| 亚洲国产精品人久久| 无遮挡粉嫩小泬久久久久久久| 久久国产午夜精品一区二区三区| 亚洲欧美精品一区久久中文字幕| 亚洲午夜久久久久久噜噜噜| 三级片免费观看久久| 欧美一区二区精品久久| 亚洲αv久久久噜噜噜噜噜| 国产精品欧美久久久天天影视| 亚洲AV无码久久精品狠狠爱浪潮| 国产精品对白刺激久久久| 日本久久久久久久久久| 99久久免费国产特黄| 久久精品国产亚洲av麻豆图片| 日韩影院久久| 久久综合狠狠色综合伊人| 亚洲AV无码久久精品成人| 精品国产日韩久久亚洲| 亚洲中文久久精品无码| 精品国产婷婷久久久| 国产精品久久亚洲不卡动漫| 日日躁夜夜躁狠狠久久AV| 亚洲午夜无码久久久久小说| 久久精品国产99国产精品| 免费国产99久久久香蕉| AV无码久久久久不卡网站下载| 青青草原精品99久久精品66| 波多野结衣久久一区二区| 久久成人国产精品免费软件|