home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Examples / WordFunc.nsi < prev    next >
Text File  |  2008-12-20  |  16KB  |  536 lines

  1. ;_____________________________________________________________________________
  2. ;
  3. ;                          Word Functions
  4. ;_____________________________________________________________________________
  5. ;
  6. ; 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
  7.  
  8. Name "Word Functions"
  9. OutFile "WordFunc.exe"
  10. Caption "$(^Name)"
  11. XPStyle on
  12. RequestExecutionLevel user
  13.  
  14. Var INI
  15. Var HWND
  16. Var STATE
  17.  
  18. !include "WinMessages.nsh"
  19. !include "WordFunc.nsh"
  20.  
  21. Page Custom ShowCustom LeaveCustom
  22.  
  23. Function ShowCustom
  24.     InstallOptions::initDialog "$INI"
  25.     Pop $hwnd
  26.     InstallOptions::show
  27.     Pop $0
  28. FunctionEnd
  29.  
  30. Function LeaveCustom
  31.     ReadINIStr $0 $INI "Settings" "State"
  32.     StrCmp $0 0 Enter
  33.  
  34.     GetDlgItem $1 $HWND 1202
  35.     EnableWindow $1 1
  36.     GetDlgItem $1 $HWND 1203
  37.     ShowWindow $1 1
  38.     GetDlgItem $1 $HWND 1204
  39.     ShowWindow $1 1
  40.     GetDlgItem $1 $HWND 1206
  41.     EnableWindow $1 1
  42.     GetDlgItem $1 $HWND 1205
  43.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  44.     GetDlgItem $1 $HWND 1206
  45.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  46.  
  47.     ReadINIStr $0 $INI "Field 1" "State"
  48.     StrCmp $0 "1. WordFind        (Find word by number)" 0 WordFind2Send
  49.     GetDlgItem $1 $HWND 1202
  50.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  51.     GetDlgItem $1 $HWND 1204
  52.     SendMessage $1 ${WM_SETTEXT} 1 "STR:-4"
  53.     GetDlgItem $1 $HWND 1210
  54.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  55.     GetDlgItem $1 $HWND 1211
  56.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Word):"
  57.     goto WordFindSend
  58.  
  59.     WordFind2Send:
  60.     StrCmp $0 "                           (Delimiter exclude)" 0 WordFind3Send
  61.     GetDlgItem $1 $HWND 1202
  62.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  63.     GetDlgItem $1 $HWND 1204
  64.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E-2{"
  65.     GetDlgItem $1 $HWND 1210
  66.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  67.     GetDlgItem $1 $HWND 1211
  68.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Before{ or }after delimiter):"
  69.     goto WordFindSend
  70.  
  71.     WordFind3Send:
  72.     StrCmp $0 "                           (Sum of words)" 0 WordFind4Send
  73.     GetDlgItem $1 $HWND 1202
  74.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  75.     GetDlgItem $1 $HWND 1204
  76.     SendMessage $1 ${WM_SETTEXT} 1 "STR:#"
  77.     GetDlgItem $1 $HWND 1210
  78.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  79.     GetDlgItem $1 $HWND 1211
  80.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Sum of words):"
  81.     goto WordFindSend
  82.  
  83.     WordFind4Send:
  84.     StrCmp $0 "                           (Sum of delimiters)" 0 WordFind5Send
  85.     GetDlgItem $1 $HWND 1202
  86.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  87.     GetDlgItem $1 $HWND 1204
  88.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E*"
  89.     GetDlgItem $1 $HWND 1210
  90.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  91.     GetDlgItem $1 $HWND 1211
  92.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Sum of delimiters):"
  93.     goto WordFindSend
  94.  
  95.     WordFind5Send:
  96.     StrCmp $0 "                           (Find word number)" 0 WordFind6Send
  97.     GetDlgItem $1 $HWND 1202
  98.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  99.     GetDlgItem $1 $HWND 1204
  100.     SendMessage $1 ${WM_SETTEXT} 1 "STR:/Program Files"
  101.     GetDlgItem $1 $HWND 1210
  102.     SendMessage $1 ${WM_SETTEXT} 1 "STR:/Word"
  103.     GetDlgItem $1 $HWND 1211
  104.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Word #):"
  105.     goto WordFindSend
  106.  
  107.     WordFind6Send:
  108.     StrCmp $0 "                           ( }} )" 0 WordFind7Send
  109.     GetDlgItem $1 $HWND 1202
  110.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  111.     GetDlgItem $1 $HWND 1204
  112.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2}}"
  113.     GetDlgItem $1 $HWND 1210
  114.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  115.     GetDlgItem $1 $HWND 1211
  116.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Before{{ or }}after word):"
  117.     goto WordFindSend
  118.  
  119.     WordFind7Send:
  120.     StrCmp $0 "                           ( {} )" 0 WordFind8Send
  121.     GetDlgItem $1 $HWND 1202
  122.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  123.     GetDlgItem $1 $HWND 1204
  124.     SendMessage $1 ${WM_SETTEXT} 1 "STR:+2{}"
  125.     GetDlgItem $1 $HWND 1210
  126.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  127.     GetDlgItem $1 $HWND 1211
  128.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Without word):"
  129.     goto WordFindSend
  130.  
  131.     WordFind8Send:
  132.     StrCmp $0 "                           ( *} )" 0 WordFind2XSend
  133.     GetDlgItem $1 $HWND 1202
  134.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  135.     GetDlgItem $1 $HWND 1204
  136.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2*}"
  137.     GetDlgItem $1 $HWND 1210
  138.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  139.     GetDlgItem $1 $HWND 1211
  140.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Before{* or *}after word with word):"
  141.     goto WordFindSend
  142.  
  143.     WordFind2XSend:
  144.     StrCmp $0 "2. WordFind2X" 0 WordReplace1Send
  145.     GetDlgItem $1 $HWND 1201
  146.     SendMessage $1 ${WM_SETTEXT} 1 "STR:[C:\io.sys];[C:\logo.sys];[C:\WINDOWS]"
  147.     GetDlgItem $1 $HWND 1202
  148.     SendMessage $1 ${WM_SETTEXT} 1 "STR:[C:\"
  149.     GetDlgItem $1 $HWND 1203
  150.     EnableWindow $1 1
  151.     SendMessage $1 ${WM_SETTEXT} 1 "STR:];"
  152.     GetDlgItem $1 $HWND 1204
  153.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2"
  154.     GetDlgItem $1 $HWND 1207
  155.     SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  156.     GetDlgItem $1 $HWND 1208
  157.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter1"
  158.     GetDlgItem $1 $HWND 1209
  159.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter2"
  160.     GetDlgItem $1 $HWND 1210
  161.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  162.     GetDlgItem $1 $HWND 1211
  163.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Word):"
  164.     abort
  165.  
  166.     WordReplace1Send:
  167.     StrCmp $0 "3. WordReplace (Replace)" 0 WordReplace2Send
  168.     GetDlgItem $1 $HWND 1201
  169.     SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\WINDOWS"
  170.     GetDlgItem $1 $HWND 1202
  171.     SendMessage $1 ${WM_SETTEXT} 1 "STR:SYS"
  172.     GetDlgItem $1 $HWND 1203
  173.     SendMessage $1 ${WM_SETTEXT} 1 "STR:bmp"
  174.     GetDlgItem $1 $HWND 1204
  175.     SendMessage $1 ${WM_SETTEXT} 1 "STR:+2"
  176.     goto WordReplaceSend
  177.  
  178.     WordReplace2Send:
  179.     StrCmp $0 "                           (Delete)" 0 WordReplace3Send
  180.     GetDlgItem $1 $HWND 1201
  181.     SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\WINDOWS"
  182.     GetDlgItem $1 $HWND 1202
  183.     SendMessage $1 ${WM_SETTEXT} 1 "STR:SYS"
  184.     GetDlgItem $1 $HWND 1203
  185.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  186.     GetDlgItem $1 $HWND 1204
  187.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E+"
  188.     goto WordReplaceSend
  189.  
  190.     WordReplace3Send:
  191.     StrCmp $0 "                           (Multiple-replace)" 0 WordAdd1Send
  192.     GetDlgItem $1 $HWND 1201
  193.     SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys||||||C:\logo.sys|||C:\WINDOWS"
  194.     GetDlgItem $1 $HWND 1202
  195.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  196.     GetDlgItem $1 $HWND 1203
  197.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  198.     GetDlgItem $1 $HWND 1204
  199.     SendMessage $1 ${WM_SETTEXT} 1 "STR:+1*"
  200.     goto WordReplaceSend
  201.  
  202.     WordAdd1Send:
  203.     StrCmp $0 "4. WordAdd        (Add)" 0 WordAdd2Send
  204.     GetDlgItem $1 $HWND 1204
  205.     SendMessage $1 ${WM_SETTEXT} 1 "STR:+C:\WINDOWS|C:\config.sys|C:\IO.SYS"
  206.     GetDlgItem $1 $HWND 1211
  207.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String1 + String2):"
  208.     goto WordAddSend
  209.  
  210.     WordAdd2Send:
  211.     StrCmp $0 "                           (Delete) " 0 WordInsertSend
  212.     GetDlgItem $1 $HWND 1204
  213.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E-C:\WINDOWS|C:\config.sys|C:\IO.SYS"
  214.     GetDlgItem $1 $HWND 1211
  215.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String1 - String2):"
  216.     goto WordAddSend
  217.  
  218.     WordInsertSend:
  219.     StrCmp $0 "5. WordInsert" 0 StrFilter1Send
  220.     GetDlgItem $1 $HWND 1201
  221.     SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\WINDOWS"
  222.     GetDlgItem $1 $HWND 1202
  223.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  224.     GetDlgItem $1 $HWND 1203
  225.     EnableWindow $1 1
  226.     SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\logo.sys"
  227.     GetDlgItem $1 $HWND 1204
  228.     SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2"
  229.     GetDlgItem $1 $HWND 1207
  230.     SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  231.     GetDlgItem $1 $HWND 1208
  232.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter"
  233.     GetDlgItem $1 $HWND 1209
  234.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word"
  235.     GetDlgItem $1 $HWND 1210
  236.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  237.     GetDlgItem $1 $HWND 1211
  238.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result:"
  239.     abort
  240.  
  241.     StrFilter1Send:
  242.     StrCmp $0 "6. StrFilter           (UpperCase)" 0 StrFilter2Send
  243.     GetDlgItem $1 $HWND 1201
  244.     SendMessage $1 ${WM_SETTEXT} 1 "STR:123abc 456DEF 7890|%#"
  245.     GetDlgItem $1 $HWND 1202
  246.     SendMessage $1 ${WM_SETTEXT} 1 "STR:+"
  247.     GetDlgItem $1 $HWND 1203
  248.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  249.     GetDlgItem $1 $HWND 1204
  250.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  251.     GetDlgItem $1 $HWND 1211
  252.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String in uppercase):"
  253.     goto StrFilterSend
  254.  
  255.     StrFilter2Send:
  256.     StrCmp $0 "                           (LowerCase)" 0 StrFilter3Send
  257.     GetDlgItem $1 $HWND 1201
  258.     SendMessage $1 ${WM_SETTEXT} 1 "STR:123abc 456DEF 7890|%#"
  259.     GetDlgItem $1 $HWND 1202
  260.     SendMessage $1 ${WM_SETTEXT} 1 "STR:-"
  261.     GetDlgItem $1 $HWND 1203
  262.     SendMessage $1 ${WM_SETTEXT} 1 "STR:ef"
  263.     GetDlgItem $1 $HWND 1204
  264.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  265.     GetDlgItem $1 $HWND 1211
  266.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String in lowercase except EF):"
  267.     goto StrFilterSend
  268.  
  269.     StrFilter3Send:
  270.     StrCmp $0 "                           (Filter)" 0 VersionCompareSend
  271.     GetDlgItem $1 $HWND 1201
  272.     SendMessage $1 ${WM_SETTEXT} 1 "STR:123abc 456DEF 7890|%#"
  273.     GetDlgItem $1 $HWND 1202
  274.     SendMessage $1 ${WM_SETTEXT} 1 "STR:+12"
  275.     GetDlgItem $1 $HWND 1203
  276.     SendMessage $1 ${WM_SETTEXT} 1 "STR:b"
  277.     GetDlgItem $1 $HWND 1204
  278.     SendMessage $1 ${WM_SETTEXT} 1 "STR:def"
  279.     GetDlgItem $1 $HWND 1211
  280.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String Digits + Letters + b - def):"
  281.     goto StrFilterSend
  282.  
  283.     VersionCompareSend:
  284.     StrCmp $0 "7. VersionCompare" 0 VersionConvertSend
  285.     GetDlgItem $1 $HWND 1201
  286.     SendMessage $1 ${WM_SETTEXT} 1 "STR:1.1.1.9"
  287.     GetDlgItem $1 $HWND 1202
  288.     SendMessage $1 ${WM_SETTEXT} 1 "STR:1.1.1.01"
  289.     GetDlgItem $1 $HWND 1203
  290.     ShowWindow $1 0
  291.     GetDlgItem $1 $HWND 1204
  292.     ShowWindow $1 0
  293.     GetDlgItem $1 $HWND 1206
  294.     EnableWindow $1 0
  295.     GetDlgItem $1 $HWND 1207
  296.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Version1"
  297.     GetDlgItem $1 $HWND 1208
  298.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Version2"
  299.     GetDlgItem $1 $HWND 1209
  300.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  301.     GetDlgItem $1 $HWND 1210
  302.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  303.     GetDlgItem $1 $HWND 1211
  304.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (0-equal 1-newer 2-older):"
  305.     abort
  306.  
  307.     VersionConvertSend:
  308.     StrCmp $0 "8. VersionConvert" 0 Abort
  309.     GetDlgItem $1 $HWND 1201
  310.     SendMessage $1 ${WM_SETTEXT} 1 "STR:9.0c"
  311.     GetDlgItem $1 $HWND 1202
  312.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  313.     GetDlgItem $1 $HWND 1203
  314.     ShowWindow $1 0
  315.     GetDlgItem $1 $HWND 1204
  316.     ShowWindow $1 0
  317.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  318.     GetDlgItem $1 $HWND 1206
  319.     EnableWindow $1 0
  320.     GetDlgItem $1 $HWND 1207
  321.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Version"
  322.     GetDlgItem $1 $HWND 1208
  323.     SendMessage $1 ${WM_SETTEXT} 1 "STR:CharList"
  324.     GetDlgItem $1 $HWND 1209
  325.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  326.     GetDlgItem $1 $HWND 1210
  327.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  328.     GetDlgItem $1 $HWND 1211
  329.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (numerical version format):"
  330.     abort
  331.  
  332.     Abort:
  333.     Abort
  334.  
  335.     WordFindSend:
  336.     GetDlgItem $1 $HWND 1203
  337.     EnableWindow $1 0
  338.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  339.     GetDlgItem $1 $HWND 1201
  340.     SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\Program Files|C:\WINDOWS"
  341.     GetDlgItem $1 $HWND 1207
  342.     SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  343.     GetDlgItem $1 $HWND 1208
  344.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter"
  345.     GetDlgItem $1 $HWND 1209
  346.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  347.     Abort
  348.  
  349.     WordReplaceSend:
  350.     GetDlgItem $1 $HWND 1203
  351.     EnableWindow $1 1
  352.     GetDlgItem $1 $HWND 1207
  353.     SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  354.     GetDlgItem $1 $HWND 1208
  355.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Replace it"
  356.     GetDlgItem $1 $HWND 1209
  357.     SendMessage $1 ${WM_SETTEXT} 1 "STR:         with"
  358.     GetDlgItem $1 $HWND 1210
  359.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  360.     GetDlgItem $1 $HWND 1211
  361.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Result:"
  362.     Abort
  363.  
  364.     WordAddSend:
  365.     GetDlgItem $1 $HWND 1203
  366.     EnableWindow $1 0
  367.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  368.     GetDlgItem $1 $HWND 1201
  369.     SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\WINDOWS"
  370.     GetDlgItem $1 $HWND 1202
  371.     SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  372.     GetDlgItem $1 $HWND 1207
  373.     SendMessage $1 ${WM_SETTEXT} 1 "STR:String1"
  374.     GetDlgItem $1 $HWND 1208
  375.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter"
  376.     GetDlgItem $1 $HWND 1209
  377.     SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  378.     GetDlgItem $1 $HWND 1210
  379.     SendMessage $1 ${WM_SETTEXT} 1 "STR:String2"
  380.     Abort
  381.  
  382.     StrFilterSend:
  383.     GetDlgItem $1 $HWND 1203
  384.     EnableWindow $1 1
  385.     GetDlgItem $1 $HWND 1206
  386.     EnableWindow $1 0
  387.     GetDlgItem $1 $HWND 1207
  388.     SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  389.     GetDlgItem $1 $HWND 1208
  390.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Filter"
  391.     GetDlgItem $1 $HWND 1209
  392.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Include"
  393.     GetDlgItem $1 $HWND 1210
  394.     SendMessage $1 ${WM_SETTEXT} 1 "STR:Exclude"
  395.     Abort
  396.  
  397. ;=Enter=
  398.     Enter:
  399.     StrCpy $0 ''
  400.     ReadINIStr $STATE $INI "Field 1" "State"
  401.     ReadINIStr $R1 $INI "Field 2" "State"
  402.     ReadINIStr $R2 $INI "Field 3" "State"
  403.     ReadINIStr $R3 $INI "Field 4" "State"
  404.     ReadINIStr $R4 $INI "Field 5" "State"
  405.  
  406.     StrCmp $STATE "1. WordFind        (Find word by number)" WordFind
  407.     StrCmp $STATE "                           (Delimiter exclude)" WordFind
  408.     StrCmp $STATE "                           (Find in string)" WordFind
  409.     StrCmp $STATE "                           (Sum of words)" WordFind
  410.     StrCmp $STATE "                           (Sum of delimiters)" WordFind
  411.     StrCmp $STATE "                           (Find word number)" WordFind
  412.     StrCmp $STATE "                           ( }} )" WordFind
  413.     StrCmp $STATE "                           ( {} )" WordFind
  414.     StrCmp $STATE "                           ( *} )" WordFind
  415.     StrCmp $STATE "2. WordFind2X" WordFind2X
  416.     StrCmp $STATE "3. WordReplace (Replace)" WordReplace
  417.     StrCmp $STATE "                           (Delete)" WordReplace
  418.     StrCmp $STATE "                           (Multiple-replace)" WordReplace
  419.     StrCmp $STATE "4. WordAdd        (Add)" WordAdd
  420.     StrCmp $STATE "                           (Delete) " WordAdd
  421.     StrCmp $STATE "5. WordInsert" WordInsert
  422.     StrCmp $STATE "6. StrFilter           (UpperCase)" StrFilter
  423.     StrCmp $STATE "                           (LowerCase)" StrFilter
  424.     StrCmp $STATE "                           (Filter)" StrFilter
  425.     StrCmp $STATE "7. VersionCompare" VersionCompare
  426.     StrCmp $STATE "8. VersionConvert" VersionConvert
  427.     Abort
  428.  
  429.     WordFind:
  430.     ${WordFind} "$R1" "$R2" "$R4" $R0
  431.     IfErrors 0 Send
  432.     StrCpy $0 $R0
  433.     StrCmp $R0 3 0 +3
  434.     StrCpy $3 '"+1" "-1" "+1}" "+1{" "#" "/word"'
  435.     goto error3
  436.     StrCmp $R0 2 0 error1
  437.     StrCpy $R4 $R4 '' 1
  438.     StrCpy $1 $R4 1
  439.     StrCmp $1 / 0 error2
  440.     StrCpy $R4 $R4 '' 1
  441.     StrCpy $R0 '"$R4" no such word.'
  442.     goto Send
  443.  
  444.     WordFind2X:
  445.     ${WordFind2X} "$R1" "$R2" "$R3" "$R4" $R0
  446.     IfErrors 0 Send
  447.     StrCpy $0 $R0
  448.     StrCmp $R0 3 0 +3
  449.     StrCpy $3 '"+1" "-1"'
  450.     goto error3
  451.     StrCmp $R0 2 +3
  452.     StrCpy $R0 '"$R2...$R3" no words found.'
  453.     goto Send
  454.     StrCpy $R4 $R4 '' 1
  455.     StrCpy $1 $R4 1
  456.     StrCmp $1 / 0 +2
  457.     StrCpy $R4 $R4 '' 1
  458.     StrCpy $R0 '"$R4" no such word.'
  459.     goto Send
  460.  
  461.     WordReplace:
  462.     ${WordReplace} "$R1" "$R2" "$R3" "$R4" $R0
  463.     IfErrors 0 Send
  464.     StrCpy $0 $R0
  465.     StrCmp $R0 3 0 +3
  466.     StrCpy $3 '"+1" "+1*" "+" "+*" "{}"'
  467.     goto error3
  468.     StrCmp $R0 2 0 error1
  469.     StrCpy $R4 $R4 '' 1
  470.     goto error2
  471.  
  472.     WordAdd:
  473.     ${WordAdd} "$R1" "$R2" "$R4" $R0
  474.     IfErrors 0 Send
  475.     StrCpy $0 $R0
  476.     StrCmp $R0 3 0 error1empty
  477.     StrCpy $3 '"+text" "-text"'
  478.     goto error3
  479.  
  480.     WordInsert:
  481.     ${WordInsert} "$R1" "$R2" "$R3" "$R4" $R0
  482.     IfErrors 0 Send
  483.     StrCpy $0 $R0
  484.     StrCmp $R0 3 0 +3
  485.     StrCpy $3 '"+1" "-1"'
  486.     goto error3
  487.     StrCmp $R0 2 0 error1empty
  488.     StrCpy $R4 $R4 '' 1
  489.     goto error2
  490.  
  491.     StrFilter:
  492.     ${StrFilter} "$R1" "$R2" "$R3" "$R4" $R0
  493.     IfErrors 0 Send
  494.     StrCpy $R0 'Syntax error'
  495.     goto Send
  496.  
  497.     VersionCompare:
  498.     ${VersionCompare} "$R1" "$R2" $R0
  499.     goto Send
  500.  
  501.     VersionConvert:
  502.     ${VersionConvert} "$R1" "$R2" $R0
  503.     goto Send
  504.  
  505.     error3:
  506.     StrCpy $R0 '"$R4" syntax error ($3)'
  507.     goto Send
  508.     error2:
  509.     StrCpy $R0 '"$R4" no such word number'
  510.     goto Send
  511.     error1empty:
  512.     StrCpy $R0 '"$R2" delimiter is empty'
  513.     goto Send
  514.     error1:
  515.     StrCpy $R0 '"$R2" delimiter not found in string'
  516.     goto Send
  517.  
  518.     Send:
  519.     GetDlgItem $1 $HWND 1205
  520.     SendMessage $1 ${WM_SETTEXT} 1 "STR:$R0"
  521.     GetDlgItem $1 $HWND 1206
  522.     SendMessage $1 ${WM_SETTEXT} 1 "STR:$0"
  523.     abort
  524. FunctionEnd
  525.  
  526. Function .onInit
  527.     InitPluginsDir
  528.     GetTempFileName $INI $PLUGINSDIR
  529.     File /oname=$INI "WordFunc.ini"
  530. FunctionEnd
  531.  
  532. Page instfiles
  533.  
  534. Section "Empty"
  535. SectionEnd
  536.