Advertisement
marioq

ffautoexe.cmd

Mar 31st, 2022 (edited)
1,530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 11.40 KB | None | 0 0
  1. @echo off & setlocal & cls & echo.
  2. ::::::::::::::::::::::::::::::::::::::::::::
  3. ::::::::::::::::::::::::::::::::::::::::::::
  4. :::::: routin principale.... ... .. .   .     .::::::::::::::::::::::::::::::::::::::
  5. if [%1] NEQ [] ( set "P1=%1" )
  6. if defined P1 ( set "Ps1= %P1%" )
  7. :: echo   -%P1%- -%Ps1%-
  8. :: endlocal & exit /b
  9.  
  10. for /f "tokens=1,2 delims=:" %%A in ('chcp') do (
  11.     set "_CHCP_OLD=%%B"
  12. )
  13. chcp 65001 >nul
  14. ::chcp 1252 >nul
  15. ::chcp 850 >nul
  16. ::cmdow @ /min
  17.  
  18. set _TIME_start=%time%
  19. echo %~dpnx0%Ps1% - %date% - %_TIME_start%
  20. echo   routin principale.... ... .. .   .     .
  21.  
  22. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  23. ::::::::: trovo la dimensione del desktop::::::::::::::::::::::::
  24. :: valori da passare a XULSTORE_CONTENT
  25. ::for /f "tokens=2,10-11" %%a in ('cmdow /b /p ^| grep ^"0x[[:digit:]]*[[:space:]]0') do (
  26. for /f "tokens=2,10-11" %%a in ('cmdow /B /P') do (
  27.     if "%%a"=="0" (
  28.         set DESKTOP_0=%%a
  29.         set DESKTOP_W=%%b
  30.         set DESKTOP_H=%%c
  31.         set /a WINDOW_W=%%b/6*4
  32.         set /a WINDOW_H=%%c/6*4
  33.     )
  34. )
  35. set /a screenX=%DESKTOP_W%/6*2
  36. set /a screenY=%DESKTOP_H%/6*2
  37. ::::::::: trovo la dimensione del desktop fine ::::::::::::::::
  38.  
  39. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  40. ::::::::::date e ora come le voglio io ::::::::::::::::::::::::
  41. for /f "tokens=1-5 delims= " %%a in ( 'wmic path win32_localtime get day^,dayofweek^,month^,year ^| findstr /R [0-9]' ) do (
  42.     set DAY=%%a
  43.     set DAY_OF_WEEK=%%b
  44.     set MONTH_N=%%c
  45.     set YEAR=%%d
  46. )
  47. if defined MONTH_N (
  48.     if %MONTH_N%==1 set MONTH_NAME=gennaio
  49.     if %MONTH_N%==2 set MONTH_NAME=febbraio
  50.     if %MONTH_N%==3 set MONTH_NAME=marzo
  51.     if %MONTH_N%==4 set MONTH_NAME=aprile
  52.     if %MONTH_N%==5 set MONTH_NAME=maggio
  53.     if %MONTH_N%==6 set MONTH_NAME=giugno
  54.     if %MONTH_N%==7 set MONTH_NAME=luglio
  55.     if %MONTH_N%==8 set MONTH_NAME=agosto
  56.     if %MONTH_N%==9 set MONTH_NAME=settembre
  57.     if %MONTH_N%==10 set MONTH_NAME=ottobre
  58.     if %MONTH_N%==11 set MONTH_NAME=novembre
  59.     if %MONTH_N%==12 set MONTH_NAME=dicembre
  60. )  
  61. if defined  DAY_OF_WEEK (
  62.     if %DAY_OF_WEEK%==0 set DAY_NAME=domenica
  63.     if %DAY_OF_WEEK%==1 set DAY_NAME=lunedì
  64.     if %DAY_OF_WEEK%==2 set DAY_NAME=martedì
  65.     if %DAY_OF_WEEK%==3 set DAY_NAME=mercoledì
  66.     if %DAY_OF_WEEK%==4 set DAY_NAME=giovedì
  67.     if %DAY_OF_WEEK%==5 set DAY_NAME=venerdì
  68.     if %DAY_OF_WEEK%==6 set DAY_NAME=sabato
  69.     if %DAY_OF_WEEK%==7 set DAY_NAME=domenica
  70. )
  71. :::::::::::::: date e ora come le voglio io fine ::::::::::::::::::::::::
  72.  
  73. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  74. :::::::::::::: dov'é firefox?? ::::::::::::::::::::::::::::::::::::::::::
  75. for /F "tokens=2 delims=^=" %%A in ('set ProgramFiles ^2^>nul') do (
  76.     for /f "tokens=*" %%G in ('where /r "%%A" firefox.exe ^2^>nul') do (
  77.         set "FIREFOX_exe_PATH=%%~fG"
  78.         set "FIREFOX_PATH=%%~dpG"
  79.         if defined FIREFOX_exe_PATH (
  80.             goto :where_is_FF
  81.         )
  82.     )
  83. )
  84.  
  85. if not defined FIREFOX_exe_PATH (
  86.     if "%ProgramW6432%"=="%ProgramFiles%" (
  87.         goto :where_is_FF
  88.     ) else (
  89.         for /F "tokens=*" %%H IN ('where /r "%ProgramW6432%" firefox.exe ^2^>nul') do (
  90.             set "FIREFOX_exe_PATH=%%~fH"
  91.             set "FIREFOX_PATH=%%~dpH"
  92.             if defined FIREFOX_exe_PATH (
  93.                 goto :where_is_FF
  94.             )
  95.         )
  96.     )
  97. )
  98.  
  99. :where_is_FF
  100. if not defined FIREFOX_exe_PATH (
  101.     echo.
  102.     echo  nei percorsi d'installazione dei programmi
  103.     echo  Firefox non c'é
  104.     set ProgramW6432 2>nul
  105.     set ProgramFiles 2>nul
  106.     goto :END
  107. )
  108. :::::::::::::: dov'é firefox?? fine :::::::::::::::::::::::::::::::::::::::::
  109.  
  110. set FF_TIME_START=%time%
  111. set FIREFOX_PROFILE=%APPDATA%\Mozilla\Firefox\Profiles\
  112. set XULSTORE_FILE=xulstore.json
  113. set XULSTORE_CONTENT={"chrome://browser/content/browser.xhtml":{"main-window":{"screenX":"%screenX%","screenY":"%screenY%","width":"%WINDOW_W%","height":"%WINDOW_H%","sizemode":"normal"},"sidebar-box":{"sidebarcommand":"","width":""},"sidebar-title":{"value":""}}}
  114. set FIREFOX="%FIREFOX_exe_PATH%"
  115. set FIREFOX_WIN_TITLE=%COMPUTERNAME% FIREFOX for %USERNAME% - %DAY_NAME% %DAY% %MONTH_NAME% %YEAR% - %time%
  116.  
  117. echo %~dpnx0%Ps1% - %date% - %time%
  118. ::::::: routin principale.... ... .. .   .     . Fine:::::::::::::::::::::::::::::
  119. ::::::::::::::::::::::::::::::::::::
  120. ::::::::::::::::::::::::::::::::::::
  121. ::::::::::::::::::::::::::::::::::::
  122.  
  123. :: echo a schermo
  124. echo -----
  125. echo %~nx0%Ps1% -%USERNAME%- %DAY_NAME% %DAY% %MONTH_NAME% %YEAR% - %FF_TIME_START%
  126. echo.
  127. echo  DESKTOP_W=%DESKTOP_W%     DESKTOP_H=%DESKTOP_H%
  128. echo   WINDOW_W=%WINDOW_W%  WINDOW_H=%WINDOW_H%
  129. echo    firefox.exe PATH %FIREFOX_PATH%
  130. echo    firefox  profile %FIREFOX_PROFILE%
  131. echo -----
  132. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  133.  
  134. ::::::::::::::::::::: Nei profili standard in %FIREFOX_PROFILE% imposto qualcosa
  135. set COUNT_PROFILE=0
  136. :C_P
  137. if not "%~0"==":C_P" goto :C_P_start
  138. set /a COUNT_PROFILE=%COUNT_PROFILE%+1
  139. echo %COUNT_PROFILE% PROFILO %~1
  140. if %~0==:C_P goto :EOF
  141.  
  142. :C_P_start
  143. echo  Nei profili predefiniti imposto qualcosa... .. .  .   .    .
  144. echo.
  145. for /f "Tokens=*" %%i in ('dir %FIREFOX_PROFILE% /B /A /AD') do (
  146.     call :C_P %%i
  147.     echo %XULSTORE_CONTENT% > "%FIREFOX_PROFILE%%%i\%XULSTORE_FILE%"
  148.     echo   ripristinato "%XULSTORE_FILE%" interfaccia standard
  149.     if exist C:\Windows\myscripts\ffsearch.json.mozlz4 (
  150.         copy /y C:\Windows\myscripts\ffsearch.json.mozlz4 "%FIREFOX_PROFILE%%%i\search.json.mozlz4" >nul
  151.         echo   ripristinato "search.json.mozlz4" motore di ricerca duckduck
  152.     ) else (
  153.         echo   C:\Windows\myscripts\ffsearch.json.mozlz4 non esiste
  154.     )  
  155.     echo.
  156. )
  157. :::::::::::::::: ripristino i profili come li voglio io fine ::::::::::::::::::::
  158.  
  159. :::::::::::::::: avvio FireFox ed attendo che la finestra aperta sia attiva :::::
  160. :::::::::::::::: molte volte la finestra é visibile ma non ha ancora il titolo.
  161. :START_FireFox
  162. set FF_WINid=
  163. set FF_FIRT_START=
  164. set FF_OPTIONS=
  165. set ERROR_START_FF=
  166. set FF_WINid=
  167. set FF_WINlev=
  168. set FF_WINpid=
  169. set FF_FIRT_START=
  170.  
  171. :: FF_FIRT_START stinga di ricerca per la finestra about:logo
  172. set "FF_FIRT_START=cmdow /t /p /f | findstr /R /C:"0x[0-9A-F]*[ ][0-9][ ]*[0-9]*[ ]*Res[ ].*Ena[ ]Vis[0-9 ]*firefox[ ]*(.*pixel).*Mozilla[ ]Firefox$""
  173. :: per aprire una nuova finestra "-new-window" servono due "-url"
  174. set "FF_OPTIONS=-new-window -url "about:logo" -url "https://it.wikipedia.org/wiki/%DAY%_%MONTH_NAME%" -foreground"
  175.  
  176. echo -----
  177. echo   Start FireFox.
  178. echo   ed attendo che la finestra sia attiva
  179. :: a schermo la variabile completa è dentro []
  180. echo     "[%FF_FIRT_START%]"
  181. echo ....attendi... .. .  .  .   .  %time%
  182. echo     start /wait "-" %FIREFOX% %FF_OPTIONS%
  183. start "-" /D "%USERPROFILE%" /wait %FIREFOX% %FF_OPTIONS%
  184. timeout 2 >nul
  185. echo ....attendi... .. .  .  .   .  %time%
  186.  
  187. :: #####################################################
  188. :: #####################################################
  189. :: #####################################################
  190.  
  191. set loop_START_FF_COUNT=1
  192. set COUNT_Nloop=3
  193. :loop_START_FF
  194. %FF_FIRT_START% && set ERROR_START_FF=%errorlevel%
  195. if not defined ERROR_START_FF (
  196.     set /a loop_START_FF_COUNT+=1
  197.     timeout 2 >nul
  198.     if  %loop_START_FF_COUNT% EQU %COUNT_Nloop% (
  199.         echo ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
  200.         echo   [%COUNT_Nloop%] Chek poin
  201.         echo    attendo "about:logo" ^|^| "about:home" ^|^| "una finestra aperta"
  202.         set /a COUNT_Nloop+=3
  203.         cmdow /t /p /f | findstr /R /C:".*Res.*Ena[ ]Vis[ 0-9]*firefox[ ]*.*[ ? ]*Mozilla[ ]Firefox$" && set "ERROR_COUNT_loop_start_FF=%errorlevel%"
  204.         if defined ERROR_COUNT_loop_start_FF (
  205.             echo   FF sembra attivo.... .. .   .   .apro la finestra about:logo
  206.             start "-" /D "%USERPROFILE%" /wait %FIREFOX% -url "about:logo"
  207.             echo ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
  208.         )
  209.     )
  210.     echo   attendo FireFox attivo   %time% - [%loop_START_FF_COUNT%]
  211.     goto :loop_START_FF
  212. )
  213.  
  214. :loop_FIRST_FF_WINDOW
  215. if not "%~0"==":loop_FIRST_FF_WINDOW" goto :FIRST_FF_WINDOW
  216. set "G=%1" & set "H=%2" & set "I=%3"
  217. set "G=%G:G=%" & set "H=%H:H=%" & set "I=%I:I=%"
  218. if G%G% NEQ G (
  219.     if not defined FF_WINid (
  220.         set FF_WINid=%G%
  221.         set FF_WINlev=%H%
  222.         set FF_WINpid=%I%
  223.     )
  224. )
  225. if "%~0"==":loop_FIRST_FF_WINDOW" goto :eof
  226.  
  227. :FIRST_FF_WINDOW
  228. :: imposto "FF_FIRT_START" per il ciclo for
  229. set "FF_FIRT_START=%FF_FIRT_START:|=^|%"
  230. for /f "tokens=1-12" %%G in ('%FF_FIRT_START%') do (
  231.     if not defined FF_WINid (
  232.         call :loop_FIRST_FF_WINDOW G%%G H%%H I%%I
  233.     )
  234. )
  235.  
  236. if "%FF_WINid%"=="" (
  237.     echo  ---------- FF_WINid é vuoto ="%FF_WINid%"
  238.     set FF_WINid=
  239.     for /f "Tokens=1" %%A in ( 'cmdow "*firefox*" /b' ) do (
  240.         echo    chiudo firefox %%A
  241.         cmdow %%A /end
  242.     )
  243.     timeout 2 >nul
  244.     goto :START_FireFox
  245. )
  246.  
  247. echo %FF_WINid%-%FF_WINlev%-%FF_WINpid% -- cmdow Finestra da gestire --
  248. cmdow %FF_WINid% /act /top
  249. start "-" /D "%USERPROFILE%" /wait %FIREFOX% about:home
  250. echo -----
  251. set FIREFOXact=cmdow %FF_WINid% /ren "%FIREFOX_WIN_TITLE%" /mov 35 25 /siz %WINDOW_W% %WINDOW_H% /act
  252. :::::::::::::::: avvio FireFox ed attendo che la finestra aperta sia attiva fine :::::
  253.  
  254. :CK_ERROR_FIRST_FF_WINDOW
  255. set "ERROR_FIRST_FF_WINDOW=0"
  256. timeout 2 >nul
  257. cmdow "%FF_WINid%" /b /p >nul & set ERROR_FIRST_FF_WINDOW=%errorlevel%
  258. if %ERROR_FIRST_FF_WINDOW% GTR 0 (
  259.     echo ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
  260.     echo   La finestra %FF_WINid% non esiste
  261.     echo   chiudo firefox e riavvio
  262.     echo   taskkill /IM firefox.exe /t
  263.     taskkill /IM firefox.exe /t
  264.     echo   riavvio :START_FireFox
  265.     timeout 3 >nul
  266.     echo ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
  267.     goto :START_FireFox
  268. )
  269. echo   Rinomino il titolo, dimensiono e posiziono la finestra
  270. echo    ---------
  271. cmdow "%FF_WINid%" /b /p
  272. set COUNT=0
  273. :CK_FF
  274. set /a COUNT=%COUNT%+1
  275. if %COUNT% GTR 15 (
  276.     set "ERROR_FIRST_FF_WINDOW=0" & goto :CK_ERROR_FIRST_FF_WINDOW
  277. )
  278. cmdow /t /f /b /p | findstr /R /C:"%FF_WINid%[ ]*%FF_WINlev%[ ]*%FF_WINpid%.*Ena.*Vis.*Mozilla Firefox">nul
  279. set FIND_error=%errorlevel%
  280. :: echo %FIND_error%
  281. :: pause
  282. ::    EQU - Uguale
  283. ::    NEQ - Diverso
  284. ::    LSS - Minore di
  285. ::    LEQ - Minore o uguale a
  286. ::    GTR - Maggiore di
  287. ::    GEQ - Maggiore o uguale a
  288. if %FIND_error% GTR 0 (
  289.     echo    ++ N %COUNT% %time%
  290.     timeout 3 >nul
  291.     goto CK_FF
  292.     REM in questo punto non deve arrivare
  293.     echo ERRORE 02 %0 %1 %2
  294.     REM pause
  295. )
  296. :: else
  297. if %FIND_error% EQU 0 (
  298.         echo    %FF_TIME_START% - %0
  299.         echo    cmdow /t /f /b /p ^| findstr /R /C:"%FF_WINid%[ ]*%FF_WINlev%[ ]*%FF_WINpid%.*Ena.*Vis.*Mozilla Firefox" trovato
  300.         %FIREFOXact%
  301.         if %errorlevel% GTR 0 (
  302.             set /a COUNT=%COUNT%+100
  303.             goto CK_FF
  304.         )
  305.         echo    COUNT=%COUNT% - %0 fine
  306.         echo    %time% - %0
  307.         echo    ---------
  308. )
  309.  
  310.  
  311. :CK_win_title
  312. cmdow %FF_WINid% /f /b /p | findstr /E /R "%FIREFOX_WIN_TITLE%"
  313. set FIREFOX_WIN_TITLE_ERROR=%errorlevel%
  314.  
  315. if %FIREFOX_WIN_TITLE_ERROR% GTR 0 (
  316.     echo   FIREFOX_WIN_TITLE_ERROR=%FIREFOX_WIN_TITLE_ERROR%
  317.     echo ------
  318.     timeout 1 >nul
  319.     for /f "Tokens=1" %%A in ( 'cmdow "*firefox*" /b' ) do (
  320.         echo    chiudo firefox %%A
  321.         cmdow %%A /end
  322.         timeout 2 >nul
  323.     )
  324.     timeout 3 >nul
  325.     goto :START_FireFox
  326. )
  327. if %FIREFOX_WIN_TITLE_ERROR% EQU 0 (
  328.     cmdow %FF_WINid% /not
  329.     echo   FIREFOX_WIN_TITLE_ERROR=%FIREFOX_WIN_TITLE_ERROR%
  330. )
  331.  
  332. :END
  333.  
  334. echo ------
  335. echo %~dpnx0%Ps1%
  336. echo %~nx0%Ps1% -%USERNAME%- %DAY_NAME% %DAY% %MONTH_NAME% %YEAR% - %_TIME_start% - start
  337. echo %~nx0%Ps1% -%USERNAME%- %DAY_NAME% %DAY% %MONTH_NAME% %YEAR% - %FF_TIME_START% - FF.. start
  338. echo %~nx0%Ps1% -%USERNAME%- %DAY_NAME% %DAY% %MONTH_NAME% %YEAR% - %time% - end
  339. echo ------
  340.  
  341. :END_00
  342.  
  343. chcp %_CHCP_OLD% >nul
  344. endlocal
  345. exit /b 123
  346.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement