Jump to content

monter

Active Members
  • Posts

    60
  • Joined

  • Last visited

About monter

  • Birthday 04/08/1968

Profile Information

  • Location
    Warszawa, Poland
  • WWW
    http://monter.us.to/
  • Interests
    Music, mixing music, mixing at all :-) , computers, marathon running.

Recent Profile Visitors

405 profile views

monter's Achievements

Wayfarer

Wayfarer (2/7)

0

Reputation

  1. Yes! That's it! I added a flag 6: _FileSelectFolder('demoAPI', 0, 6) and it looks like I wanted to see: Thank you!
  2. Hello, is there any way to achieve in current AutoIt versions old style looking FileSelectFolder, like in v.3.3.9.5? I can't operate on COMs, maybe anyone knows the way, has a code? It looked like this (attachement): I don't like new style, some features don't work for me properly.
  3. Hello, I just discovered bad thing. If I used _FileWriteToLine function in AutoIt3 beta since 3.3.9.20 and newer, after launching the file it's partially damaged itself. Older versions work correctly and there is no file damaging. Look at the example and test on different versions - older and newer. (Added): I think the problem is in IncludeFile.au3 v.3.3.9.20, line 677: Local $aArray = StringRegExp(@CRLF & $sFileRead & @CRLF, "(*BSR_ANYCRLF)([^\R]*)(?:\R)(?:\R$)?", 3) v.3.3.9.19, line 683: Local $aArray = StringRegExp(@CRLF & $sFileRead & @CRLF, "([^\r\n]*)(?:\r\n|\n|\r)(?:[\r\n]$)?", 3) Maybe the pipe "|" I used is the reason? #AutoIt3Wrapper_Res_Field=Release date|18.10.2013 partypooper, MrCreatoR? P.S. Excuse me for strange characters in line number 5. It's an online artifact, there is no such characters in my code. #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_Res_Comment=http://monter.FM #AutoIt3Wrapper_Res_Description=Example file showing beta bug since AutoIt3.3.9.20. #AutoIt3Wrapper_Res_Field=Release date|18.10.2013 #AutoIt3Wrapper_Res_LegalCopyright=monter.FM #endregion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <Date.au3> #include <File.au3> Global $msg, $flg, $sec $title = 'AutoIt3 - version ' & @AutoItVersion FileChangeDir(@ScriptDir) If StringReplace(@AutoItVersion, '.', '') > 33919 Then VerBug() Else VerOK() EndIf FileInfo() MsgBox($flg, $title, $msg, $sec) If $flg = 48 Then Run('notepad.exe ' & @ScriptName) Func VerBug() $msg = 'This version has just damaged this file.' & @CRLF & 'Fortunately I made the *.bak copy :)' & @CRLF & 'Look at this damaged script now.' $flg = 48 $sec = 6 FileCopy(@ScriptName, @ScriptName & '.bak') EndFunc ;==>VerBug Func VerOK() $msg = "This version works fine and shouldn't damage this file." $flg = 64 $sec = 3 EndFunc ;==>VerOK Func FileInfo() Opt('TrayIconDebug', 1) $strRes = '#AutoIt3Wrapper_' For $ln = 1 To 10 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lr = $ln ExitLoop EndIf Next $strRes = '#AutoIt3Wrapper_Res_Field=Release date|' For $ln = $lr To $lr + 16 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lnRes = $ln ExitLoop EndIf Next $rd = FileGetTime(@ScriptFullPath, 0, 0) _FileWriteToLine(@ScriptFullPath, $lnRes, '#AutoIt3Wrapper_Res_Field=Release date|' & $rd[2] & '.' & $rd[1] & '.' & $rd[0], 1) Global $dateRlse = $rd[2] & '.' & $rd[1] & '.' & $rd[0] FileSetTime(@ScriptFullPath, $rd[0] & $rd[1] & $rd[2] & $rd[3] & $rd[4] & $rd[5], 0) EndFunc ;==>FileInfo FileWriteToLine_bug_Au3.3.9.20+.au3
  4. I tried to edit this my old topic, but I can't (can I somehow, Admin?) P.S. I almost managed with it. Something's wrong with truncating <autoit> code. So here is little update. ČharCönvěr 0.11 - Added: Encoding to Baltic (Win-1257) (previous existing encoding: ANSI, UTF-8, ISO, OEM, ASCII) - Fixed: Manual update checking. - Improved: Both conversion combos are in read-only display mode. - Added: "New in version" in the "Help" menu. - Known bug: After updating - wrong display "New in version". You still can add your own localization file (basing on English one). Current binary file with localization files and icons: http://monter.homeip.net/skrypty/bin/CharConv.exe My scripts don't need admin privileges #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Version=beta #AutoIt3Wrapper_Icon=rob\bpm-ico\CharConv.ico #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_Res_Comment=http://monter.FM/ #AutoIt3Wrapper_Res_Description=Character set converter #AutoIt3Wrapper_Res_Fileversion=0.1.1.0 #AutoIt3Wrapper_Res_LegalCopyright=monter.FM #AutoIt3Wrapper_Res_Language=1045 #AutoIt3Wrapper_Res_Field=ProductVersion|0.1.1 #AutoIt3Wrapper_Res_Field=ProductName|ČharCönvěr #AutoIt3Wrapper_Res_Field=CompanyName|monter.FM #AutoIt3Wrapper_Res_Field=Release date|13.09.2012 #AutoIt3Wrapper_Res_Field=AutoIt3 ver.|%AutoItVer% #AutoIt3Wrapper_Res_File_Add=.\rob\bpm-ico\CharConv.bmp #AutoIt3Wrapper_Res_File_Add=CharConv.polski.lng #AutoIt3Wrapper_Res_File_Add=CharConv.english.lng #AutoIt3Wrapper_Run_AU3Check=y #AutoIt3Wrapper_Run_Tidy=y #Obfuscator_Parameters=/striponly #endregion ;**** Directives created by AutoIt3Wrapper_GUI **** ToolTip('Initializing...', Int(@DesktopWidth / 2), @DesktopHeight - 48, @ScriptName, 1, 2) ;#NoTrayIcon Opt("TrayIconDebug", 1) #include #include #include #include #include #include #include #include #include AutoItSetOption('GUICloseOnESC', 0) $fnScript = 'ČharCönvěr' ;full script name $script = StringLeft(@ScriptName, StringInStr(@ScriptName, '.', 0, -1) - 1) If $script <> 'CharConv' Then $script = 'CharConv' ;proper script name (if user changed it) FileChangeDir(@ScriptDir) $dt = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC $icon = @TempDir & '\' & $script & '_' & $dt & '.ico' FileInstall('.\rob\bpm-ico\CharConv.ico', $icon, 1) $picDrop = @TempDir & '\' & $script & '_' & $dt & '.bmp' FileInstall('.\rob\bpm-ico\CharConv.bmp', $picDrop, 1) $monter = @TempDir & '\' & $script & '_monter.FM_' & $dt & '.gif' FileInstall('.\rob\monter.FM.gif', $monter, 1) OnAutoItExitRegister('OnExit') Global $sVer FileInfo() $title = $fnScript & ' ' & $sVer TraySetIcon($icon) TraySetToolTip($title) If @Compiled Then Opt('TrayIconHide', 1) Dim $pos[3] $ini = @ScriptDir & '\' & $script & '.ini' $dirMonter = @AppDataDir & '\monter.FM' ;directory for monter.FM's scripts $filUpd = @TempDir & '\' & $script & '.upd' ;file checking upgrade from monter's server $filBat = @TempDir & '\' & $script & '.bat' ;temporary file for killing old exe and launching new version If FileExists($filUpd) Then FileDelete($filUpd) If FileExists($filBat) Then FileDelete($filBat) $version = IniRead($ini, 'Main', 'version', $sVer) $srvUrl = 'monter.homeip.net' ;$brk = 0 $fiLngCur = IniRead($ini, 'Main', 'fiLngCur', '') Global $cboCv1, $cboCv2, $lblVer, $updForce = 0 LangVarsR(0) $iniDel = 0 If IniRead($ini, 'Main', 'rcntUsed', '') = '' Or ($CmdLine[0] > 0 And $CmdLine[1] = '-i') Then Install() StatFtp('i') ; 19.09.2010 EndIf If ($CmdLine[0] > 0 And $CmdLine[1] = '-u') Then UpdateSet() StatFtp('u') ; 19.09.2010 EndIf If $sVer > $version Then UpdateIni() msg() $msgNewTout = 60 AbtNew() EndIf If IniRead($ini, 'Main', 'version', '') = '' Then IniWrite($ini, 'Main', 'version', $sVer) IniFRead() $msgNewTout = 0 ;If _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) > $rcntUsed + 48600 Or _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) < $rcntUsed + 10 Then ; $splashMs = '-4500' ;Else ; $splashMs = '-1500' ;EndIf If StringLen($dirSrcRcnt) < 2 Or Not FileExists($dirSrcRcnt) Then $dirSrcRcnt = @DesktopDir Const $wi = 230 Const $he = 176 If $pos[1] > @DesktopWidth - $wi Or $pos[1] = 'default' Then $pos[1] = @DesktopWidth - $wi - 50 If $pos[1] < 0 Then $pos[1] = 50 If $pos[2] > @DesktopHeight - $he Or $pos[2] = 'default' Then $pos[2] = @DesktopHeight - $he - 100 If $pos[2] < 0 Then $pos[2] = 50 $picVis = 1 #region ### START Koda GUI section ### Form=charconv.kxf $frmMain = GUICreate($title, $wi, $he, $pos[1], $pos[2], -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE, $GUI_WS_EX_PARENTDRAG)) GUISetIcon($icon) GUISetBkColor(0xFFFFFF) $mnuFil = GUICtrlCreateMenu(Eval('l_mnuFil')) $mnuFilOpn = GUICtrlCreateMenuItem(Eval('l_mnuFilOpn') & @TAB & 'Ctrl+O', $mnuFil) GUICtrlCreateMenuItem('', $mnuFil) $mnuFilXit = GUICtrlCreateMenuItem(Eval('l_mnuFilXit') & @TAB & 'Ctrl+Q', $mnuFil) $mnuSet = GUICtrlCreateMenu(Eval('l_mnuSet')) $mnuSetLng = GUICtrlCreateMenu(Eval('l_mnuSetLng'), $mnuSet) GUICtrlCreateMenuItem('', $mnuSetLng, 129) $mnuSetLngEdt = GUICtrlCreateMenuItem(Eval('l_mnuSetLngEdt'), $mnuSetLng, 130) GUICtrlCreateMenuItem('', $mnuSet) $mnuSetUnins = GUICtrlCreateMenuItem(Eval('l_mnuSetUnins'), $mnuSet) $mnuHlp = GUICtrlCreateMenu(Eval('l_mnuHlp')) $mnuHlpAbt = GUICtrlCreateMenuItem(Eval('l_mnuHlpAbt') & @TAB & 'Shift+F1', $mnuHlp) $mnuHlpNew = GUICtrlCreateMenuItem(StringFormat(Eval('l_mnuHlpNew'), $sVer) & @TAB & 'Shift+N', $mnuHlp) $edtFilDrop = GUICtrlCreateEdit('', 0, 0, 230, 129, BitOR($ES_READONLY, $ES_CENTER, $ES_MULTILINE)) $picFilDrop = GUICtrlCreatePic($picDrop, 4, 0, 220, 124) $cvStr = 'ANSI|UTF-8|ISO|Baltic|OEM|ASCII' $cboCv1 = GUICtrlCreateCombo('', 4, 128, 57, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL)) If $cvPos1 > 4 Then $cvPos1 = 1 $cvRcnt1 = CboMng($cvStr, 0, $cvPos1, 1) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) GUICtrlSetData(-1, StringReplace($cvStr, '|ASCII', ''), $cvRcnt1) GUICtrlSetTip(-1, Eval('l_cboCv1')) $cboCv2 = GUICtrlCreateCombo('', 82, 128, 57, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL)) $cvRcnt2 = CboMng($cvStr, 0, $cvPos2) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) GUICtrlSetData(-1, $cvStr, $cvRcnt2) GUICtrlSetState(-1, $GUI_FOCUS) GUICtrlSetTip(-1, Eval('l_cboCv2')) $lblCv = GUICtrlCreateLabel('=>', 64, 130, 16, 17) $picMtr = GUICtrlCreatePic($monter, 160, 136, 64, 14) GUICtrlSetTip(-1, Eval('l_picMtr')) GUICtrlSetCursor(-1, 0) $aLng = StringSplit(LangList(), '|') DropRefresh() Dim $frmMain_AccelTable[4][2] = [['^o', $mnuFilOpn],['^q', $mnuFilXit],['+{F1}', $mnuHlpAbt],['+n', $mnuHlpNew]] GUISetAccelerators($frmMain_AccelTable) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### WinSetOnTop($title, '', 1) $adlFrq = 2000 AdlibRegister('UpdateCheck', $adlFrq) msg() AdlibRegister('Hover') CboChk() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $mnuFilOpn $filSel = FilSel($dirSrcRcnt) If Not @error Then Convert($filSel) EndIf Case $mnuFilXit Exit Case $GUI_EVENT_DROPPED $filSel = FilDrop() $filSel = FilFilter($filSel) ; filtering files according to given file extensions If @error Then msg(Eval('l_msgFilFmtErr'), -3500, -1, -1, -1, -3) Else DropRefresh() WinActivate($title) Convert($filSel) EndIf Case $cboCv1 $cvPos1 = CboMng($cvStr, 1, GUICtrlRead($cboCv1), 1) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) GUICtrlSetState($cboCv2, $GUI_FOCUS) CboChk() Case $cboCv2 $cvPos2 = CboMng($cvStr, 1, GUICtrlRead($cboCv2)) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) CboChk() Case Eval('mnuLng_1') To Eval('mnuLng_' & $aLng[1]) For $i = 1 To $aLng[1] If $nMsg = Eval('mnuLng_' & $i) Then $fiLngCur = $script & '.' & GUICtrlRead(Eval('mnuLng_' & $i), 1) & '.lng' ExitLoop EndIf Next LangVarsR(1) $aLng = StringSplit(LangList(), '|') Case $mnuSetLngEdt Run('notepad.exe ' & $fiLngCur) Case $mnuSetUnins Uninstall() Case $mnuHlpAbt About() Case $mnuHlpNew AbtNew() Case $picMtr About() EndSwitch WEnd Func DropRefresh() AdlibUnRegister('Hover') GUICtrlDelete($edtFilDrop) GUICtrlDelete($picFilDrop) $edtFilDrop = GUICtrlCreateEdit('', 0, 0, 230, 124, BitOR($ES_READONLY, $ES_CENTER, $ES_MULTILINE)) GUICtrlSetData($edtFilDrop, Eval('l_edtFilDrop')) GUICtrlSetFont($edtFilDrop, 16, 800, 0, 'Tahoma') GUICtrlSetState($edtFilDrop, $GUI_DROPACCEPTED) GUICtrlSetBkColor($edtFilDrop, 0xFFFFFF) GUICtrlSetCursor(-1, 0) GUICtrlSetState($edtFilDrop, $GUI_HIDE) $picFilDrop = GUICtrlCreatePic($picDrop, 4, 0, 220, 124, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) AdlibRegister('Hover') EndFunc ;==>DropRefresh Func Hover() $hover = GUIGetCursorInfo($frmMain) Select Case $hover[0] < 0 Or $hover[1] < 12 Or $hover[0] > $wi Or $hover[1] > $he - 53 If $picVis Then $picVis = 0 GUICtrlSetState($edtFilDrop, BitOR($GUI_HIDE, $GUI_DISABLE)) GUICtrlSetState($picFilDrop, $GUI_SHOW) EndIf Case $picVis = 0 $picVis = 1 GUICtrlSetState($picFilDrop, $GUI_HIDE) GUICtrlSetState($edtFilDrop, BitOR($GUI_SHOW, $GUI_ENABLE, $ES_READONLY, $ES_CENTER, $ES_MULTILINE)) EndSelect EndFunc ;==>Hover Func FilSel($sSrcPth) $filOpn = FileOpenDialog($fnScript & ' - ' & Eval('l_capFilSel'), $dirSrcRcnt, Eval('l_fltFilSel'), 5) $path = '' $fileO = '' If $filOpn <> '' Then $fileO = StringTrimLeft($filOpn, StringInStr($filOpn, '|')) If StringInStr($fileO, '|') = 0 Then $path = StringLeft($filOpn, StringInStr($filOpn, '\', 0, -1) - 1) $fileO = StringTrimLeft($fileO, StringInStr($fileO, '\', 0, -1)) Else $path = StringLeft($filOpn, StringInStr($filOpn, '|') - 1) EndIf If StringLen($filOpn) > 0 Then $dirSrcRcnt = $path EndIf If $filOpn = '' Then SetError(1) Return $path & '|' & $fileO ; var returns "path|file1|file2|..." EndFunc ;==>FilSel Func FilDrop() $fileD = StringTrimLeft(GUICtrlRead($edtFilDrop), StringLen(Eval('l_edtFilDrop'))) GUICtrlSetData($edtFilDrop, Eval('l_edtFilDrop')) $fileD = StringReplace($fileD, @CRLF, '|') $path = StringLeft(StringLeft($fileD, StringInStr($fileD, '|', 0, 1) - 1), StringInStr(StringLeft($fileD, StringInStr($fileD, '|', 0, 1) - 1), '\', 0, -1) - 1) $fileD = StringTrimRight(StringReplace($fileD, $path & '\', ''), 1) $fileD = StringTrimLeft($fileD, StringInStr($fileD, '\', 0, -1)) Return $path & '|' & $fileD ; var returns "path|file1|file2|..." EndFunc ;==>FilDrop Func FilFilter($sFltr) $aFltr = StringSplit($sFltr, '|') $sExt = 'html|htm|xml|php|inc|txt|nfo' ; być może przenieść to do .INI $sFltd = '' $aExt = StringSplit($sExt, '|') FileChangeDir($aFltr[1]) For $i = 2 To $aFltr[0] For $x = 1 To $aExt[0] If FileGetSize($aFltr[$i]) > 0 And StringTrimLeft($aFltr[$i], StringInStr($aFltr[$i], '.', 0, -1)) = $aExt[$x] Then $sFltd = $sFltd & '|' & $aFltr[$i] ExitLoop EndIf Next Next $sFltd = StringTrimLeft($sFltd, 1) If $sFltd = '' Then SetError(1) Return $aFltr[1] & '|' & $sFltd ; var returns "path|file1|file2|..." FileChangeDir(@ScriptDir) EndFunc ;==>FilFilter Func CboMng($sCv, $mode = 0, $vPrm = 1, $iNoAsc = 0) ;combo options string to split, mode=0: read $cvPos, return current option / mode=1: display selected option, return $cvPos, ;$vPrm=parameter in mode=0: selected combo position, in mode=1: selected combo option Local $asCv = StringSplit($sCv, '|') For $m = 1 To 2 If $mode = 0 Then If VarGetType($vPrm) <> 'Int32' Then SetError(1) ; wrong var type - should be integer If $vPrm < 1 Or $vPrm > $asCv[0] - $iNoAsc Then SetError(3) ; integer out of range $vPrm = $asCv[$vPrm] Else If VarGetType($vPrm) <> 'String' Then SetError(2) ; wrong var type - should be string For $i = 1 To $asCv[0] - $iNoAsc If $asCv[$i] = $vPrm Then $vPrm = $i ExitLoop EndIf Next EndIf If $mode = 0 Then $mode = 1 Else $mode = 0 EndIf Return $vPrm Next EndFunc ;==>CboMng Func CboChk() If $cvPos1 = $cvPos2 Then MsgBox(48, $title, Eval('l_msgOptDiff'), 3) If $cvPos1 = 1 Then $cvPos2 = 2 Else $cvPos2 = 1 EndIf $cvRcnt2 = CboMng($cvStr, 0, $cvPos2) GUICtrlSetData($cboCv2, '') GUICtrlSetData($cboCv2, $cvStr, $cvRcnt2) GUICtrlSetState(-1, $GUI_FOCUS) EndIf EndFunc ;==>CboChk Func Convert($sFilCv) $filCv = StringSplit($sFilCv, '|') $path = $filCv[1] FileChangeDir($path) For $i = 2 To $filCv[0] $filIn = $script & '.bak\' & $filCv[$i] FileCopy($filCv[$i], $filIn, 9) $hFilR = FileOpen($filIn) If $hFilR = -1 Then msg(Eval('l_msgFilNFnd') & ' ' & $filIn & ', ' & Eval('l_msgSkipCv'), 3000, -1, -1, -1, 3) ContinueLoop EndIf $hFilW = FileOpen($filCv[$i], 2) If $hFilW = -1 Then msg(Eval('l_msgFilNFnd') & ' ' & $filCv[$i] & ', ' & Eval('l_msgSkipCv'), 3000, -1, -1, -1, 3) ContinueLoop EndIf Local $linCv = '' For $l = 1 To _FileCountLines($filIn) $line = CvChar(FileReadLine($hFilR, $l), $cvPos1, $cvPos2) ; string, input conversion, output conversion If $l = 1 Then $linCv = $line Else $linCv = $linCv & @CRLF & $line EndIf Next FileWrite($hFilW, $linCv) FileClose($hFilR) FileClose($hFilW) $countFiles = $countFiles + 1 Next msg(StringFormat(Eval('l_msgCvFin')) & @CRLF & $path & '\' & $script & '.bak\', -3000) FileChangeDir(@ScriptDir) EndFunc ;==>Convert Func CvChar($sStr, $iCvIn, $iCvOut) Local $iCv = $iCvIn For $c = 1 To 2 If $iCv = 1 Then $sChr = 'ą|ć|ę|ł|ń|ó|ś|ź|ż|Ą|Ć|Ę|Ł|Ń|Ó|Ś|Ź|Ż' If $iCv = 2 Then $sChr = 'Ä…|ć|Ä™|Ĺ‚|Ĺ„|Ăł|Ĺ›|Ĺş|ĹĽ|Ä„|Ć|Ä|Ĺ|Ĺ|Ă“|Ĺš|Ĺą|Ĺ»' If $iCv = 3 Then $sChr = '±|ć|ę|ł|ń|ó|¶|Ľ|ż|ˇ|Ć|Ę|Ł|Ń|Ó|¦|¬|Ż' If $iCv = 4 Then $sChr = 'ŕ|ă|ć|ů|ń|ó|ú|ę|ý|Ŕ|Ę|Ź|Ů|Ń|Ó|Ú|Ę|Ý' If $iCv = 5 Then $sChr = 'Ą|†|©||ä|ó||«|ľ|¤|Ź|¨|ť|ă|ŕ|—|Ť|˝' If $iCv = 6 Then $sChr = 'a|c|e|l|n|o|s|z|z|A|C|E|L|N|O|S|Z|Z' $iCv = $iCvOut If $c = 1 Then Local $sChrIn = StringSplit($sChr, '|') Else Local $sChrOut = StringSplit($sChr, '|') For $i = 1 To $sChrIn[0] $sStr = StringReplace($sStr, $sChrIn[$i], $sChrOut[$i], 0, 1) Next EndIf Next Return $sStr EndFunc ;==>CvChar Func LangVarsR($iMode) If Not FileExists($script & '.english.lng') Then FileInstall('CharConv.english.lng', $script & '.english.lng', 1) If Not FileExists($script & '.polski.lng') Then FileInstall('CharConv.polski.lng', $script & '.polski.lng', 1) If $fiLngCur = '' Or Not FileExists($fiLngCur) Then If StringInStr('0415', @OSLang) Then $fiLngCur = $script & '.polski.lng' Else $fiLngCur = $script & '.english.lng' EndIf EndIf $vKeyVal = IniReadSection($fiLngCur, 'lng') $vKeyValE = IniReadSection($script & '.english.lng', 'lng') If @error Then MsgBox(16, $script, 'ERROR! There is no [lng] section in your *.lng file.' & @CRLF & 'Something went VERY wrong, exiting.', 8) Exit Else For $i = 1 To $vKeyVal[0][0] Assign('l_' & $vKeyVal[$i][0], $vKeyVal[$i][1], 2) If Eval('l_' & $vKeyVal[$i][0]) = '' Then Assign('l_' & $vKeyVal[$i][0], $vKeyValE[$i][1], 2) If $iMode = 1 Then If Eval($vKeyVal[$i][0]) <> $cboCv1 And Eval($vKeyVal[$i][0]) <> $cboCv2 And Eval($vKeyVal[$i][0]) <> $picMtr And Eval($vKeyVal[$i][0]) <> $lblVer Then $accel = '' If Eval($vKeyVal[$i][0]) = $mnuFilOpn Then $accel = @TAB & 'Ctrl+O' If Eval($vKeyVal[$i][0]) = $mnuFilXit Then $accel = @TAB & 'Ctrl+Q' If Eval($vKeyVal[$i][0]) = $mnuHlpAbt Then $accel = @TAB & 'Shift+F1' If Eval($vKeyVal[$i][0]) = $mnuHlpNew Then $accel = ' ' & $sVer & @TAB & 'Shift+N' GUICtrlSetData(Eval($vKeyVal[$i][0]), Eval('l_' & $vKeyVal[$i][0]) & $accel) Else GUICtrlSetTip(Eval($vKeyVal[$i][0]), Eval('l_' & $vKeyVal[$i][0])) EndIf EndIf Next EndIf EndFunc ;==>LangVarsR Func LangList() FileChangeDir(@ScriptDir) If Not FileExists($script & '.english.lng') Then FileInstall('CharConv.english.lng', $script & '.english.lng', 1) If Not FileExists($script & '.polski.lng') Then FileInstall('CharConv.polski.lng', $script & '.polski.lng', 1) $hFiLng1 = FileFindFirstFile($script & '.*.lng') If $hFiLng1 = -1 Then msg('No language files found. Something went very wrong.') Exit EndIf Local $sLng = '' Local $flngC = StringReplace(StringLeft($fiLngCur, StringInStr($fiLngCur, '.', 0, -1) - 1), $script & '.', '') While 1 $hFiLng = FileFindNextFile($hFiLng1) If @error Then ExitLoop Local $fLang = StringReplace(StringLeft($hFiLng, StringInStr($hFiLng, '.', 0, -1) - 1), $script & '.', '') ; language from filename of *.lng If $fLang = $flngC Then $fLngChk = $fLang $sLng = $sLng & '|' & $fLang WEnd $sLng = StringTrimLeft($sLng, 1) $lngLst = StringSplit($sLng, '|') For $i = 1 To $lngLst[0] GUICtrlDelete(Eval('mnuLng_' & $i)) Assign('mnuLng_' & $i, GUICtrlCreateMenuItem($lngLst[$i], $mnuSetLng, $i - 1), 2) If $flngC = $lngLst[$i] Then GUICtrlSetState(Eval('mnuLng_' & $i), $GUI_CHECKED) Next For $i = $lngLst[0] + 1 To 128 GUICtrlDelete(Eval('mnuLng_' & $i)) Next Return $lngLst[0] & '|' & $flngC ; returns number of found languages | current language EndFunc ;==>LangList Func IniFRead() Global $rcntUsed = IniRead($ini, 'Main', 'rcntUsed', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) Global $rcntUpdChk = IniRead($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) Global $countTimes = IniRead($ini, 'Main', 'countTimes', 0) Global $countFiles = IniRead($ini, 'Main', 'countFiles', 0) Global $pos = StringSplit(IniRead($ini, 'Main', 'savedPos', 'default|default'), '|') Global $cvPos1 = IniRead($ini, 'Main', 'cvPos1', 1) Global $cvPos2 = IniRead($ini, 'Main', 'cvPos2', 2) ;$winTop = IniRead($ini, 'Main', 'winTop', 1) Global $dirSrcRcnt = IniRead($ini, 'Main', 'dirSrcRcnt', '') Global $anon = IniRead($ini, 'Main', 'anon', 0) EndFunc ;==>IniFRead Func About() ; 19.09.2010 #region ### START Koda GUI section ### Form=about.kxf $frmAbt = GUICreate($title & ' - ' & Eval('l_capAbt'), 330, 162, -1, -1) GUISetIcon($icon, -1) $grpDesc = GUICtrlCreateGroup(Eval('l_grpDesc'), 4, 4, 321, 97) $lblDesc = GUICtrlCreateLabel(Eval('l_lblDesc'), 8, 28, 314, 60) GUICtrlCreateGroup('', -99, -99, 1, 1) $lblScpt = GUICtrlCreateLabel($fnScript, 4, 112, 74, 13) GUICtrlSetFont(-1, 8, 400, 4, 'MS Sans Serif') GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetTip(-1, 'http://monter.homeip.net/skrypty/CharConv.html') GUICtrlSetCursor(-1, 0) $lblVer = GUICtrlCreateButton($sVer, 68, 109, 35, 19) GUICtrlSetTip(-1, Eval('l_lblVer')) $lblAuVer = GUICtrlCreateLabel(Eval('l_lblAuVer') & ' AutoIt ' & @AutoItVersion, 108, 112, 115, 13) $lblAbtDate = GUICtrlCreateLabel($dateRlse, 268, 105, 50, 11) GUICtrlSetFont(-1, 7, 400, 0, 'Tahoma') Global $cbxAnon = GUICtrlCreateCheckbox(Eval('l_cbxAnon'), 4, 138, 155, 17) If $anon = 1 Then $anon = 0 Else $anon = 1 EndIf $dataPrv = AnonSwitch() GUICtrlSetTip(-1, @MDAY & '.' & @MON & '.' & @YEAR & ', ' & @HOUR & ':' & @MIN & ':' & @SEC & $dataPrv & @IPAddress1 & ' | ' & _GetIP() & ' | ' & FileGetSize(@ScriptFullPath) & ' b | inst ' & $sVer) $picMtrAbt = GUICtrlCreatePic($monter, 260, 120, 64, 14) GUICtrlSetTip(-1, 'http://monter.fm/') GUICtrlSetCursor(-1, 0) $btnAbtOk = GUICtrlCreateButton('OK', 260, 136, 64, 21) GUICtrlSetState(-1, $GUI_FOCUS) $lblForum = GUICtrlCreateLabel(Eval('l_lblForum'), 180, 140, 73, 13) GUICtrlSetFont(-1, 8, 400, 4, 'MS Sans Serif') GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetTip(-1, 'http://www.autoitscript.com/forum/index.php?showtopic=120036') GUICtrlSetCursor(-1, 0) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### AdlibUnRegister('Hover') ;GUISetState(@SW_SHOW) WinSetState($title, '', @SW_DISABLE) ;GUISetState(@SW_HIDE, $frmMain) AutoItSetOption('GUICloseOnESC', 1) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ExitLoop Case $lblScpt Run(@ComSpec & ' /c start http://' & $srvUrl & '/skrypty/' & $script & '.html', '', @SW_HIDE) Case $lblVer $updForce = 1 UpdateCheck() Case $cbxAnon $dataPrv = AnonSwitch() GUICtrlSetTip($cbxAnon, @MDAY & '.' & @MON & '.' & @YEAR & ', ' & @HOUR & ':' & @MIN & ':' & @SEC & $dataPrv & @IPAddress1 & ' | ' & _GetIP() & ' | ' & FileGetSize(@ScriptFullPath) & ' b | inst ' & $sVer) Case $picMtrAbt Run(@ComSpec & ' /c start http://monter.fm/', '', @SW_HIDE) Case $lblForum Run(@ComSpec & ' /c start http://www.autoitscript.com/forum/index.php?showtopic=120036', '', @SW_HIDE) Case $btnAbtOk ExitLoop EndSwitch WEnd GUIDelete($frmAbt) AutoItSetOption('GUICloseOnESC', 0) AdlibRegister('Hover') ;GUISetState(@SW_SHOW, $frmMain) WinSetState($title, '', @SW_ENABLE) WinActivate($title) EndFunc ;==>About Func AbtNew() WinSetState($title, '', @SW_DISABLE) MsgBox(64, $title & ' - ' & Eval('l_msgTitleNew'), StringFormat(Eval('l_msgUpdChng'), $sVer), 60) WinSetState($title, '', @SW_ENABLE) WinActivate($title) EndFunc ;==>AbtNew Func AnonSwitch() ; 19.09.2010 If $anon = 1 Then Local $sDataPrv = ' | ' & @UserName & ' | ' & @ComputerName & ' | ' GUICtrlSetState($cbxAnon, $GUI_UNCHECKED) $anon = 0 Else Local $sDataPrv = ' | ' GUICtrlSetState($cbxAnon, $GUI_CHECKED) $anon = 1 EndIf Return $sDataPrv EndFunc ;==>AnonSwitch Func UpdateCheck() ; 30.09.2010 - every 18h checking for updates module, .ex_ option AdlibUnRegister('UpdateCheck') If _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - $rcntUpdChk >= 64800 Or $rcntUsed = $rcntUpdChk Or $updForce = 1 Then $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) $pcol = 'ftp://' For $i = 1 To 3 InetGet($pcol & $srvUrl & '/skrypty/bin/' & $script & '.upd', $filUpd, 1, 0) If @error Then ExitLoop Sleep(750) If FileExists($filUpd) And FileGetSize($filUpd) > 30 Then ExitLoop If $i = 1 Then $pcol = 'http://' If $i = 2 Then HttpSetProxy(2, $srvUrl & ':8068') Next HttpSetProxy(1) If Not FileExists($filUpd) Then Sleep(2500) If Not FileExists($filUpd) Or FileGetSize($filUpd) < 30 Then If $updForce = 1 Then msg(Eval('l_msgUpdErr'), -4000, -1, -1, -1, 3) $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - 61200 Else $nVer = IniRead($filUpd, $script & '.exe', 'version', '0.0.0.0') $nVer = StringFormat('%.2f', Number(StringReplace($nVer, '.', '')) / 1000) $nSize = IniRead($filUpd, $script & '.exe', 'size', '999999999') If $nVer > $sVer Then $pcol = 'ftp://' $nFile = IniReadSectionNames($filUpd) $nFile = $nFile[1] For $i = 1 To 3 msg(Eval('l_msgUpdDld') & ' (' & $i & '/3)') InetGet($pcol & $srvUrl & '/skrypty/bin/' & $nFile, @TempDir & '\' & $script & '.exe', 1, 0) If @error Then ExitLoop If FileGetSize(@TempDir & '\' & $script & '.exe') = $nSize Then ExitLoop If $i = 1 Then $pcol = 'http://' If $i = 2 Then $nFile = StringLeft(StringTrimLeft($nFile, StringInStr($nFile, '\', 0, -1)), StringInStr(StringTrimLeft($nFile, StringInStr($nFile, '\', 0, -1)), '.', 0, -1) - 1) & '.ex_' ;If $i = 3 Then HttpSetProxy(2, $srvUrl & ':8068') Next If FileGetSize(@TempDir & '\' & $script & '.exe') < IniRead($filUpd, $script & '.exe', 'size', 0) Then msg(Eval('l_msgUpdDldErr'), -4000, -1, -1, -1, 3) $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - 61200 Else If FileExists($filBat) Then FileDelete($filBat) Sleep(1000) $baTemp = FileOpen($filBat, 1) FileWriteLine($baTemp, '@echo off' & @CRLF & 'echo Updating in progress ' & $script & '...' & @CRLF & 'ping -n 6 autoitscript.com' & @CRLF & 'if exist "' & @TempDir & '\' & $script & '.exe" del "' & @ScriptDir & '\' & $script & '.exe"' & @CRLF & 'move "' & @TempDir & '\' & $script & '.exe" "' & @ScriptDir & '\"') FileWriteLine($baTemp, 'ping -n 3 autoitscript.com' & @CRLF & 'if exist "' & @ScriptDir & '\' & $script & '.exe" "' & @ScriptDir & '\' & $script & '.exe" -u' & @CRLF & 'exit' & @CRLF & 'cls') FileClose($baTemp) EndIf If FileExists(@TempDir & '\' & $script & '.exe') And FileGetSize(@TempDir & '\' & $script & '.exe') = $nSize Then IniWrite(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', $sVer) msg(Eval('l_msgUpdOk') & ' ' & $fnScript & ' ' & $nVer & '...', -3000, -1, -1, -1) Else msg(Eval('l_msgUpdErrFsiz'), -3000, -1, -1, -1, 2) EndIf IniWrite($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) IniWrite($ini, 'Main', 'rcntUsed', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) If FileExists($filUpd) Then FileDelete($filUpd) Run(@ComSpec & ' /c "' & $filBat & '" -u', '', @SW_HIDE) If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) If ProcessExists($script & '.exe') Then ProcessClose($script & '.exe') Exit Else If $updForce = 1 Then msg(Eval('l_msgUpdNoNew'), -2000, -1, -1, -1) EndIf EndIf EndIf If FileExists($filUpd) Then FileDelete($filUpd) $rcntUsed = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) If $adlFrq = 2000 Then $adlFrq = 120000 AdlibUnRegister('UpdateCheck') EndIf $updForce = 0 AdlibRegister('UpdateCheck', $adlFrq) EndFunc ;==>UpdateCheck Func Install() ; 19.09.2010 If @Compiled Then Run('netsh firewall set allowedprogram "' & @ScriptFullPath & '" "Character Set Converter" ENABLE', '', @SW_HIDE) $dirLnch = @WorkingDir If Not FileExists($dirMonter) Then DirCreate($dirMonter) FileChangeDir($dirMonter) If @ScriptDir <> $dirMonter Then $del = 1 $msgInstCpMv = Eval('l_msgInstMov') If StringLeft(@ScriptDir, 3) <> StringLeft(@AppDataDir, 3) Then $del = 0 $instCpyMovTxt = Eval('l_msgInstCpy') EndIf msg(StringFormat(Eval('l_msgInst1st'), @CRLF, $msgInstCpMv)) $list = ProcessList($script & '.exe') For $i = 1 To $list[0][0] $pid = WinGetProcess($script) ProcessClose($pid) Next Sleep(1000) FileCopy(@ScriptFullPath, $dirMonter & '\' & $script & '.exe', 9) If Not FileExists(@ProgramsDir & '\monter.FM\') Then DirCreate(@ProgramsDir & '\monter.FM\') FileCreateShortcut($dirMonter & '\' & $script & '.exe', @ProgramsDir & '\monter.FM\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) msg() $mb = MsgBox(36, $title, Eval('l_mbxDeskSc'), 12) If $mb = 6 Or $mb = -1 Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If $mb = 7 And FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') $baTemp = FileOpen($filBat, 1) If $del = 1 Then FileWriteLine($baTemp, '@ping -n 4 autoitscript.com' & @CRLF & '@if exist "' & @ScriptFullPath & '" del "' & @ScriptFullPath & '"') FileWriteLine($baTemp, '@ping -n 1 autoitscript.com' & @CRLF & '@if exist "' & $dirMonter & '\' & $script & '.exe' & '" "' & $dirMonter & '\' & $script & '.exe' & @CRLF & '@exit' & @CRLF & '@cls') FileClose($baTemp) If FileExists($dirLnch & '\' & $ini) Then FileDelete($dirLnch & '\' & $ini) If FileExists($dirLnch & '\' & $script & '.*.lng') Then FileDelete($dirLnch & '\' & $script & '.*.lng') Sleep(2000) If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) Run(@ComSpec & ' /c "' & $filBat & '" -u', '', @SW_HIDE) For $i = 1 To 2 If ProcessExists(@ScriptName) Then ProcessClose(@ScriptName) Sleep(2000) Next $iniDel = 1 Exit EndIf ; conversion strings will be moved to .INI ;IniWrite($ini, 'ANSI', 'string', 'ą|ć|ę|ł|ń|ó|ś|ź|ż|Ą|Ć|Ę|Ł|Ń|Ó|Ś|Ź|Ż') ;IniWrite($ini, 'UTF-8', 'string', 'Ä…|ć|Ä™|Ĺ‚|Ĺ„|Ăł|Ĺ›|Ĺş|ĹĽ|Ä„|Ć|Ä|Ĺ|Ĺ|Ă“|Ĺš|Ĺą|Ĺ»') ;IniWrite($ini, 'ISO', 'string', '±|ć|ę|ł|ń|ó|¶|Ľ|ż|ˇ|Ć|Ę|Ł|Ń|Ó|¦|¬|Ż') ;IniWrite($ini, 'OEM', 'string', 'Ą|†|©||ä|˘||«|ľ|¤|Ź|¨|ť|ă|ŕ|—|Ť|˝') ;IniWrite($ini, 'ASCII', 'string', 'a|c|e|l|n|o|s|z|z|A|C|E|L|N|O|S|Z|Z') EndIf EndFunc ;==>Install Func UpdateSet() FileInstall('CharConv.english.lng', $dirMonter & '\' & $script & '.english.lng', 1) FileInstall('CharConv.polski.lng', $dirMonter & '\' & $script & '.polski.lng', 1) FileCreateShortcut($dirMonter & '\' & $script & '.exe', @ProgramsDir & '\monter.FM\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) Else $mb = MsgBox(36, $title, Eval('l_mbxDeskSc'), 12) If $mb = 6 Or $mb = -1 Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If $mb = 7 And FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') EndIf EndFunc ;==>UpdateSet Func UpdateIni() ;update ini, convert to new keys/values, deletes old entries IniWrite($ini, 'Main', 'version', $sVer) IniWrite($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) EndFunc ;==>UpdateIni Func StatFtp($op) ; 19.09.2010 $fStat = @TempDir & '\' & $script & '.sta' $hStat = FileOpen($fStat, 1) If $op = 'i' Then $oper = 'inst' ElseIf $op = 'x' Then $oper = 'unin' Else If IniRead(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', '') <> '' Then $oper = IniRead(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', '') & ' =>' Else $oper = '?.?? =>' EndIf EndIf If Not IsDeclared('anon') Then Global $anon = 0 If $anon = 1 Then $dataPrv = ' | ' Else $dataPrv = ' | ' & @UserName & ' | ' & @ComputerName & ' | ' EndIf FileWriteLine($hStat, @MDAY & '.' & @MON & '.' & @YEAR & ', ' & @HOUR & ':' & @MIN & ':' & @SEC & $dataPrv & @IPAddress1 & ' | ' & _GetIP() & ' | ' & FileGetSize(@ScriptFullPath) & ' b | ' & $oper & ' ' & $sVer) FileClose($hStat) $fTemp = @TempDir & '\' & $script & '.ftp' $hFtp = FileOpen($fTemp, 2) FileWriteLine($hFtp, 'open monter.homeip.net') FileWriteLine($hFtp, 'anonymous') FileWriteLine($hFtp, $script) FileWriteLine($hFtp, 'cd skrypty/stats') FileWriteLine($hFtp, 'append ' & $fStat) FileWriteLine($hFtp, 'quit') FileClose($hFtp) RunWait(@ComSpec & ' /c ftp -s:' & $fTemp, '', @SW_HIDE) Sleep(1000) If FileExists($fStat) Then FileDelete($fStat) If FileExists($fTemp) Then FileDelete($fTemp) If FileExists(@TempDir & '\' & $script & '-ver.upd') Then FileDelete(@TempDir & '\' & $script & '-ver.upd') EndFunc ;==>StatFtp Func ExitQuery() ;$exitQry = MsgBox(289, $title, 'Czy mam zakończyć działanie programu?', 8) ;If $exitQry = 1 Then Exit $exitQry = MsgBox(292, $title, Eval('l_mbxDirSelCl'), 8) If $exitQry = 6 Then $brk = 1 EndFunc ;==>ExitQuery Func FileInfo() If @Compiled Then ;section identifying script's version and release date from #AutoIt3Wrapper fields :-) $sVer = StringFormat('%.2f', Number(StringReplace(FileGetVersion(@ScriptFullPath), '.', '')) / 1000) ;script's version in x.xx format Global $dateRlse = FileGetVersion(@ScriptFullPath, 'Release date') Else Opt('TrayIconHide', 0) Opt('TrayIconDebug', 1) ;TraySetIcon($icon) $strRes = '#AutoIt3Wrapper_' For $ln = 1 To 50 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lr = $ln ExitLoop EndIf Next $strRes = '#AutoIt3Wrapper_Res_Fileversion=' Dim $lnRes[3] For $i = 1 To 2 For $ln = $lr To $lr + 16 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lnRes[$i] = $ln ExitLoop EndIf Next $strRes = '#AutoIt3Wrapper_Res_Field=Release date|' Next Global $sVer = StringFormat('%.2f', Number(StringReplace(StringTrimLeft(FileReadLine(@ScriptFullPath, $lnRes[1]), 32), '.', '')) / 1000) $rd = FileGetTime(@ScriptFullPath, 0, 0) _FileWriteToLine(@ScriptFullPath, $lnRes[2], '#AutoIt3Wrapper_Res_Field=Release date|' & $rd[2] & '.' & $rd[1] & '.' & $rd[0], 1) Global $dateRlse = $rd[2] & '.' & $rd[1] & '.' & $rd[0] FileSetTime(@ScriptFullPath, $rd[0] & $rd[1] & $rd[2] & $rd[3] & $rd[4] & $rd[5], 0) EndIf EndFunc ;==>FileInfo Func _GetIP() ; modified Larry/Ezzetabi & Jarvis Stubblefield script Local $ip, $t_ip If InetGet('http://www.adres-ip.pl/?rnd1=' & Random(1, 65536) & '&rnd2=' & Random(1, 65536), @TempDir & '\~ip.tmp') Then $ip = FileRead(@TempDir & '\~ip.tmp', FileGetSize(@TempDir & '\~ip.tmp')) FileDelete(@TempDir & '\~ip.tmp') $ip = StringTrimLeft($ip, StringInStr($ip, ' [b] ') + 14) $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, '/') + 2) $ip = StringStripWS($ip, 8) $t_ip = StringSplit($ip, '.') If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then Return $ip EndIf EndIf If InetGet('http://www.displaymyip.com/?rnd1=' & Random(1, 65536) & '&rnd2=' & Random(1, 65536), @TempDir & '\~ip.tmp') Then $ip = FileRead(@TempDir & '\~ip.tmp', FileGetSize(@TempDir & '\~ip.tmp')) FileDelete(@TempDir & '\~ip.tmp') $ip = StringTrimLeft($ip, StringInStr($ip, '[/b] ') + 15) $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, '/') + 2) $ip = StringStripWS($ip, 8) $t_ip = StringSplit($ip, '.') If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then Return $ip EndIf EndIf Return SetError(1, 0, -1) EndFunc ;==>_GetIP Func Uninstall() ; 06.09.2010 $uninQry = MsgBox(308, $title, Eval('l_mbxUninsQry'), 8) If $uninQry = 6 Then AdlibUnRegister('Hover') If @Compiled Then msg(Eval('l_msgUninsPrg') & ' ' & $title & '...') GUIDelete($frmMain) If FileExists($ini) Then FileDelete($ini) If FileExists(@ProgramsDir & '\monter.FM\' & $fnScript & '.lnk') Then FileDelete(@ProgramsDir & '\monter.FM\' & $fnScript & '.lnk') If FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') If Not FileExists(@ProgramsDir & '\monter.FM\*.*') Then DirRemove(@ProgramsDir & '\monter.FM') ;przesunąć do *.bat $lngpx = 'polski' For $i = 1 To 2 If FileExists(@ScriptDir & '\' & $script & '.' & $lngpx & '.lng') Then FileDelete(@ScriptDir & '\' & $script & '.' & $lngpx & '.lng') $lngpx = 'english' Next If FileExists(@ScriptDir & '\' & $script & '.*.lng') Then $mbxUninsLngs = MsgBox(292, $title, Eval('l_mbxUninsLngs'), 8) If $mbxUninsLngs = 6 Then FileDelete(@ScriptDir & '\' & $script & '.*.lng') EndIf If FileExists($filBat) Then FileDelete($filBat) Sleep(1000) $baTemp = FileOpen($filBat, 1) FileWriteLine($baTemp, 'echo Uninstall in progress: ' & $title & '...' & @CRLF & ':loop' & @CRLF & 'ping -n 3 autoitscript.com' & @CRLF & 'del "' & @ScriptDir & '\' & $script & '.exe"') FileWriteLine($baTemp, 'ping -n 2 autoitscript.com' & @CRLF & 'if exist "' & @ScriptDir & '\' & $script & '.exe" goto loop') FileWriteLine($baTemp, 'ping -n 6 autoitscript.com' & @CRLF & 'del "' & $filBat & '"' & @CRLF & 'exit' & @CRLF & 'cls') FileClose($baTemp) StatFtp('x') ; 19.09.2010 Sleep(1000) If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) Run(@ComSpec & ' /c ' & $filBat, '', @SW_HIDE) If ProcessExists(@ScriptName) Then ProcessClose(@ScriptName) $iniDel = 1 Else msg('Compiled ' & $title & ' would be uninstalled now.' & @CRLF & 'Quitting the script.', 2500) EndIf Exit EndIf EndFunc ;==>Uninstall Func msg($txt = '', $ms = 1500, $title = -1, $ttX = -1, $ttY = -2, $icn = 1, $tray = -1) If $ms >= 0 And $ms < 250 Then $ms = 250 If $ms = -1 Then $ms = 1500 If $ms < -1 Then $ms = Abs($ms) $clr = 1 EndIf If $title = -1 Then $scN = StringSplit(@ScriptName, '.') $title = $scN[1] If IsDeclared('fnScript') And IsDeclared('sVer') Then $title = $fnScript & ' ' & $sVer EndIf If $ttX = -1 Then $ttX = Int(@DesktopWidth / 2) If $ttY = -1 Then $ttY = Int(@DesktopHeight / 2) If $ttY = -2 Then $ttY = @DesktopHeight - 64 If $icn = 2 Then $txt = Eval('l_msgWarn') & @CRLF & $txt If $icn = 3 Then $txt = Eval('l_msgErr') & @CRLF & $txt If $tray = -1 Then ToolTip($txt, $ttX, $ttY, $title, $icn, 2) If $tray = 1 Then TrayTip($title, $txt, $ms, $icn) Sleep($ms) If IsDeclared('clr') Then ToolTip('') EndFunc ;==>msg Func OnExit() BlockInput(0) ;If Not IsDeclared('runAlr') Then If IsDeclared('iniDel') And $iniDel = 0 Then IniWrite($ini, 'Main', 'rcntUsed', $rcntUsed) IniWrite($ini, 'Main', 'rcntUpdChk', $rcntUpdChk) $countTimes = $countTimes + 1 If $countFiles > IniRead($ini, 'Main', 'countFiles', 0) Then IniWrite($ini, 'Main', 'countTimes', $countTimes) IniWrite($ini, 'Main', 'countFiles', $countFiles) ;IniWrite($ini, 'Main', 'winTop', $winTop) IniWrite($ini, 'Main', 'cvPos1', $cvPos1) IniWrite($ini, 'Main', 'cvPos2', $cvPos2) IniWrite($ini, 'Main', 'anon', $anon) IniWrite($ini, 'Main', 'fiLngCur', $fiLngCur) If StringLen($dirSrcRcnt) > 1 Then IniWrite($ini, 'Main', 'dirSrcRcnt', $dirSrcRcnt) If IsDeclared('pos') Then $wPos = WinGetPos($title) If $wPos[0] <> -32000 Then IniWrite($ini, 'Main', 'savedPos', $wPos[0] & '|' & $wPos[1]) EndIf EndIf If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) ;EndIf EndFunc ;==>OnExitCharConv.au3
  5. Didn't you find my script or my CDtray was too much complicated (or too simple)?
  6. Script updated => v.0.4.
  7. Of course, I forgot it
  8. I noticed that FileExists("path\filename.ext") and FileExists("path\*.ext") works properly if I want to check if given files exist, but if any file exist: FileExists("path\*.*") it fails, because it works like FileExists("path") - checks existence of directory. So I made a small func AnyFileExists: $path = 'C:\Newly_created_123\directory_456' DirCreate($path) If @error Then MsgBox(16, Default, 'Error creating directory', 12) Exit EndIf OnAutoItExitRegister('OnExit') MsgBox(64, Default, $path & @CRLF & "shouldn't contain any files.", 4) Test_FileExists() Test_FFFF() Func Test_FileExists() If FileExists($path) Then MsgBox(64, 'Test_FileExists', $path & @CRLF & 'EXISTS.', 6) ; TRUE If FileExists($path & '\*.mp3') Then MsgBox(64, 'Test_FileExists', $path & '\*.mp3' & @CRLF & 'exists.', 6) Else MsgBox(64, 'Test_FileExists', $path & '\*.mp3' & @CRLF & "DOESN'T EXIST.", 6) ; TRUE EndIf If FileExists($path & '\*.*') Then MsgBox(48, 'Test_FileExists', $path & '\*.*' & @CRLF & 'exists (but directory is empty!).', 9) ; FALSE - IMO it should be TRUE! EndFunc ;==>Test_FileExists Func Test_FFFF() $checkFiles = AnyFileExists($path, '*.*') If $checkFiles = 0 Then MsgBox(64, 'Test_FFFF', $path & '\*.*' & @CRLF & "DOESN'T EXIST.", 9) ; TRUE Else MsgBox(64, 'Test_FFFF', $path & '\*.*' & @CRLF & 'exists.', 6) EndIf EndFunc ;==>Test_FFFF Func AnyFileExists($sPath, $sFilter) FileChangeDir($sPath) Local $ff1f = FileFindFirstFile($sFilter) FileChangeDir(@ScriptDir) FileClose($ff1f) If $ff1f = -1 Then Return 0 Else Return 1 EndIf EndFunc ;==>AnyFileExists Func OnExit() FileChangeDir('C:\') If FileExists(StringLeft($path, StringInStr($path, '\', 0, -1) -1)) Then DirRemove(StringLeft($path, StringInStr($path, '\', 0, -1) -1), 1) EndFunc ;==>OnExitAnyFileExists.au3
  9. I didn't know that I can't find it in my XP SP2. In which tab? [Edit] I found it in Accessibility options So, I try to make my script better than native
  10. Recently my mouse stopped working. My 20-months old daughter was playing with it So I wrote this little script. Initial version doesn't have any GUI. ToDo: - GUI - 9 quick jumping points on the screen - mouse acceleration #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=rob\bpm-ico\KbMouse.ico #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_Res_Comment=http://monter.FM #AutoIt3Wrapper_Res_Description=Mouse emulator on keyboard #AutoIt3Wrapper_Res_Fileversion=0.1.0.0 #AutoIt3Wrapper_Res_LegalCopyright=monter.FM #AutoIt3Wrapper_Res_Field=Release date|20.10.2010 #AutoIt3Wrapper_Res_Field=AutoIt3 ver.|%AutoItVer% #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ;ToolTip('Launching KbMouse...', Int(@DesktopWidth / 2), @DesktopHeight - 48, @ScriptName, 1, 2) #include <Date.au3> #include <File.au3> #include <Misc.au3> $fnScript = 'Keyboard Mouse' ;full script name $script = StringLeft(@ScriptName, StringInStr(@ScriptName, '.', 0, -1) - 1) FileChangeDir(@ScriptDir) $dt = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC $icon = @TempDir & '\' & $script & '_' & $dt & '.ico' FileInstall('.\rob\bpm-ico\KbMouse.ico', $icon, 1) ;$monter = @TempDir & '\' & $script & '_monter.FM_' & $dt & '.gif' ;FileInstall('.\rob\monter.FM.gif', $monter, 1) OnAutoItExitRegister('OnExit') FileInfo() $title = $fnScript & ' ' & $sVer TraySetIcon($icon) TraySetToolTip($title) Global $version, $countTimes, $rcntUsed, $rcntUpdChk, $anon, $updForce = 0, $onx = 0 $ini = @ScriptDir & '\' & $script & '.ini' If FileExists($ini) And $CmdLine[0] = 0 Then If _Singleton(@ScriptName, 1) = 0 Then msg() msg($script & ' is running already.', 1500, -1, -1, -1, 2) $runAlr = 1 ;WinSetState($title, '', @SW_SHOW) ;WinActivate($title) Exit EndIf EndIf $dirMonter = @AppDataDir & '\monter.FM' ;directory for monter.FM's scripts $filUpd = @TempDir & '\' & $script & '.upd' ;file checking upgrade from monter's server $filBat = @TempDir & '\' & $script & '.bat' ;temporary file for killing old exe and launching new version If FileExists($filUpd) Then FileDelete($filUpd) If FileExists($filBat) Then FileDelete($filBat) $version = IniRead($ini, 'Main', 'version', $sVer) $srvUrl = 'monter.homeip.net' $iniDel = 0 Run('netsh firewall set allowedprogram "' & @ScriptFullPath & '" "' & $script & '" ENABLE', '', @SW_HIDE) If IniRead($ini, 'Main', 'rcntUsed', '') = '' Or ($CmdLine[0] > 0 And $CmdLine[1] = '-i') Then Install() StatFtp('i') ;21.06.2010 EndIf If ($CmdLine[0] > 0 And $CmdLine[1] = '-u') Then UpdateSet() StatFtp('u') ; 21.06.2010 EndIf If $sVer > $version Then UpdateIni() msg() ; zlikwidowany UpdateMsg() ;MsgBox(64, $title & ' - how to use', 'Toggle activate/deactivate: Ctrl+NUM 0' & @CRLF & 'Move Up: NUM 8' & @CRLF & 'Move Down: NUM 2' & @CRLF & 'Move Left: NUM 4' & @CRLF & 'Move Right: NUM 6' & @CRLF & 'Move Up/Left: NUM 7' & @CRLF & 'Move Up/Right: NUM 9' & @CRLF & 'Move Down/Left: NUM 1' & @CRLF & 'Move Down/Right: NUM 3' & @CRLF & 'Click: NUM 5' & @CRLF & 'Right click: NUM -', 60) EndIf IniFRead() Dim $mPos[3] $mousOn = 0 $step = 6 Global $mov, $mgp $adlFrq = 2000 AdlibRegister('UpdateCheck', $adlFrq) HotKeySet('^{NUMPAD0}', 'Mouse_01') Send('^{NUMPAD0}') HotKeySet('+^{F4}', 'ExitF') While 1 Sleep(25) WEnd Func Mouse_01() If $mousOn = 0 Then TrayTip('', 'KbMouse mode ACTIVE', 30) $mPos = MouseGetPos() Global $mov = 6 HotKeySet('{NUMPAD8}', 'Up') HotKeySet('{NUMPAD2}', 'Dn') HotKeySet('{NUMPAD4}', 'Lt') HotKeySet('{NUMPAD6}', 'Rt') HotKeySet('{NUMPAD7}', 'UpLt') HotKeySet('{NUMPAD9}', 'UpRt') HotKeySet('{NUMPAD1}', 'DnLt') HotKeySet('{NUMPAD3}', 'DnRt') HotKeySet('{NUMPAD5}', 'Clk') HotKeySet('{NUMPADSUB}', 'RClk') $mousOn = 1 Else TrayTip('', 'KbMouse mode DEACTIVATED', 30) HotKeySet('{NUMPAD8}') HotKeySet('{NUMPAD2}') HotKeySet('{NUMPAD4}') HotKeySet('{NUMPAD6}') HotKeySet('{NUMPAD7}') HotKeySet('{NUMPAD9}') HotKeySet('{NUMPAD1}') HotKeySet('{NUMPAD3}') HotKeySet('{NUMPAD5}') HotKeySet('{NUMPADSUB}') $mousOn = 0 EndIf EndFunc ;==>Mouse_01 Func Up() $mgp = MouseGetPos() MouseMove($mgp[0], $mgp[1] - $mov, 0) EndFunc ;==>Up Func Dn() $mgp = MouseGetPos() MouseMove($mgp[0], $mgp[1] + $mov, 0) EndFunc ;==>Dn Func Lt() $mgp = MouseGetPos() MouseMove($mgp[0] - $mov, $mgp[1], 0) EndFunc ;==>Lt Func Rt() $mgp = MouseGetPos() MouseMove($mgp[0] + $mov, $mgp[1], 0) EndFunc ;==>Rt Func UpLt() $mgp = MouseGetPos() MouseMove($mgp[0] - $mov, $mgp[1] - $mov, 0) EndFunc ;==>UpLt Func UpRt() $mgp = MouseGetPos() MouseMove($mgp[0] + $mov, $mgp[1] - $mov, 0) EndFunc ;==>UpRt Func DnLt() $mgp = MouseGetPos() MouseMove($mgp[0] - $mov, $mgp[1] + $mov, 0) EndFunc ;==>DnLt Func DnRt() $mgp = MouseGetPos() MouseMove($mgp[0] + $mov, $mgp[1] + $mov, 0) EndFunc ;==>DnRt Func Clk() MouseClick('') EndFunc ;==>Clk Func RClk() MouseClick('right') EndFunc ;==>RClk Func ExitF() TrayTip('', 'Closing ' & $script & '...', 2) Sleep(750) Exit EndFunc ;==>ExitF Func IniFRead() ; 29.09.2010 - kasowanie pustych kluczy $sct = IniReadSection($ini, 'Main') If @error Then ;($CmdLine[0] > 0 And $CmdLine[1] <> '-i') msg('No [Main] section or missing ini file.', -2500, -1, -1, -1, 2) Else For $i = 1 To $sct[0][0] If $sct[$i][1] = '' Then IniDelete($ini, 'Main', $sct[$i][0]) Next EndIf $countTimes = IniRead($ini, 'Main', 'countTimes', 0) $rcntUsed = IniRead($ini, 'Main', 'rcntUsed', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) $rcntUpdChk = IniRead($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) $anon = IniRead($ini, 'Main', 'anon', 0) EndFunc ;==>IniFRead Func Install() ; 19.09.2010 MsgBox(64, $title & ' - how to use', 'Toggle activate/deactivate: Ctrl+NUM 0' & @CRLF & 'Move Up: NUM 8' & @CRLF & 'Move Down: NUM 2' & @CRLF & 'Move Left: NUM 4' & @CRLF & 'Move Right: NUM 6' & @CRLF & 'Move Up/Left: NUM 7' & @CRLF & 'Move Up/Right: NUM 9' & @CRLF & 'Move Down/Left: NUM 1' & @CRLF & 'Move Down/Right: NUM 3' & @CRLF & 'Click: NUM 5' & @CRLF & 'Right click: NUM -' & @CRLF & 'Exiting: Shift+Ctrl+F4', 60) If @Compiled Then $dirLnch = @WorkingDir If Not FileExists($dirMonter) Then DirCreate($dirMonter) FileChangeDir($dirMonter) If @ScriptDir <> $dirMonter Then $del = 1 $instCpyMovTxt = 'Moving' If StringLeft(@ScriptDir, 3) <> StringLeft(@AppDataDir, 3) Then $del = 0 $instCpyMovTxt = 'Copying' EndIf msg('First launching.' & @CRLF & $instCpyMovTxt & ' file to the proper directory, wait a moment...') $list = ProcessList($script & '.exe') For $i = 1 To $list[0][0] $pid = WinGetProcess($script) ProcessClose($pid) Next Sleep(1000) FileCopy(@ScriptFullPath, $dirMonter & '\' & $script & '.exe', 9) If Not FileExists(@ProgramsDir & '\monter.FM\') Then DirCreate(@ProgramsDir & '\monter.FM\') FileCreateShortcut($dirMonter & '\' & $script & '.exe', @ProgramsDir & '\monter.FM\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) msg() $mb = MsgBox(36, $title, 'Create the shortcut on desktop?', 12) If $mb = 6 Or $mb = -1 Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If $mb = 7 And FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') $baTemp = FileOpen($filBat, 1) If $del = 1 Then FileWriteLine($baTemp, '@ping -n 4 autoitscript.com' & @CRLF & '@if exist "' & @ScriptFullPath & '" del "' & @ScriptFullPath & '"') FileWriteLine($baTemp, '@ping -n 1 autoitscript.com' & @CRLF & '@if exist "' & $dirMonter & '\' & $script & '.exe' & '" "' & $dirMonter & '\' & $script & '.exe' & @CRLF & '@exit' & @CRLF & '@cls') FileClose($baTemp) If FileExists($dirLnch & '\' & $ini) Then FileDelete($dirLnch & '\' & $ini) If FileExists($dirLnch & '\' & $script & '.*.lng') Then FileDelete($dirLnch & '\' & $script & '.*.lng') Sleep(2000) ;If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) Run(@ComSpec & ' /c "' & $filBat & '" -u', '', @SW_HIDE) For $i = 1 To 2 If ProcessExists(@ScriptName) Then ProcessClose(@ScriptName) Sleep(2000) Next $iniDel = 1 Exit EndIf EndIf EndFunc ;==>Install Func UpdateSet() FileCreateShortcut($dirMonter & '\' & $script & '.exe', @ProgramsDir & '\monter.FM\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) Else $mb = MsgBox(36, $title, 'Create the shortcut on desktop?', 12) If $mb = 6 Or $mb = -1 Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If $mb = 7 And FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') EndIf EndFunc ;==>UpdateSet Func UpdateIni() ;update ini, convert to new keys/values, deletes old entries IniWrite($ini, 'Main', 'version', $sVer) IniWrite($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) EndFunc ;==>UpdateIni Func UpdateCheck() ; 19.10.2010 - works for main (single) file in the project, every 20h checking for updates module, .ex_ optional AdlibUnRegister('UpdateCheck') If _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - $rcntUpdChk >= 72000 Or $rcntUsed = $rcntUpdChk Or $updForce = 1 Then $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) $pcol = 'ftp://' For $i = 1 To 3 InetGet($pcol & $srvUrl & '/skrypty/bin/' & $script & '.upd', $filUpd, 1, 0) If @error Then ExitLoop Sleep(750) If FileExists($filUpd) And FileGetSize($filUpd) > 30 Then ExitLoop If $i = 1 Then $pcol = 'http://' If $i = 2 Then HttpSetProxy(2, $srvUrl & ':8068') Next ToolTip('') HttpSetProxy(1) If Not FileExists($filUpd) Then Sleep(2500) If Not FileExists($filUpd) Or FileGetSize($filUpd) < 30 Then If $updForce = 1 Then msg('Network error. Update failed.', -4000, -1, -1, -1, 3) $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - 61200 Else $nFile = IniReadSectionNames($filUpd) $nFile = $nFile[1] $nVer = IniRead($filUpd, $nFile, 'version', '0.0.0.0') $nVer = StringFormat('%.2f', Number(StringReplace($nVer, '.', '')) / 1000) $nSize = IniRead($filUpd, $nFile, 'size', '999999999') If $nVer > $sVer Then $pcol = 'ftp://' For $i = 1 To 3 msg('Downloading the newest version, wait a moment... (' & $i & '/3)') InetGet($pcol & $srvUrl & '/skrypty/bin/' & $nFile, @TempDir & '\' & $nFile, 1, 0) If @error Then ExitLoop If FileGetSize(@TempDir & '\' & $nFile) = $nSize Then ExitLoop If $i = 1 Then $pcol = 'http://' If $i = 2 Then $nFile = StringLeft($nFile, StringInStr($nFile, '.', 0, -1) - 1) & '.ex_' ;If $i = 2 Then HttpSetProxy(2, $srvUrl & ':8068') Next $nFile = IniReadSectionNames($filUpd) $nFile = $nFile[1] If FileGetSize(@TempDir & '\' & $nFile) < IniRead($filUpd, $nFile, 'size', 0) Then msg('Download failed. Check your internet settings.', -4000, -1, -1, -1, 3) $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - 61200 Else If FileExists($filBat) Then FileDelete($filBat) Sleep(1000) $baTemp = FileOpen($filBat, 1) FileWriteLine($baTemp, '@echo off' & @CRLF & 'echo Updating in progress ' & $script & '...' & @CRLF & 'ping -n 6 autoitscript.com' & @CRLF & 'if exist "' & @TempDir & '\' & $nFile & '" del "' & @ScriptDir & '\' & $script & '.exe"' & @CRLF & 'move "' & @TempDir & '\' & $nFile & '" "' & @ScriptDir & '\"') FileWriteLine($baTemp, 'ping -n 3 autoitscript.com' & @CRLF & 'if exist "' & @ScriptDir & '\' & $nFile & '" "' & @ScriptDir & '\' & $nFile & '" -u' & @CRLF & 'exit' & @CRLF & 'cls') FileClose($baTemp) EndIf If FileExists(@TempDir & '\' & $nFile) And FileGetSize(@TempDir & '\' & $nFile) = $nSize Then IniWrite(@TempDir & '\' & $nFile & '-ver.upd', 'Main', 'version', $sVer) msg('Update completed. Launching new version ' & StringLeft($nFile, StringInStr($nFile, '.', 0, -1) - 1) & ' ' & $nVer & '...', -3000, -1, -1, -1) Else msg('Filesize did not match. Something went wrong.', -3000, -1, -1, -1, 2) EndIf IniWrite($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) IniWrite($ini, 'Main', 'rcntUsed', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) If FileExists($filUpd) Then FileDelete($filUpd) Run(@ComSpec & ' /c "' & $filBat & '" -u', '', @SW_HIDE) ;If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) ;If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) If ProcessExists($script & '.exe') Then ProcessClose($script & '.exe') Exit Else If $updForce = 1 Then msg('There is no update at this time.', -2000, -1, -1, -1) EndIf EndIf EndIf If FileExists($filUpd) Then FileDelete($filUpd) $rcntUsed = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) If $adlFrq = 2000 Then $adlFrq = 120000 AdlibUnRegister('UpdateCheck') EndIf $updForce = 0 AdlibRegister('UpdateCheck', $adlFrq) EndFunc ;==>UpdateCheck Func StatFtp($op) ; 19.09.2010 $fStat = @TempDir & '\' & $script & '.sta' $hStat = FileOpen($fStat, 1) If $op = 'i' Then $oper = 'inst' ElseIf $op = 'x' Then $oper = 'unin' Else If IniRead(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', '') <> '' Then $oper = IniRead(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', '') & ' =>' Else $oper = '?.?? =>' EndIf EndIf If Not IsDeclared('anon') Then Global $anon = 0 If $anon = 1 Then $dataPrv = ' | ' Else $dataPrv = ' | ' & @UserName & ' | ' & @ComputerName & ' | ' EndIf FileWriteLine($hStat, @MDAY & '.' & @MON & '.' & @YEAR & ', ' & @HOUR & ':' & @MIN & ':' & @SEC & $dataPrv & @IPAddress1 & ' | ' & _GetIP() & ' | ' & FileGetSize(@ScriptFullPath) & ' b | ' & $oper & ' ' & $sVer) FileClose($hStat) $fTemp = @TempDir & '\' & $script & '.ftp' $hFtp = FileOpen($fTemp, 2) FileWriteLine($hFtp, 'open monter.homeip.net') FileWriteLine($hFtp, 'anonymous') FileWriteLine($hFtp, $script) FileWriteLine($hFtp, 'cd skrypty/stats') FileWriteLine($hFtp, 'append ' & $fStat) FileWriteLine($hFtp, 'quit') FileClose($hFtp) RunWait(@ComSpec & ' /c ftp -s:' & $fTemp, '', @SW_HIDE) Sleep(1000) If FileExists($fStat) Then FileDelete($fStat) If FileExists($fTemp) Then FileDelete($fTemp) If FileExists(@TempDir & '\' & $script & '-ver.upd') Then FileDelete(@TempDir & '\' & $script & '-ver.upd') EndFunc ;==>StatFtp Func _GetIP() ; modified Larry/Ezzetabi & Jarvis Stubblefield script Local $ip, $t_ip If InetGet('http://www.adres-ip.pl/?rnd1=' & Random(1, 65536) & '&rnd2=' & Random(1, 65536), @TempDir & '\~ip.tmp') Then $ip = FileRead(@TempDir & '\~ip.tmp', FileGetSize(@TempDir & '\~ip.tmp')) FileDelete(@TempDir & '\~ip.tmp') $ip = StringTrimLeft($ip, StringInStr($ip, '<h2 class="ip">') + 14) $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, '/') + 2) $ip = StringStripWS($ip, 8) $t_ip = StringSplit($ip, '.') If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then Return $ip EndIf EndIf If InetGet('http://www.displaymyip.com/?rnd1=' & Random(1, 65536) & '&rnd2=' & Random(1, 65536), @TempDir & '\~ip.tmp') Then $ip = FileRead(@TempDir & '\~ip.tmp', FileGetSize(@TempDir & '\~ip.tmp')) FileDelete(@TempDir & '\~ip.tmp') $ip = StringTrimLeft($ip, StringInStr($ip, '<div class="ip">') + 15) $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, '/') + 2) $ip = StringStripWS($ip, 8) $t_ip = StringSplit($ip, '.') If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then Return $ip EndIf EndIf Return SetError(1, 0, -1) EndFunc ;==>_GetIP Func FileInfo() If @Compiled Then ;section identifying script's version and release date from #AutoIt3Wrapper fields :-) Global $sVer = StringFormat('%.2f', Number(StringReplace(FileGetVersion(@ScriptFullPath), '.', '')) / 1000) ;script's version in x.xx format Global $dateRlse = FileGetVersion(@ScriptFullPath, 'Release date') Else Opt('TrayIconDebug', 1) $strRes = '#AutoIt3Wrapper_' For $ln = 1 To 50 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lr = $ln ExitLoop EndIf Next $strRes = '#AutoIt3Wrapper_Res_Fileversion=' Dim $lnRes[3] For $i = 1 To 2 For $ln = $lr To $lr + 16 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lnRes[$i] = $ln ExitLoop EndIf Next $strRes = '#AutoIt3Wrapper_Res_Field=Release date|' Next Global $sVer = StringFormat('%.2f', Number(StringReplace(StringTrimLeft(FileReadLine(@ScriptFullPath, $lnRes[1]), 32), '.', '')) / 1000) $rd = FileGetTime(@ScriptFullPath, 0, 0) _FileWriteToLine(@ScriptFullPath, $lnRes[2], '#AutoIt3Wrapper_Res_Field=Release date|' & $rd[2] & '.' & $rd[1] & '.' & $rd[0], 1) Global $dateRlse = $rd[2] & '.' & $rd[1] & '.' & $rd[0] FileSetTime(@ScriptFullPath, $rd[0] & $rd[1] & $rd[2] & $rd[3] & $rd[4] & $rd[5], 0) EndIf EndFunc ;==>FileInfo Func msg($txt = '', $ms = 1500, $title = -1, $ttX = -1, $ttY = -2, $icn = 1, $tray = -1) If $ms >= 0 And $ms < 250 Then $ms = 250 If $ms = -1 Then $ms = 1500 If $ms < -1 Then $ms = Abs($ms) $clr = 1 EndIf If $title = -1 Then $scN = StringSplit(@ScriptName, '.') $title = $scN[1] If IsDeclared('fnScript') And IsDeclared('sVer') Then $title = $fnScript & ' ' & $sVer EndIf If $ttX = -1 Then $ttX = Int(@DesktopWidth / 2) If $ttY = -1 Then $ttY = Int(@DesktopHeight / 2) If $ttY = -2 Then $ttY = @DesktopHeight - 64 If $icn = 2 Then $txt = 'Warning!' & @CRLF & $txt If $icn = 3 Then $txt = 'ERROR!' & @CRLF & $txt If $tray = -1 Then ToolTip($txt, $ttX, $ttY, $title, $icn, 2) If $tray = 1 Then TrayTip($title, $txt, $ms, $icn) Sleep($ms) If IsDeclared('clr') Then ToolTip('') EndFunc ;==>msg Func OnExit() BlockInput(0) If Not IsDeclared('runAlr') Then If $iniDel = 0 Then IniWrite($ini, 'Main', 'rcntUsed', $rcntUsed) IniWrite($ini, 'Main', 'rcntUpdChk', $rcntUpdChk) $countTimes = $countTimes + 1 IniWrite($ini, 'Main', 'countTimes', $countTimes) IniWrite($ini, 'Main', 'anon', $anon) Else If FileExists($ini) Then FileDelete($ini) EndIf $onx = 1 ;If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) EndIf EndFunc ;==>OnExit Binary: http://monter.homeip.net/skrypty/bin/KbMouse.exe KbMouse.au3
  11. This is an initial version of my new script - character set converter. It converts between different text codings. You can select files by menu item "File->Open" (multiselect available) or with drag&drop. Before every file is converted, backup is made in .\CharConv.bak folder. This application is localized and it has availability to localize by every "foreign" user. ToDo: - autodetection of coding of input file - replacing charset meta tag in HTML/PHP files - make available adding other, user-defined character set replacements - many other code improvements ;-) - undo convert #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=rob\bpm-ico\CharConv.ico #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_Res_Comment=http://monter.FM/ #AutoIt3Wrapper_Res_Description=Character set converter #AutoIt3Wrapper_Res_Fileversion=0.1.0.1 #AutoIt3Wrapper_Res_LegalCopyright=monter.FM #AutoIt3Wrapper_Res_Language=1045 #AutoIt3Wrapper_Res_Field=Release date|20.09.2010 #AutoIt3Wrapper_Res_Field=AutoIt3 ver.|%AutoItVer% #AutoIt3Wrapper_Res_File_Add=rob\bpm-ico\CharConv.bmp #AutoIt3Wrapper_Res_File_Add=CharConv.polski.lng #AutoIt3Wrapper_Res_File_Add=CharConv.english.lng #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ToolTip('Initializing...', Int(@DesktopWidth / 2), @DesktopHeight - 48, @ScriptName, 1, 2) ;#NoTrayIcon Opt("TrayIconDebug", 1) #include <Date.au3> #include <File.au3> #include <GUIConstants.au3> #include <ComboConstants.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> AutoItSetOption('GUICloseOnESC', 0) $fnScript = 'ČharCönvěr' ;full script name $pScript = StringSplit(@ScriptName, '.') $pScript = $pScript[1] $script = $pScript If $script <> 'CharConv' Then $script = 'CharConv' ;proper script name (if user changed it) FileChangeDir(@ScriptDir) $dt = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC $icon = @TempDir & '\' & $script & '_' & $dt & '.ico' FileInstall('.\rob\bpm-ico\CharConv.ico', $icon, 1) $picDrop = @TempDir & '\' & $script & '_' & $dt & '.bmp' FileInstall('.\rob\bpm-ico\CharConv.bmp', $picDrop, 1) $monter = @TempDir & '\' & $script & '_monter.FM_' & $dt & '.gif' FileInstall('.\rob\monter.FM.gif', $monter, 1) OnAutoItExitRegister('OnExit') FileInfo() $title = $fnScript & ' ' & $sVer TraySetIcon($icon) TraySetToolTip($title) If @Compiled Then Opt('TrayIconHide', 1) Dim $pos[3] $ini = @ScriptDir & '\' & $script & '.ini' $dirMonter = @AppDataDir & '\monter.FM' ;directory for monter.FM's scripts $filUpd = @TempDir & '\' & $script & '.upd' ;file checking upgrade from monter's server $filBat = @TempDir & '\' & $script & '.bat' ;temporary file for killing old exe and launching new version If FileExists($filUpd) Then FileDelete($filUpd) If FileExists($filBat) Then FileDelete($filBat) $version = IniRead($ini, 'Main', 'version', $sVer) $srvUrl = 'monter.homeip.net' ;$brk = 0 Run('netsh firewall set allowedprogram "' & @ScriptFullPath & '" "Character Set Converter" ENABLE', '', @SW_HIDE) $fiLngCur = IniRead($ini, 'Main', 'fiLngCur', '') Global $cboCv1, $cboCv2, $lblVer LangVarsR(0) $iniDel = 0 If IniRead($ini, 'Main', 'rcntUsed', '') = '' Or ($CmdLine[0] > 0 And $CmdLine[1] = '-i') Then Install() StatFtp('i') ; 19.09.2010 EndIf If ($CmdLine[0] > 0 And $CmdLine[1] = '-u') Then UpdateShcuts() StatFtp('u') ; 19.09.2010 EndIf If $sVer > $version Then UpdateIni() msg() MsgBox(64, $title & ' - ' & $l_msgTitleNew, StringFormat($l_msgUpdChng, $sVer), 60) EndIf If IniRead($ini, 'Main', 'version', '') = '' Then IniWrite($ini, 'Main', 'version', $sVer) IniFRead() ;If _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) > $rcntUsed + 48600 Or _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) < $rcntUsed + 10 Then ; $splashMs = '-4500' ;Else ; $splashMs = '-1500' ;EndIf If StringLen($dirSrcRcnt) < 2 Or Not FileExists($dirSrcRcnt) Then $dirSrcRcnt = @DesktopDir Const $wi = 230 Const $he = 176 If $pos[1] > @DesktopWidth - $wi Or $pos[1] = 'default' Then $pos[1] = @DesktopWidth - $wi - 50 If $pos[1] < 0 Then $pos[1] = 50 If $pos[2] > @DesktopHeight - $he Or $pos[2] = 'default' Then $pos[2] = @DesktopHeight - $he - 100 If $pos[2] < 0 Then $pos[2] = 50 $picVis = 1 #region ### START Koda GUI section ### Form=charconv.kxf $frmMain = GUICreate($title, $wi, $he, $pos[1], $pos[2], -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE, $GUI_WS_EX_PARENTDRAG)) GUISetIcon($icon) GUISetBkColor(0xFFFFFF) $mnuFil = GUICtrlCreateMenu($l_mnuFil) $mnuFilOpn = GUICtrlCreateMenuItem($l_mnuFilOpn & @TAB & 'Ctrl+O', $mnuFil) GUICtrlCreateMenuItem('', $mnuFil) $mnuFilXit = GUICtrlCreateMenuItem($l_mnuFilXit & @TAB & 'Ctrl+Q', $mnuFil) $mnuSet = GUICtrlCreateMenu($l_mnuSet) $mnuSetLng = GUICtrlCreateMenu($l_mnuSetLng, $mnuSet) GUICtrlCreateMenuItem('', $mnuSetLng, 129) $mnuSetLngEdt = GUICtrlCreateMenuItem($l_mnuSetLngEdt, $mnuSetLng, 130) GUICtrlCreateMenuItem('', $mnuSet) $mnuSetUnins = GUICtrlCreateMenuItem($l_mnuSetUnins, $mnuSet) $mnuHlp = GUICtrlCreateMenu($l_mnuHlp) $mnuHlpAbt = GUICtrlCreateMenuItem($l_mnuHlpAbt & @TAB & 'Shift+F1', $mnuHlp) $edtFilDrop = GUICtrlCreateEdit('', 0, 0, 230, 129, BitOR($ES_READONLY, $ES_CENTER, $ES_MULTILINE)) $picFilDrop = GUICtrlCreatePic($picDrop, 4, 0, 220, 124) $cvStr = 'ANSI|UTF-8|ISO|OEM|ASCII' $cboCv1 = GUICtrlCreateCombo('', 4, 128, 57, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) If $cvPos1 > 4 Then $cvPos1 = 1 $cvRcnt1 = CboMng($cvStr, 0, $cvPos1, 1) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) GUICtrlSetData(-1, StringReplace($cvStr, '|ASCII', ''), $cvRcnt1) GUICtrlSetTip(-1, $l_cboCv1) $cboCv2 = GUICtrlCreateCombo('', 82, 128, 57, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) $cvRcnt2 = CboMng($cvStr, 0, $cvPos2) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) GUICtrlSetData(-1, $cvStr, $cvRcnt2) GUICtrlSetState(-1, $GUI_FOCUS) GUICtrlSetTip(-1, $l_cboCv2) $lblCv = GUICtrlCreateLabel('=>', 64, 130, 16, 17) $picMtr = GUICtrlCreatePic($monter, 160, 136, 64, 14) GUICtrlSetTip(-1, $l_picMtr) GUICtrlSetCursor(-1, 0) $aLng = StringSplit(LangList(), '|') DropRefresh() Dim $frmMain_AccelTable[3][2] = [['^o', $mnuFilOpn],['^q', $mnuFilXit],['+{F1}', $mnuHlpAbt]] GUISetAccelerators($frmMain_AccelTable) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### WinSetOnTop($title, '', 1) $adlFrq = 2000 AdlibRegister('UpdateCheck', $adlFrq) msg() AdlibRegister('Hover') CboChk() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $mnuFilOpn $filSel = FilSel($dirSrcRcnt) If Not @error Then Convert($filSel) EndIf Case $mnuFilXit Exit Case $GUI_EVENT_DROPPED $filSel = FilDrop() $filSel = FilFilter($filSel) ; filtering files according to given file extensions If @error Then msg($l_msgFilFmtErr, -3500, -1, -1, -1, -3) Else DropRefresh() WinActivate($title) Convert($filSel) EndIf Case $cboCv1 $cvPos1 = CboMng($cvStr, 1, GUICtrlRead($cboCv1), 1) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) GUICtrlSetState($cboCv2, $GUI_FOCUS) CboChk() Case $cboCv2 $cvPos2 = CboMng($cvStr, 1, GUICtrlRead($cboCv2)) ;If @error = 1 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinna to być liczba całkowita.', -4000, -1, -1, -1, 3) ;If @error = 2 Then msg('Nieprawidłowy typ danych ostatniego parametru CboMng. Powinien to być łańcuch znaków.', -4000, -1, -1, -1, 3) ;If @error = 3 Then msg('Wartość parametru CboMng przekracza liczbę opcji.', -4000, -1, -1, -1, 3) CboChk() Case $mnuLng_1 To Eval('mnuLng_' & $aLng[1]) For $i = 1 To $aLng[1] If $nMsg = Eval('mnuLng_' & $i) Then $fiLngCur = $script & '.' & GUICtrlRead(Eval('mnuLng_' & $i), 1) & '.lng' ExitLoop EndIf Next LangVarsR(1) $aLng = StringSplit(LangList(), '|') Case $mnuSetLngEdt Run('notepad.exe ' & $fiLngCur) Case $mnuSetUnins Uninstall() Case $mnuHlpAbt About() Case $picMtr About() EndSwitch WEnd Func DropRefresh() AdlibUnRegister('Hover') GUICtrlDelete($edtFilDrop) GUICtrlDelete($picFilDrop) $edtFilDrop = GUICtrlCreateEdit('', 0, 0, 230, 124, BitOR($ES_READONLY, $ES_CENTER, $ES_MULTILINE)) GUICtrlSetData($edtFilDrop, $l_edtFilDrop) GUICtrlSetFont($edtFilDrop, 16, 800, 0, 'Tahoma') GUICtrlSetState($edtFilDrop, $GUI_DROPACCEPTED) GUICtrlSetBkColor($edtFilDrop, 0xFFFFFF) GUICtrlSetCursor(-1, 0) GUICtrlSetState($edtFilDrop, $GUI_HIDE) $picFilDrop = GUICtrlCreatePic($picDrop, 4, 0, 220, 124, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) AdlibRegister('Hover') EndFunc ;==>DropRefresh Func Hover() $hover = GUIGetCursorInfo($frmMain) Select Case $hover[0] < 0 Or $hover[1] < 12 Or $hover[0] > $wi Or $hover[1] > $he - 53 If $picVis Then $picVis = 0 GUICtrlSetState($edtFilDrop, BitOR($GUI_HIDE, $GUI_DISABLE)) GUICtrlSetState($picFilDrop, $GUI_SHOW) EndIf Case $picVis = 0 $picVis = 1 GUICtrlSetState($picFilDrop, $GUI_HIDE) GUICtrlSetState($edtFilDrop, BitOR($GUI_SHOW, $GUI_ENABLE, $ES_READONLY, $ES_CENTER, $ES_MULTILINE)) EndSelect EndFunc ;==>Hover Func FilSel($sSrcPth) $filOpn = FileOpenDialog($fnScript & ' - ' & $l_capFilSel, $dirSrcRcnt, $l_fltFilSel, 5) $path = '' $fileO = '' If $filOpn <> '' Then $fileO = StringTrimLeft($filOpn, StringInStr($filOpn, '|')) If StringInStr($fileO, '|') = 0 Then $path = StringLeft($filOpn, StringInStr($filOpn, '\', 0, -1) - 1) $fileO = StringTrimLeft($fileO, StringInStr($fileO, '\', 0, -1)) Else $path = StringLeft($filOpn, StringInStr($filOpn, '|') - 1) EndIf If StringLen($filOpn) > 0 Then $dirSrcRcnt = $path EndIf If $filOpn = '' Then SetError(1) Return $path & '|' & $fileO ; var returns "path|file1|file2|..." EndFunc ;==>FilSel Func FilDrop() $fileD = StringTrimLeft(GUICtrlRead($edtFilDrop), StringLen($l_edtFilDrop)) GUICtrlSetData($edtFilDrop, $l_edtFilDrop) $fileD = StringReplace($fileD, @CRLF, '|') $path = StringLeft(StringLeft($fileD, StringInStr($fileD, '|', 0, 1) - 1), StringInStr(StringLeft($fileD, StringInStr($fileD, '|', 0, 1) - 1), '\', 0, -1) - 1) $fileD = StringTrimRight(StringReplace($fileD, $path & '\', ''), 1) $fileD = StringTrimLeft($fileD, StringInStr($fileD, '\', 0, -1)) Return $path & '|' & $fileD ; var returns "path|file1|file2|..." EndFunc ;==>FilDrop Func FilFilter($sFltr) $aFltr = StringSplit($sFltr, '|') $sExt = 'html|htm|xml|php|inc|txt|nfo' ; być może przenieść to do .INI $sFltd = '' $aExt = StringSplit($sExt, '|') FileChangeDir($aFltr[1]) For $i = 2 To $aFltr[0] For $x = 1 To $aExt[0] If FileGetSize($aFltr[$i]) > 0 And StringTrimLeft($aFltr[$i], StringInStr($aFltr[$i], '.', 0, -1)) = $aExt[$x] Then $sFltd = $sFltd & '|' & $aFltr[$i] ExitLoop EndIf Next Next $sFltd = StringTrimLeft($sFltd, 1) If $sFltd = '' Then SetError(1) Return $aFltr[1] & '|' & $sFltd ; var returns "path|file1|file2|..." FileChangeDir(@ScriptDir) EndFunc ;==>FilFilter Func CboMng($sCv, $mode = 0, $vPrm = 1, $iNoAsc = 0) ;combo options string to split, mode=0: read $cvPos, return current option / mode=1: display selected option, return $cvPos, ;$vPrm=parameter in mode=0: selected combo position, in mode=1: selected combo option Local $asCv = StringSplit($sCv, '|') For $m = 1 To 2 If $mode = 0 Then If VarGetType($vPrm) <> 'Int32' Then SetError(1) ; wrong var type - should be integer If $vPrm < 1 Or $vPrm > $asCv[0] - $iNoAsc Then SetError(3) ; integer out of range $vPrm = $asCv[$vPrm] Else If VarGetType($vPrm) <> 'String' Then SetError(2) ; wrong var type - should be string For $i = 1 To $asCv[0] - $iNoAsc If $asCv[$i] = $vPrm Then $vPrm = $i ExitLoop EndIf Next EndIf If $mode = 0 Then $mode = 1 Else $mode = 0 EndIf Return $vPrm Next EndFunc ;==>CboMng Func CboChk() If $cvPos1 = $cvPos2 Then MsgBox(48, $title, $l_msgOptDiff, 3) If $cvPos1 = 1 Then $cvPos2 = 2 Else $cvPos2 = 1 EndIf $cvRcnt2 = CboMng($cvStr, 0, $cvPos2) GUICtrlSetData($cboCv2, '') GUICtrlSetData($cboCv2, $cvStr, $cvRcnt2) GUICtrlSetState(-1, $GUI_FOCUS) EndIf EndFunc ;==>CboChk Func Convert($sFilCv) $filCv = StringSplit($sFilCv, '|') $path = $filCv[1] FileChangeDir($path) For $i = 2 To $filCv[0] $filIn = $script & '.bak\' & $filCv[$i] FileCopy($filCv[$i], $filIn, 9) $hFilR = FileOpen($filIn) If $hFilR = -1 Then msg($l_msgFilNFnd & ' ' & $filIn & ', ' & $l_msgSkipCv, 3000, -1, -1, -1, 3) ContinueLoop EndIf $hFilW = FileOpen($filCv[$i], 2) If $hFilW = -1 Then msg($l_msgFilNFnd & ' ' & $filCv[$i] & ', ' & $l_msgSkipCv, 3000, -1, -1, -1, 3) ContinueLoop EndIf Local $linCv = '' For $l = 1 To _FileCountLines($filIn) $line = CvChar(FileReadLine($hFilR, $l), $cvPos1, $cvPos2) ; string, input conversion, output conversion If $l = 1 Then $linCv = $line Else $linCv = $linCv & @CRLF & $line EndIf Next FileWrite($hFilW, $linCv) FileClose($hFilR) FileClose($hFilW) $countFiles = $countFiles + 1 Next msg(StringFormat($l_msgCvFin) & @CRLF & $path & '\' & $script & '.bak\', -3000) FileChangeDir(@ScriptDir) EndFunc ;==>Convert Func CvChar($sStr, $iCvIn, $iCvOut) Local $iCv = $iCvIn For $c = 1 To 2 If $iCv = 1 Then $sChr = 'ą|ć|ę|ł|ń|ó|ś|ź|ż|Ą|Ć|Ę|Ł|Ń|Ó|Ś|Ź|Ż' If $iCv = 2 Then $sChr = 'Ä…|ć|Ä™|Ĺ‚|Ĺ„|Ăł|Ĺ›|Ĺş|ĹĽ|Ä„|Ć|Ä|Ĺ|Ĺ|Ă“|Ĺš|Ĺą|Ĺ»' If $iCv = 3 Then $sChr = '±|ć|ę|ł|ń|ó|&para;|Ľ|ż|ˇ|Ć|Ę|Ł|Ń|Ó|¦|¬|Ż' If $iCv = 4 Then $sChr = 'Ą|†|©||ä|˘||«|ľ|¤|Ź|¨|ť|ă|ŕ|—|Ť|˝' If $iCv = 5 Then $sChr = 'a|c|e|l|n|o|s|z|z|A|C|E|L|N|O|S|Z|Z' $iCv = $iCvOut If $c = 1 Then Local $sChrIn = StringSplit($sChr, '|') Else Local $sChrOut = StringSplit($sChr, '|') For $i = 1 To $sChrIn[0] $sStr = StringReplace($sStr, $sChrIn[$i], $sChrOut[$i], 0, 1) Next EndIf Next Return $sStr EndFunc ;==>CvChar Func LangVarsR($iMode) If Not FileExists($script & '.english.lng') Then FileInstall('CharConv.english.lng', $script & '.english.lng', 1) If Not FileExists($script & '.polski.lng') Then FileInstall('CharConv.polski.lng', $script & '.polski.lng', 1) If $fiLngCur = '' Or Not FileExists($fiLngCur) Then If StringInStr('0415', @OSLang) Then $fiLngCur = $script & '.polski.lng' Else $fiLngCur = $script & '.english.lng' EndIf EndIf $vKeyVal = IniReadSection($fiLngCur, 'lng') $vKeyValE = IniReadSection($script & '.english.lng', 'lng') If @error Then MsgBox(16, $script, 'ERROR! There is no [lng] section in your *.lng file.' & @CRLF & 'Something went VERY wrong, exiting.', 8) Exit Else For $i = 1 To $vKeyVal[0][0] Assign('l_' & $vKeyVal[$i][0], $vKeyVal[$i][1], 2) If Eval('l_' & $vKeyVal[$i][0]) = '' Then Assign('l_' & $vKeyVal[$i][0], $vKeyValE[$i][1], 2) If $iMode = 1 Then If Eval($vKeyVal[$i][0]) <> $cboCv1 And Eval($vKeyVal[$i][0]) <> $cboCv2 And Eval($vKeyVal[$i][0]) <> $picMtr And Eval($vKeyVal[$i][0]) <> $lblVer Then $accel = '' If Eval($vKeyVal[$i][0]) = $mnuFilOpn Then $accel = @TAB & 'Ctrl+O' If Eval($vKeyVal[$i][0]) = $mnuFilXit Then $accel = @TAB & 'Ctrl+Q' If Eval($vKeyVal[$i][0]) = $mnuHlpAbt Then $accel = @TAB & 'Shift+F1' GUICtrlSetData(Eval($vKeyVal[$i][0]), Eval('l_' & $vKeyVal[$i][0]) & $accel) Else GUICtrlSetTip(Eval($vKeyVal[$i][0]), Eval('l_' & $vKeyVal[$i][0])) EndIf EndIf Next EndIf EndFunc ;==>LangVarsR Func LangList() FileChangeDir(@ScriptDir) If Not FileExists($script & '.english.lng') Then FileInstall('CharConv.english.lng', $script & '.english.lng', 1) If Not FileExists($script & '.polski.lng') Then FileInstall('CharConv.polski.lng', $script & '.polski.lng', 1) $hFiLng1 = FileFindFirstFile($script & '.*.lng') If $hFiLng1 = -1 Then msg('No language files found. Something went very wrong.') Exit EndIf Local $sLng = '' Local $flngC = StringReplace(StringLeft($fiLngCur, StringInStr($fiLngCur, '.', 0, -1) - 1), $script & '.', '') While 1 $hFiLng = FileFindNextFile($hFiLng1) If @error Then ExitLoop Local $fLang = StringReplace(StringLeft($hFiLng, StringInStr($hFiLng, '.', 0, -1) - 1), $script & '.', '') ; language from filename of *.lng If $fLang = $flngC Then $fLngChk = $fLang $sLng = $sLng & '|' & $fLang WEnd $sLng = StringTrimLeft($sLng, 1) $lngLst = StringSplit($sLng, '|') For $i = 1 To $lngLst[0] GUICtrlDelete(Eval('mnuLng_' & $i)) Assign('mnuLng_' & $i, GUICtrlCreateMenuItem($lngLst[$i], $mnuSetLng, $i - 1), 2) If $flngC = $lngLst[$i] Then GUICtrlSetState(Eval('mnuLng_' & $i), $GUI_CHECKED) Next For $i = $lngLst[0] + 1 To 128 GUICtrlDelete(Eval('mnuLng_' & $i)) Next Return $lngLst[0] & '|' & $flngC ; returns number of found languages | current language EndFunc ;==>LangList Func IniFRead() Global $rcntUsed = IniRead($ini, 'Main', 'rcntUsed', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) Global $rcntUpdChk = IniRead($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) Global $countTimes = IniRead($ini, 'Main', 'countTimes', 0) Global $countFiles = IniRead($ini, 'Main', 'countFiles', 0) Global $pos = StringSplit(IniRead($ini, 'Main', 'savedPos', 'default|default'), '|') Global $cvPos1 = IniRead($ini, 'Main', 'cvPos1', 1) Global $cvPos2 = IniRead($ini, 'Main', 'cvPos2', 2) ;$winTop = IniRead($ini, 'Main', 'winTop', 1) Global $dirSrcRcnt = IniRead($ini, 'Main', 'dirSrcRcnt', '') Global $anon = IniRead($ini, 'Main', 'anon', 0) EndFunc ;==>IniFRead Func About() ; 19.09.2010 #region ### START Koda GUI section ### Form=about.kxf $frmAbt = GUICreate($title & ' - ' & $l_capAbt, 330, 162, -1, -1) GUISetIcon($icon, -1) $grpDesc = GUICtrlCreateGroup($l_grpDesc, 4, 4, 321, 97) $lblDesc = GUICtrlCreateLabel($l_lblDesc, 8, 28, 314, 60) GUICtrlCreateGroup('', -99, -99, 1, 1) $lblScpt = GUICtrlCreateLabel($fnScript, 4, 112, 74, 13) GUICtrlSetFont(-1, 8, 400, 4, 'MS Sans Serif') GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetTip(-1, 'http://monter.homeip.net/skrypty/CharConv.html') GUICtrlSetCursor(-1, 0) $lblVer = GUICtrlCreateButton($sVer, 68, 109, 35, 19) GUICtrlSetTip(-1, $l_lblVer) $lblAuVer = GUICtrlCreateLabel($l_lblAuVer & ' AutoIt ' & @AutoItVersion, 108, 112, 115, 13) $lblAbtDate = GUICtrlCreateLabel($dateRlse, 268, 105, 50, 11) GUICtrlSetFont(-1, 7, 400, 0, 'Tahoma') Global $cbxAnon = GUICtrlCreateCheckbox($l_cbxAnon, 4, 138, 155, 17) If $anon = 1 Then $anon = 0 Else $anon = 1 EndIf $dataPrv = AnonSwitch() GUICtrlSetTip(-1, @MDAY & '.' & @MON & '.' & @YEAR & ', ' & @HOUR & ':' & @MIN & ':' & @SEC & $dataPrv & @IPAddress1 & ' | ' & _GetIP() & ' | ' & FileGetSize(@ScriptFullPath) & ' b | inst ' & $sVer) $picMtrAbt = GUICtrlCreatePic($monter, 260, 120, 64, 14) GUICtrlSetTip(-1, 'http://monter.fm/') GUICtrlSetCursor(-1, 0) $btnAbtOk = GUICtrlCreateButton('OK', 260, 136, 64, 21) GUICtrlSetState(-1, $GUI_FOCUS) $lblForum = GUICtrlCreateLabel($l_lblForum, 180, 140, 73, 13) GUICtrlSetFont(-1, 8, 400, 4, 'MS Sans Serif') GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetTip(-1, 'http://www.autoitscript.com/forum/index.php?showtopic=120036') GUICtrlSetCursor(-1, 0) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### AdlibUnRegister('Hover') GUISetState(@SW_SHOW) GUISetState(@SW_HIDE, $frmMain) AutoItSetOption('GUICloseOnESC', 1) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ExitLoop Case $lblScpt Run(@ComSpec & ' /c start http://' & $srvUrl & '/skrypty/' & $script & '.html', '', @SW_HIDE) Case $lblVer Global $updForce = 1 UpdateCheck() Case $cbxAnon $dataPrv = AnonSwitch() GUICtrlSetTip($cbxAnon, @MDAY & '.' & @MON & '.' & @YEAR & ', ' & @HOUR & ':' & @MIN & ':' & @SEC & $dataPrv & @IPAddress1 & ' | ' & _GetIP() & ' | ' & FileGetSize(@ScriptFullPath) & ' b | inst ' & $sVer) Case $picMtrAbt Run(@ComSpec & ' /c start http://monter.fm/', '', @SW_HIDE) Case $lblForum Run(@ComSpec & ' /c start http://www.autoitscript.com/forum/index.php?showtopic=120036', '', @SW_HIDE) Case $btnAbtOk ExitLoop EndSwitch WEnd GUIDelete($frmAbt) AutoItSetOption('GUICloseOnESC', 0) AdlibRegister('Hover') GUISetState(@SW_SHOW, $frmMain) WinActivate($title) EndFunc ;==>About Func AnonSwitch() ; 19.09.2010 If $anon = 1 Then Local $sDataPrv = ' | ' & @UserName & ' | ' & @ComputerName & ' | ' GUICtrlSetState($cbxAnon, $GUI_UNCHECKED) $anon = 0 Else Local $sDataPrv = ' | ' GUICtrlSetState($cbxAnon, $GUI_CHECKED) $anon = 1 EndIf Return $sDataPrv EndFunc ;==>AnonSwitch Func UpdateCheck() ; 17.09.2010 - every 18h checking for updates module, .ex_ option AdlibUnRegister('UpdateCheck') If _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - $rcntUpdChk >= 64800 Or $rcntUsed = $rcntUpdChk Then $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) $pcol = 'ftp://' For $i = 1 To 3 InetGet($pcol & $srvUrl & '/skrypty/bin/' & $script & '.upd', $filUpd, 1, 0) If @error Then ExitLoop Sleep(750) If FileExists($filUpd) And FileGetSize($filUpd) > 30 Then ExitLoop If $i = 1 Then $pcol = 'http://' If $i = 2 Then HttpSetProxy(2, $srvUrl & ':8068') Next HttpSetProxy(1) If Not FileExists($filUpd) Then Sleep(2500) If Not FileExists($filUpd) Or FileGetSize($filUpd) < 30 Then If IsDeclared('updForce') Then msg($l_msgUpdErr, -4000, -1, -1, -1, 3) $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - 61200 Else $nVer = IniRead($filUpd, $script & '.exe', 'version', '0.0.0.0') $nVer = StringFormat('%.2f', Number(StringReplace($nVer, '.', '')) / 1000) $nSize = IniRead($filUpd, $script & '.exe', 'size', '999999999') If $nVer > $sVer Then $pcol = 'ftp://' $nFile = IniReadSectionNames($filUpd) $nFile = $nFile[1] For $i = 1 To 3 msg($l_msgUpdDld & ' (' & $i & '/3)') InetGet($pcol & $srvUrl & '/skrypty/bin/' & $nFile, @TempDir & '\' & $script & '.exe', 1, 0) If @error Then ExitLoop If FileGetSize(@TempDir & '\' & $script & '.exe') = $nSize Then ExitLoop If $i = 1 Then $pcol = 'http://' If $i = 2 Then $nFile = StringLeft(StringTrimLeft($nFile, StringInStr($nFile, '\', 0, -1)), StringInStr(StringTrimLeft($nFile, StringInStr($nFile, '\', 0, -1)), '.', 0, -1) - 1) & '.ex_' ;If $i = 3 Then HttpSetProxy(2, $srvUrl & ':8068') Next If FileGetSize(@TempDir & '\' & $script & '.exe') < IniRead($filUpd, $script & '.exe', 'size', 0) Then msg($l_msgUpdDldErr, -4000, -1, -1, -1, 3) $rcntUpdChk = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) - 61200 Else If FileExists($filBat) Then FileDelete($filBat) Sleep(1000) $baTemp = FileOpen($filBat, 1) FileWriteLine($baTemp, '@echo off' & @CRLF & 'echo Updating in progress ' & $script & '...' & @CRLF & 'ping -n 6 autoitscript.com' & @CRLF & 'if exist "' & @TempDir & '\' & $script & '.exe" del "' & @ScriptDir & '\' & $script & '.exe"' & @CRLF & 'move "' & @TempDir & '\' & $script & '.exe" "' & @ScriptDir & '\"') FileWriteLine($baTemp, 'ping -n 3 autoitscript.com' & @CRLF & 'if exist "' & @ScriptDir & '\' & $script & '.exe" "' & @ScriptDir & '\' & $script & '.exe" -u' & @CRLF & 'exit' & @CRLF & 'cls') FileClose($baTemp) EndIf If FileExists(@TempDir & '\' & $script & '.exe') And FileGetSize(@TempDir & '\' & $script & '.exe') = $nSize Then IniWrite(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', $sVer) msg($l_msgUpdOk & ' ' & $fnScript & ' ' & $nVer & '...', -3000, -1, -1, -1) Else msg($l_msgUpdErrFsiz, -3000, -1, -1, -1, 2) EndIf IniWrite($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) IniWrite($ini, 'Main', 'rcntUsed', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) If FileExists($filUpd) Then FileDelete($filUpd) Run(@ComSpec & ' /c "' & $filBat & '" -u', '', @SW_HIDE) If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) If ProcessExists($script & '.exe') Then ProcessClose($script & '.exe') Exit EndIf EndIf If FileExists($filUpd) Then FileDelete($filUpd) $rcntUsed = _DateDiff('s', '1980/01/01 00:00:00', _NowCalc()) Else If IsDeclared('updForce') Then msg($l_msgUpdNoNew, -2000, -1, -1, -1) EndIf If $adlFrq = 2000 Then $adlFrq = 120000 AdlibUnRegister('UpdateCheck') EndIf AdlibRegister('UpdateCheck', $adlFrq) EndFunc ;==>UpdateCheck Func Install() ; 19.09.2010 If @Compiled Then $dirLnch = @WorkingDir If Not FileExists($dirMonter) Then DirCreate($dirMonter) FileChangeDir($dirMonter) If @ScriptDir <> $dirMonter Then $del = 1 $msgInstCpMv = $l_msgInstMov If StringLeft(@ScriptDir, 3) <> StringLeft(@AppDataDir, 3) Then $del = 0 $instCpyMovTxt = $l_msgInstCpy EndIf msg(StringFormat($l_msgInst1st, @CRLF, $msgInstCpMv)) $list = ProcessList($script & '.exe') For $i = 1 To $list[0][0] $pid = WinGetProcess($script) ProcessClose($pid) Next Sleep(1000) FileCopy(@ScriptFullPath, $dirMonter & '\' & $script & '.exe', 9) If Not FileExists(@ProgramsDir & '\monter.FM\') Then DirCreate(@ProgramsDir & '\monter.FM\') FileCreateShortcut($dirMonter & '\' & $script & '.exe', @ProgramsDir & '\monter.FM\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) msg() $mb = MsgBox(36, $title, $l_mbxDeskSc, 12) If $mb = 6 Or $mb = -1 Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If $mb = 7 And FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') $baTemp = FileOpen($filBat, 1) If $del = 1 Then FileWriteLine($baTemp, '@ping -n 4 autoitscript.com' & @CRLF & '@if exist "' & @ScriptFullPath & '" del "' & @ScriptFullPath & '"') FileWriteLine($baTemp, '@ping -n 1 autoitscript.com' & @CRLF & '@if exist "' & $dirMonter & '\' & $script & '.exe' & '" "' & $dirMonter & '\' & $script & '.exe' & @CRLF & '@exit' & @CRLF & '@cls') FileClose($baTemp) If FileExists($dirLnch & '\' & $ini) Then FileDelete($dirLnch & '\' & $ini) If FileExists($dirLnch & '\' & $script & '.*.lng') Then FileDelete($dirLnch & '\' & $script & '.*.lng') Sleep(2000) If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) Run(@ComSpec & ' /c "' & $filBat & '" -u', '', @SW_HIDE) For $i = 1 To 2 If ProcessExists(@ScriptName) Then ProcessClose(@ScriptName) Sleep(2000) Next $iniDel = 1 Exit EndIf ; conversion strings will be moved to .INI ;IniWrite($ini, 'ANSI', 'string', 'ą|ć|ę|ł|ń|ó|ś|ź|ż|Ą|Ć|Ę|Ł|Ń|Ó|Ś|Ź|Ż') ;IniWrite($ini, 'UTF-8', 'string', 'Ä…|ć|Ä™|Ĺ‚|Ĺ„|Ăł|Ĺ›|Ĺş|ĹĽ|Ä„|Ć|Ä|Ĺ|Ĺ|Ă“|Ĺš|Ĺą|Ĺ»') ;IniWrite($ini, 'ISO', 'string', '±|ć|ę|ł|ń|ó|&para;|Ľ|ż|ˇ|Ć|Ę|Ł|Ń|Ó|¦|¬|Ż') ;IniWrite($ini, 'OEM', 'string', 'Ą|†|©||ä|˘||«|ľ|¤|Ź|¨|ť|ă|ŕ|—|Ť|˝') ;IniWrite($ini, 'ASCII', 'string', 'a|c|e|l|n|o|s|z|z|A|C|E|L|N|O|S|Z|Z') EndIf EndFunc ;==>Install Func UpdateShcuts() FileCreateShortcut($dirMonter & '\' & $script & '.exe', @ProgramsDir & '\monter.FM\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) Else $mb = MsgBox(36, $title, $l_mbxDeskSc, 12) If $mb = 6 Or $mb = -1 Then FileCreateShortcut($dirMonter & '\' & $script & '.exe', @DesktopDir & '\' & $fnScript & '.lnk', $dirMonter, '', $title, $dirMonter & '\' & $script & '.exe', '', 0) If $mb = 7 And FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') EndIf EndFunc ;==>UpdateShcuts Func UpdateIni() ;update ini, convert to new keys/values, deletes old entries IniWrite($ini, 'Main', 'version', $sVer) IniWrite($ini, 'Main', 'rcntUpdChk', _DateDiff('s', '1980/01/01 00:00:00', _NowCalc())) EndFunc ;==>UpdateIni Func StatFtp($op) ; 19.09.2010 $fStat = @TempDir & '\' & $script & '.sta' $hStat = FileOpen($fStat, 1) If $op = 'i' Then $oper = 'inst' ElseIf $op = 'x' Then $oper = 'unin' Else If IniRead(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', '') <> '' Then $oper = IniRead(@TempDir & '\' & $script & '-ver.upd', 'Main', 'version', '') & ' =>' Else $oper = '?.?? =>' EndIf EndIf If Not IsDeclared('anon') Then Global $anon = 0 If $anon = 1 Then $dataPrv = ' | ' Else $dataPrv = ' | ' & @UserName & ' | ' & @ComputerName & ' | ' EndIf FileWriteLine($hStat, @MDAY & '.' & @MON & '.' & @YEAR & ', ' & @HOUR & ':' & @MIN & ':' & @SEC & $dataPrv & @IPAddress1 & ' | ' & _GetIP() & ' | ' & FileGetSize(@ScriptFullPath) & ' b | ' & $oper & ' ' & $sVer) FileClose($hStat) $fTemp = @TempDir & '\' & $script & '.ftp' $hFtp = FileOpen($fTemp, 2) FileWriteLine($hFtp, 'open monter.homeip.net') FileWriteLine($hFtp, 'anonymous') FileWriteLine($hFtp, $script) FileWriteLine($hFtp, 'cd skrypty/stats') FileWriteLine($hFtp, 'append ' & $fStat) FileWriteLine($hFtp, 'quit') FileClose($hFtp) RunWait(@ComSpec & ' /c ftp -s:' & $fTemp, '', @SW_HIDE) Sleep(1000) If FileExists($fStat) Then FileDelete($fStat) If FileExists($fTemp) Then FileDelete($fTemp) If FileExists(@TempDir & '\' & $script & '-ver.upd') Then FileDelete(@TempDir & '\' & $script & '-ver.upd') EndFunc ;==>StatFtp Func ExitQuery() ;$exitQry = MsgBox(289, $title, 'Czy mam zakończyć działanie programu?', 8) ;If $exitQry = 1 Then Exit $exitQry = MsgBox(292, $title, $l_mbxDirSelCl, 8) If $exitQry = 6 Then $brk = 1 EndFunc ;==>ExitQuery Func FileInfo() If @Compiled Then ;section identifying script's version and release date from #AutoIt3Wrapper fields :-) Global $sVer = StringFormat('%.2f', Number(StringReplace(FileGetVersion(@ScriptFullPath), '.', '')) / 1000) ;script's version in x.xx format Global $dateRlse = FileGetVersion(@ScriptFullPath, 'Release date') Else Opt('TrayIconHide', 0) Opt('TrayIconDebug', 1) ;TraySetIcon($icon) $strRes = '#AutoIt3Wrapper_' For $ln = 1 To 50 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lr = $ln ExitLoop EndIf Next $strRes = '#AutoIt3Wrapper_Res_Fileversion=' Dim $lnRes[3] For $i = 1 To 2 For $ln = $lr To $lr + 16 $srchRes = StringInStr(FileReadLine(@ScriptFullPath, $ln), $strRes) If $srchRes > 0 Then $lnRes[$i] = $ln ExitLoop EndIf Next $strRes = '#AutoIt3Wrapper_Res_Field=Release date|' Next Global $sVer = StringFormat('%.2f', Number(StringReplace(StringTrimLeft(FileReadLine(@ScriptFullPath, $lnRes[1]), 32), '.', '')) / 1000) $rd = FileGetTime(@ScriptFullPath, 0, 0) _FileWriteToLine(@ScriptFullPath, $lnRes[2], '#AutoIt3Wrapper_Res_Field=Release date|' & $rd[2] & '.' & $rd[1] & '.' & $rd[0], 1) Global $dateRlse = $rd[2] & '.' & $rd[1] & '.' & $rd[0] FileSetTime(@ScriptFullPath, $rd[0] & $rd[1] & $rd[2] & $rd[3] & $rd[4] & $rd[5], 0) EndIf EndFunc ;==>FileInfo Func _GetIP() ; modified Larry/Ezzetabi & Jarvis Stubblefield script Local $ip, $t_ip If InetGet('http://www.adres-ip.pl/?rnd1=' & Random(1, 65536) & '&rnd2=' & Random(1, 65536), @TempDir & '\~ip.tmp') Then $ip = FileRead(@TempDir & '\~ip.tmp', FileGetSize(@TempDir & '\~ip.tmp')) FileDelete(@TempDir & '\~ip.tmp') $ip = StringTrimLeft($ip, StringInStr($ip, '<h2 class="ip">') + 14) $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, '/') + 2) $ip = StringStripWS($ip, 8) $t_ip = StringSplit($ip, '.') If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then Return $ip EndIf EndIf If InetGet('http://www.displaymyip.com/?rnd1=' & Random(1, 65536) & '&rnd2=' & Random(1, 65536), @TempDir & '\~ip.tmp') Then $ip = FileRead(@TempDir & '\~ip.tmp', FileGetSize(@TempDir & '\~ip.tmp')) FileDelete(@TempDir & '\~ip.tmp') $ip = StringTrimLeft($ip, StringInStr($ip, '<div class="ip">') + 15) $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, '/') + 2) $ip = StringStripWS($ip, 8) $t_ip = StringSplit($ip, '.') If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then Return $ip EndIf EndIf Return SetError(1, 0, -1) EndFunc ;==>_GetIP Func Uninstall() ; 06.09.2010 $uninQry = MsgBox(308, $title, $l_mbxUninsQry, 8) If $uninQry = 6 Then AdlibUnRegister('Hover') If @Compiled Then msg($l_msgUninsPrg & ' ' & $title & '...') GUIDelete($frmMain) If FileExists($ini) Then FileDelete($ini) If FileExists(@ProgramsDir & '\monter.FM\' & $fnScript & '.lnk') Then FileDelete(@ProgramsDir & '\monter.FM\' & $fnScript & '.lnk') If FileExists(@DesktopDir & '\' & $fnScript & '.lnk') Then FileDelete(@DesktopDir & '\' & $fnScript & '.lnk') If Not FileExists(@ProgramsDir & '\monter.FM\*.*') Then DirRemove(@ProgramsDir & '\monter.FM') ;przesunąć do *.bat $lngpx = 'polski' For $i = 1 To 2 If FileExists(@ScriptDir & '\' & $script & '.' & $lngpx & '.lng') Then FileDelete(@ScriptDir & '\' & $script & '.' & $lngpx & '.lng') $lngpx = 'english' Next If FileExists(@ScriptDir & '\' & $script & '.*.lng') Then $mbxUninsLngs = MsgBox(292, $title, $l_mbxUninsLngs, 8) If $mbxUninsLngs = 6 Then FileDelete(@ScriptDir & '\' & $script & '.*.lng') EndIf If FileExists($filBat) Then FileDelete($filBat) Sleep(1000) $baTemp = FileOpen($filBat, 1) FileWriteLine($baTemp, 'echo Uninstall in progress: ' & $title & '...' & @CRLF & ':loop' & @CRLF & 'ping -n 3 autoitscript.com' & @CRLF & 'del "' & @ScriptDir & '\' & $script & '.exe"') FileWriteLine($baTemp, 'ping -n 2 autoitscript.com' & @CRLF & 'if exist "' & @ScriptDir & '\' & $script & '.exe" goto loop') FileWriteLine($baTemp, 'ping -n 6 autoitscript.com' & @CRLF & 'del "' & $filBat & '"' & @CRLF & 'exit' & @CRLF & 'cls') FileClose($baTemp) StatFtp('x') ; 19.09.2010 Sleep(1000) If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) Run(@ComSpec & ' /c ' & $filBat, '', @SW_HIDE) If ProcessExists(@ScriptName) Then ProcessClose(@ScriptName) $iniDel = 1 Else msg('Compiled ' & $title & ' would be uninstalled now.' & @CRLF & 'Quitting the script.', 2500) EndIf Exit EndIf EndFunc ;==>Uninstall Func msg($txt = '', $ms = 1500, $title = -1, $ttX = -1, $ttY = -2, $icn = 1, $tray = -1) If $ms >= 0 And $ms < 250 Then $ms = 250 If $ms = -1 Then $ms = 1500 If $ms < -1 Then $ms = Abs($ms) $clr = 1 EndIf If $title = -1 Then $scN = StringSplit(@ScriptName, '.') $title = $scN[1] If IsDeclared('fnScript') And IsDeclared('sVer') Then $title = $fnScript & ' ' & $sVer EndIf If $ttX = -1 Then $ttX = Int(@DesktopWidth / 2) If $ttY = -1 Then $ttY = Int(@DesktopHeight / 2) If $ttY = -2 Then $ttY = @DesktopHeight - 64 If $icn = 2 Then $txt = $l_msgWarn & @CRLF & $txt If $icn = 3 Then $txt = $l_msgErr & @CRLF & $txt If $tray = -1 Then ToolTip($txt, $ttX, $ttY, $title, $icn, 2) If $tray = 1 Then TrayTip($title, $txt, $ms, $icn) Sleep($ms) If IsDeclared('clr') Then ToolTip('') EndFunc ;==>msg Func OnExit() BlockInput(0) ;If Not IsDeclared('runAlr') Then If IsDeclared('iniDel') And $iniDel = 0 Then IniWrite($ini, 'Main', 'rcntUsed', $rcntUsed) IniWrite($ini, 'Main', 'rcntUpdChk', $rcntUpdChk) $countTimes = $countTimes + 1 If $countFiles > IniRead($ini, 'Main', 'countFiles', 0) Then IniWrite($ini, 'Main', 'countTimes', $countTimes) IniWrite($ini, 'Main', 'countFiles', $countFiles) ;IniWrite($ini, 'Main', 'winTop', $winTop) IniWrite($ini, 'Main', 'cvPos1', $cvPos1) IniWrite($ini, 'Main', 'cvPos2', $cvPos2) IniWrite($ini, 'Main', 'anon', $anon) IniWrite($ini, 'Main', 'fiLngCur', $fiLngCur) If StringLen($dirSrcRcnt) > 1 Then IniWrite($ini, 'Main', 'dirSrcRcnt', $dirSrcRcnt) If IsDeclared('pos') Then $wPos = WinGetPos($title) If $wPos[0] <> -32000 Then IniWrite($ini, 'Main', 'savedPos', $wPos[0] & '|' & $wPos[1]) EndIf EndIf If IsDeclared('monter') And FileExists($monter) Then FileDelete($monter) If IsDeclared('icon') And FileExists($icon) Then FileDelete($icon) If IsDeclared('picDrop') And FileExists($picDrop) Then FileDelete($picDrop) ;EndIf EndFunc ;==>OnExit Binary file: CharConv.exe CharConv-files.zip CharConv.au3
  12. It's much better now Q's & A's look pretty cool. You could hide input passwords with asterisks by default and add the button "show/hide". It would be more safe (someone can stand behind you at that time)
  13. It's much better now I'm thinking about reminding procedure in case if the user forgets master password. Maybe during first use (If Not FileExist @AppDataDir & '\userlist.txt') we should make few additional testing questions e.g.: 1. your birthday date 2. your mum's name 3. your city name 4. your favourite writer... etc. These questions should be mixed with other "fake" questions (not appeared during test) If anybody would answer on fake question - the program would be blocked for few hours. And after this time - another set of fake questions and one true (of course answer should be the same as during first use/setup). ------------- Make another small fix - after adding first item buttons "New", "Copy", "Del" are still disabled. Maybe it would be better to organize buttons like: "New" (always enabled), "Edit", "Copy", "Del" (these 3 buttons disabled if none exists or none selected)
  14. 1. If someone will find my file "userlist.txt" and will look inside - he sees my master password to Password Saver in plain text 2. When I click on existing item the button "Add" changes to "Change" - it's smart, but after changing, if I want to add new item I have to relaunch the script.
×
×
  • Create New...