• <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>

            轉自 http://hi.csdn.net/jinglidong

            !include "LogicLib.nsh"
            使用 NSIS 的宏來提供各種邏輯基本語句,不需要預先添加函數。
            • 基本語句

            If|Unless..{ElseIf|ElseUnless}..[Else]..EndIf|EndUnless
            - 有條件的執行一個語句區塊,取決于表達式。

            AndIf|AndUnless|OrIf|OrUnless
            - 給 If、Unless、ElseIf 和 ElseUnless 增加額外的條件語句。

            IfThen..|..|
            - 有條件的執行一個內聯語句,取決于表達式。

            IfCmd..||..|
            - 條件的執行一個內聯語句,取決于 NSIS 函數提供的真值。

            Select..{Case[2|3|4|5]}..[CaseElse|Default]..EndSelect
            - 執行多個語句區塊之一,取決于表達式的值。

            Switch..{Case|CaseElse|Default}..EndSwitch
            - 跳轉到多個標記之一,取決于表達式的值。

            Do[While|Until]..{ExitDo|Continue|Break}..Loop[While|Until]
            - 重復一個語句區塊直到停止 取決于表達式的值。

            While..{ExitWhile|Continue|Break}..EndWhile
            - DoWhile..Loop的別名(向后兼容)

            For[Each]..{ExitFor|Continue|Break}..Next
            - 重復語句區塊來連續改變變量的值。

            • 表達式

            標準(內建的)字串判斷(不區分大小寫):
            a == b; a != b

            另外的不區分大小寫的字串判斷(使用 System.dll):
            a S< b; a S>= b; a S> b; a S<= b
            - 需要在 !include LogicLib.nsh 之前 !define LOGICLIB_STRCMP

            區分大小寫字串判斷(使用 System.dll):
            a S== b; a S!= b
            - 需要在 !include LogicLib.nsh 之前 !define LOGICLIB_STRCMP

            標準(內建的)有符號整數判斷:
            a = b; a <> b; a < b; a >= b; a > b; a <= b

            標準(內建的)無符號整數判斷:
            a U< b; a U>= b; a U> b; a U<= b

            64位整數判斷(使用System.dll):
            a L= b; a L<> b; a L< b; a L>= b; a L> b; a L<= b
            - 需要在 !include LogicLib.nsh 之前 !define LOGICLIB_INT64CMP

            內建的NSIS標記判斷:
            ${Abort};
            ${Errors};
            ${RebootFlag};
            ${Silent}

            內建的 NSIS 其它判斷:
            ${FileExists} a;

            任何有條件的 NSIS 指令判斷:
            ${Cmd} a;

            區段標記判斷:
            ${SectionIsSelected} a;
            ${SectionIsSectionGroup} a;
            ${SectionIsSectionGroupEnd} a;
            ${SectionIsBold} a;
            ${SectionIsReadOnly} a;
            ${SectionIsExpanded} a;
            ${SectionIsPartiallySelected} a;

            posted @ 2012-05-15 09:43 Mumoo 閱讀(1583) | 評論 (0)編輯 收藏
             
            頭文件引用:
            !include "LogicLib.nsh"

             基本語句

            If|Unless..{ElseIf|ElseUnless}..[Else]..EndIf|EndUnless
            - 有條件的執行一個語句區塊,取決于表達式。

            AndIf|AndUnless|OrIf|OrUnless
            - 給 If, Unless, ElseIf 和 ElseUnless 增加額外的條件語句。

            IfThen..|..|
            - 有條件的執行一個內聯語句,取決于表達式。

            IfCmd..||..|
            - 條件的執行一個內聯語句,取決于 NSIS 函數提供的真值。

            Select..{Case[2|3|4|5]}..[CaseElse|Default]..EndSelect
            - 執行多個語句區塊之一,取決于表達式的值。

            Switch..{Case|CaseElse|Default}..EndSwitch
            - 跳轉到多個標記之一,取決于表達式的值。

            Do[While|Until]..{ExitDo|Continue|Break}..Loop[While|Until]
            - 重復一個語句區塊直到停止 取決于表達式的值。

            While..{ExitWhile|Continue|Break}..EndWhile
            - DoWhile..Loop 的別名 (向后兼容)

            For[Each]..{ExitFor|Continue|Break}..Next
            - 重復語句區塊來連續改變變量的值。

            Goto
            要跳轉的標記 | +偏移| -偏移| 用戶變量(目標地址)
            如果指定了標記,則跳轉到 “要跳轉的標記:”。

            如果指定了 +偏移 或 -偏移 ,跳轉會根據偏移指令相對的跳轉。Goto +1 跳轉到下一條指令,Goto -1 跳轉到上一條指令,等等。

            Goto label
            Goto +2
            Goto -2
            Goto $0

            這是原生支持的跳轉,利用跳轉可以寫循環。
            posted @ 2012-05-14 10:30 Mumoo 閱讀(6241) | 評論 (0)編輯 收藏
             

            邏輯語句的宏文件: !include logiclib.nsh
            IF語句:
               ${If} $0 == 'some value'
                  MessageBox MB_OK '$$0 is some value'
               ${ElseIf} $0 == 'some other value'
                  MessageBox MB_OK '$$0 is some other value'
               ${Else}
                  MessageBox MB_OK '$$0 is "$0"'
                 ${EndIf}

            while循環:

               StrCpy $R1 0 ——————————字符串賦值為整型
               ${While} $R1 < 5
                     IntOp $R1 $R1 + 1
                     DetailPrint $R1——————————打印字符串
            ${EndWhile}

             

            posted @ 2012-05-11 10:25 Mumoo 閱讀(9204) | 評論 (0)編輯 收藏
             
            !include logiclib.nsh

            Var tmpInst
            ReadRegStr $0 HKLM ${PRODUCT_INST_KEY} "InstallDir"
            MessageBox MB_OK "tmpInst 有沒有值: $0"

            ${If} $0 == ""
            MessageBox MB_OK "沒值"
            ${Else}
            MessageBox MB_OK "有值"
            ${EndIf}
            posted @ 2012-05-11 10:12 Mumoo 閱讀(2071) | 評論 (0)編輯 收藏
             
            ; OpenReg.nsi
            ; 檢查某注冊表鍵是否存在的NSIS例子
            ; 編寫:zhfi <zhfi1022@tom.com>
             
            ;--------------------------------
            ;定義注冊表主鍵
            !define HKEY_CLASSES_ROOT           0x80000000
            !define HKEY_CURRENT_USER           0x80000001
            !define HKEY_LOCAL_MACHINE          0x80000002
            !define HKEY_USERS                  0x80000003
             
            OutFile OpenReg.exe
             
            XPStyle on
             
            !include LogicLib.nsh
             
            ;--------------------------------
            Name OpenReg
             
            Section Nil
            SectionEnd
             
            Function .onInit
            ;為鍵的句柄創建一個緩存
            System::Call "*(i 0) i .R0"
            ;將要檢測的鍵放入內存中
            Push "SOFTWARE\TENCENT\QQPinYin"
            ;調用API進行檢查,返回值在$R1中
            system::call 'Advapi32::RegOpenKey(i ${HKEY_LOCAL_MACHINE}, t s, i R0) .iR1'
            ;關閉該鍵的句柄
            system::call 'Advapi32::RegCloseKey(i R0)'
            ;釋放內存
            system::free
            ;返回值:
            ;0代表鍵存在
            ;2代表鍵不存在
            ;其它值表示出錯
            ${If} $R1 == 0
            Contact usthis is my email signatureMessagebox mb_ok "Key Exists!"
            ${ElseIf} $R1 == 2
            Messagebox mb_ok "Key doesn't Exists!"
            ${Else}
            Messagebox mb_ok "Error!"
            ${EndIf}
            Pop $R1
            Pop $R0
            Quit
            FunctionEnd

            posted @ 2012-05-09 16:12 Mumoo 閱讀(1131) | 評論 (0)編輯 收藏
            僅列出標題
            共4頁: 1 2 3 4 
             
            国产精品美女久久久网AV| 无码国内精品久久综合88| 精品少妇人妻av无码久久| 91精品国产9l久久久久| 精品久久久久久无码国产| 亚洲欧美一区二区三区久久| 久久国产色AV免费观看| 狠狠色伊人久久精品综合网| 久久精品青青草原伊人| 久久精品国产秦先生| 无码人妻久久一区二区三区蜜桃| 精品国产青草久久久久福利| 久久夜色tv网站| 亚洲香蕉网久久综合影视| 久久精品国产第一区二区| 久久久久久精品免费免费自慰| 久久精品9988| 精品伊人久久大线蕉色首页| 天天综合久久久网| 久久精品国产99国产精品导航 | 欧美一级久久久久久久大片| 色偷偷88888欧美精品久久久| 精品久久久久久无码中文野结衣| 久久99热这里只有精品国产| 99久久99久久精品国产| 99久久99久久精品免费看蜜桃| 性做久久久久久久久浪潮| 久久精品亚洲欧美日韩久久| 99re这里只有精品热久久| 狠狠色噜噜色狠狠狠综合久久| 久久免费大片| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久精品视频91| 久久er国产精品免费观看2| 国产精品99久久久精品无码| 日韩十八禁一区二区久久| 久久99精品久久久久久野外| 国产福利电影一区二区三区,免费久久久久久久精 | 久久婷婷五月综合国产尤物app| 日韩久久久久中文字幕人妻| 久久精品国产亚洲AV不卡|