Autore Topic: Sezione Autoit, Discussioni e scambio di idee...  (Letto 68521 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline core-X

  • Newbie
  • *
  • Post: 5
  • Karma: 0
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #75 il: 14/05/2011, 08:47 »
Bene bene ciao sono nuovo del forum e se questa è la sezione adatta ho circa 50000 domande da fare.  :P

Naaa solo una per ora. Ho un software scaricato dal web e con l'aiuto di autoit ho dato il parametro silent e tolto icone e scorciatoie dopo l'installazione,
Codice: [Seleziona]
$Installer = "Programma.exe"
; Run the installer
RunWait($Installer & ' /sp- /verysilent /TASKS="" /norestart')
; Delete Shorcuts
FileDelete(@ProgramsCommonDir & "\Progr\Programma" & "\collegamento1.lnk")
FileDelete(@ProgramsCommonDir & "\Progr\Programma" & "\collegamento2")

Non ho messo il vero software ma fin qui il programma funziona a dovere ora però devo copiare un file txt nella cartella Programmi (C:\Program Files\Cartella dove il software si è installato) dando il comando in autoit
Codice: [Seleziona]
FileCopy("\\server\FILEDACOPIARE.txt","C:\Program Files\CARTELLADELPROGRAMMAINSTALLATO")
Codice: [Seleziona]
FileCopy("C:\Temp\FILEDACOPIARE.txt","C:\Program Files\CARTELLADELPROGRAMMAINSTALLATO")
Ecco qui mi blocco perchè il file di testo non copia nella cartella del programma di destinazione in entrambi i casi e non so cosa esattamente devo mettere in sorgente. Questo file si dovrà copiare al t13 perchè di questo software farò l'addon da integrare con nlite o 7lite, poi decido. Ciao.



ENG2ITA Community

Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #75 il: 14/05/2011, 08:47 »

Offline OnePiece

  • Hero Member
  • *****
  • Post: 5.219
  • Karma: -3277
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #76 il: 14/05/2011, 09:04 »
non copia perché senz'altro non torva nel destinazione il file da copiare

del resto, non serve usare canoni per uccidere zanzare  ;), basta usare 7-Zip SFX per fare quello che vuoi fare, e  la fai a perfezione, per esempio http://www.eng2ita.net/forum/index.php/topic,1874.0.html

vedi altri esempi dentor il topic in questione
http://www.eng2ita.net/forum/index.php/topic,1874.45.html
http://www.eng2ita.net/forum/index.php/topic,1874.msg27563.html#msg27563
http://www.eng2ita.net/forum/index.php/topic,1874.msg26582.html#msg26582
http://www.eng2ita.net/forum/index.php/topic,1874.msg26508.html#msg26508
http://www.eng2ita.net/forum/index.php/topic,1874.msg32620.html#msg32620

il script SFX non e altro che un script in CMD Mod con piccoli modificazioni

Ciao.
   

Offline core-X

  • Newbie
  • *
  • Post: 5
  • Karma: 0
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #77 il: 14/05/2011, 09:39 »
non copia perché senz'altro non torva nel destinazione il file da copiare

Infatti come dicevo non so esattamente cosa metterci in sorgente per questo chiedo :)

del resto, non serve usare canoni per uccidere zanzare  ;), basta usare 7-Zip SFX per fare quello che vuoi fare, e  la fai a perfezione, per esempio
Ciao.
Ho dato un occhiata anche se ho qualche dubbio, fai conto che dopo aver creato l'addon nella cartella svcpack ci sarà... un file sfx.exe con dentro l'exe originale, l'exe di compilazione con autoit per far partire il suddetto originale ed infine il file di testo (file.txt) che si dovrà copiare nella cartella dove si installerà il programma. Ovviamente il file ENTRIES.programma.ini fara partire l'exe di autoit. Ciao.

Offline OnePiece

  • Hero Member
  • *****
  • Post: 5.219
  • Karma: -3277
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #78 il: 14/05/2011, 09:47 »
Non so che vuoi fare li, ma ci sono i variabili @ScriptDir per indicare copiare il file proprio li dove sta lavorando il exe ect ect, che anche il FileInstall

riguardo SFX e stato creato proprio per svcpack addon  ;), si fanno con quello in modo perfetto addon di dotnet che sono migliaia di volte pii complicati ect ect, il 7zip sfx fa proprio tutto, e come ti o detto e solo un script cmd che viene eseguito in silent mod, di più a anche opzioni di creare cancellare e collegamenti ect ect

Codice: [Seleziona]
Macros per dati di "tutti gli utenti".  Molti valori sono letti da HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
@AppDataCommonDir path all'Application Data
@DesktopCommonDir path al Desktop
@DocumentsCommonDir path a Documents
@FavoritesCommonDir path a Favorites
@ProgramsCommonDir path alla cartella Start Menu's Programs
@StartMenuCommonDir path alla cartella Start Menu
@StartupCommonDir path alla cartella Startup

Macros per dati dell'utente corrente.  Molti valori sono letti da HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion
@AppDataDir path alla cartella Application Data dell'utente corrente
@DesktopDir path al Desktop dell'utente corrente
@MyDocumentsDir path a My Documents
@FavoritesDir path ai Preferiti dell'utente corrente
@ProgramsDir path ai Programmi dell'utente corrente (cartella sul Menu Start)
@StartMenuDir path al Menu Start dell'utente corrente
@StartupDir Cartella Startup dell'utente corrente
@UserProfileDir Path alla cartella Profile dell'utente corrente.


Altre macros per il computer system:
@HomeDrive Lettera del Drive contenente la home directory dell'utente corrente.
@HomePath Directory path della home directory dell'utente corrente. Per ottenere il path completo, usala in congiunzione con @HomeDrive.
@HomeShare Nome del server e della condivisione contenente la home directory dell'utente corrente.
@LogonDNSDomain Logon DNS Domain.
@LogonDomain Logon Domain.
@LogonServer Logon server.
@ProgramFilesDir path alla cartella Program Files
@CommonFilesDir path alla cartella Common Files
@WindowsDir path alla cartella Windows
@SystemDir path alla cartella Windows' System (o System32)
@TempDir path alla cartella temporary files
@ComSpec valore di %comspec%, l'interprete secondario di comandi specificato ;
primariamente per usi da linea comandi, ad es.  Run(@ComSpec & " /k help | more")


@ScriptDir  Directory containing the running script.  (Result does not contain a trailing backslash)  
@WorkingDir  Current/active working directory.  (Result does not contain a trailing backslash)  

Ciao.
« Ultima modifica: 14/05/2011, 10:11 da OnePiece »
   

Offline BAT

  • Moderatore cattivo
  • Eng2ita Staff
  • ***
  • Post: 1.564
  • Karma: 151
  • La conoscenza è potere. La conoscenza rende liberi
    • La conoscenza è potere. La conoscenza rende liberi
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #79 il: 14/05/2011, 11:37 »
Ho dato un occhiata anche se ho qualche dubbio, fai conto che dopo aver creato l'addon nella cartella svcpack ci sarà... un file sfx.exe con dentro l'exe originale, l'exe di compilazione con autoit per far partire il suddetto originale ed infine il file di testo (file.txt) che si dovrà copiare nella cartella dove si installerà il programma. Ovviamente il file ENTRIES.programma.ini fara partire l'exe di autoit. Ciao.
La sintassi da usare è
FileCopy (@ScriptDir & "\tuoFileTesto.txt", @ProgramFilesDir & "\CartellaApplicazione\tuoFileTesto.txt", 9)

Qui --> http://bat.xoom.it/download-svcpack-addon-winxpsp3.html
trovi i sorgenti in AutoIT di tutti i pack che ho fatto, dentro Raccolta di svcpack 1 e 2 + Adobe Reader X Italiano v10.0.1

Altri esempi sono in Fatboy-XP (non è un pack)
Blog: https://zerozerocent.blogspot.com
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE CI ANDRA'
Versione quantistica della legge di Murphy: TUTTO VA MALE CONTEMPORANEAMENTE

Offline core-X

  • Newbie
  • *
  • Post: 5
  • Karma: 0
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #80 il: 14/05/2011, 18:40 »
FileCopy (@ScriptDir & "\tuoFileTesto.txt", @ProgramFilesDir & "\CartellaApplicazione\tuoFileTesto.txt", 9)

Weeee Funziona grazie mille :) , ora stavo facendo altre prove,alcune riuscite altre no... in pratica dovrei:
1) Rimuovere un collegamento dalla barra delle applicazioni (e fino ad ora ho provato comandi ma non vanno).
2) E' possibile rimuovere una scorciatoia dei programmi non a collegamenti ma per intera?
Avevo provato cosi
Codice: [Seleziona]
FileDelete(@ProgramsCommonDir  & "\Programma")Cosi facendo ha cancellato i collegamenti ma la scorciatoia "\Programma" è rimasta, in realtà volevo si cancellasse tutta. Ciao.

Offline BAT

  • Moderatore cattivo
  • Eng2ita Staff
  • ***
  • Post: 1.564
  • Karma: 151
  • La conoscenza è potere. La conoscenza rende liberi
    • La conoscenza è potere. La conoscenza rende liberi
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #81 il: 16/05/2011, 09:56 »
Devi imparare ad usare la documentazione di AutoIT
http://www.autoitscript.com/autoit3/docs/

in particolare devi cercare se esiste una funzione predefinita che fa ciò che vuoi
http://www.autoitscript.com/autoit3/docs/functions.htm

dalla documentazione risulta che la funzione adatta è DirRemove
http://www.autoitscript.com/autoit3/docs/functions/DirRemove.htm

devi scrivere qualcosa come
DirRemove ( percorso, 1 )
il parametro 1 cancella ricorsivamente tutte le subdirectory
Blog: https://zerozerocent.blogspot.com
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE CI ANDRA'
Versione quantistica della legge di Murphy: TUTTO VA MALE CONTEMPORANEAMENTE

Offline core-X

  • Newbie
  • *
  • Post: 5
  • Karma: 0
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #82 il: 16/05/2011, 19:20 »
Si il link che hai elencato lo consultavo continuamente gia prima di scrivere in questo post :)
cmq ho provato come hai detto tu facendo cosi e funziona.

Codice: [Seleziona]
DirRemove(@ProgramsCommonDir  & "\Programma", 1)PS: ho rimosso anche il collegamento della barra
Codice: [Seleziona]
FileDelete(@AppDataDir & "\Microsoft\Internet Explorer\Quick Launch\Collegamento.lnk")Grazie BAT e OnePiece.

« Ultima modifica: 16/05/2011, 20:45 da core-X »

Offline Yza_K

  • Di nuovo in azione!
  • Eng2ita Friends
  • **
  • Post: 855
  • Karma: 235
  • - The Brain Administration -
    • La mia Fatica!
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #83 il: 15/07/2011, 09:09 »
HEHEHEHEHE

Ma sono io il responsabile della autoit mania :D

Ammazza quanto siete andati avanti in mia assenza... e io devo praticamente ricominciare in quanto è dal 2009 che nn facc n'a mazz...
Massima Ligure...
" Sùn tùttì bùlicci cò ù cù deì aùtrì "

Offline Fantoman

  • Newbie
  • *
  • Post: 17
  • Karma: 0
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #84 il: 14/06/2012, 16:23 »
Ciao a tutti

mi inserirso in questa discussione anche se datata perchè ho un problema con autoit e macro generator. Ho creato il mio script utilizzando una guida trovata nel web e devo ammettere che ci sono riuscito al primo tentativo, unico problema non mi chiude l'ultima finestra finita l'installazione del programma e non ci sono versi per riuscire a farglielo fare. Potete aiutarmi ? questo lo script:
Codice: [Seleziona]
#region - ProgDVB6.84.1x64 install script - (Automated with WinWait functions)
Opt('WinTitleMatchMode', 4)
Opt('TrayIconDebug', 1)

; Installer.
$executable = 'ProgDVB6.84.1x64.exe'
; Default group folder in startmenu.
$group = ''
; Installation folder in Program Files.
$directory = ''

; Run the installer.
$pid = _Automated()
If WinWait("ProgDVB x64 Setup","&Next >", 60) Then
ControlClick("ProgDVB x64 Setup","&Next >","Button2")
WinWait("ProgDVB x64 Setup ","I &Agree")
ControlClick("ProgDVB x64 Setup ","I &Agree","Button2")
WinWait("ProgDVB x64 Setup ","< &Back")
ControlClick("ProgDVB x64 Setup ","< &Back","Button2")
WinWait("ProgDVB x64 Setup","< &Back")
ControlClick("ProgDVB x64 Setup","< &Back","Button2")
ControlClick("ProgDVB x64 Setup","< &Back","Button2")
ControlClick("ProgDVB x64 Setup","< &Back","Button2")
ControlClick("ProgDVB x64 Setup","< &Back","Button2")
WinWait("ProgDVB x64 Setup","&Install")
ControlClick("ProgDVB x64 Setup","&Install","Button2")
WinWait("ProgDVB x64 Setup ","< &Back")
ControlClick("ProgDVB x64 Setup ","< &Back","Button2")
Else
_Abort()
EndIf
ProcessWaitClose($pid)

; Remove shortcuts.
If _Programs('?.lnk') Then
; Relative to programs directory
; Remove Startmenu shortcuts
FileDelete('?.lnk')
FileDelete('?.lnk')
FileDelete('?.lnk')
FileDelete('?.lnk')
FileDelete('?.lnk')
EndIf
_Desktop('?.lnk')
_QuickLaunch('?.lnk')

Exit
#endregion

Func _Automated($parameters = Default)
; Run the installer in Default Script directory.
Dim $executable
If $parameters = Default Then $parameters = ''
If Not FileExists($executable) And Not FileExists(@ScriptDir & '\' & $executable) Then
Exit 1
ElseIf Not FileExists($executable) Then
FileChangeDir(@ScriptDir)
EndIf
If StringRight($executable, 4) = '.msi' Then
Return Run('"' & @SystemDir & '\msiexec.exe" /i "' & @WorkingDir & '\' & $executable & '" ' & $parameters)
Else
Return Run('"' & @WorkingDir & '\' & $executable & '" ' & $parameters)
EndIf
Return 0
EndFunc

Func _Abort()
; close process if exists then exit.
Dim $pid
If ProcessExists($pid) Then
ProcessClose($pid)
Exit 2
Else
Exit 3
EndIf
EndFunc

Func _Desktop($shortcut)
; Delete a Desktop shortcut.
Switch $shortcut
Case  '', '?', '?.lnk'
Return 0
EndSwitch
If FileExists(@DesktopDir & '\' & $shortcut) Then
Return FileDelete(@DesktopDir & '\' & $shortcut)
ElseIf FileExists(@DesktopCommonDir & '\' & $shortcut) Then
Return FileDelete(@DesktopCommonDir & '\' & $shortcut)
EndIf
Return 0
EndFunc

Func _Programs($shortcut)
; Change working directory to correct StartMenu\Programs directory.
Dim $group
Local $shortcut_found
If $group = '?' Then Return ''
For $i = 0 To 3
; Search for the location of shortcut
If FileExists(@ProgramsDir & '\' & $group & '\' & $shortcut) Then
If FileChangeDir(@ProgramsDir) Then $shortcut_found = True
DirRemove(@ProgramsCommonDir & '\' & $group)
ElseIf FileExists(@ProgramsCommonDir & '\' & $group & '\' & $shortcut) Then
If FileChangeDir(@ProgramsCommonDir) Then $shortcut_found = True
DirRemove(@ProgramsDir & '\' & $group)
EndIf
Sleep(2000)
If $shortcut_found = True Then Return $shortcut_found
Next
Return ''
EndFunc

Func _QuickLaunch($shortcut)
; Delete a Quicklaunch shortcut.
Switch $shortcut
Case  '', '?', '?.lnk'
Return 0
EndSwitch
Local $subdirs = 'Microsoft\Internet Explorer\Quick Launch'
If FileExists(@AppDataDir & '\' & $subdirs & '\' & $shortcut) Then
Return FileDelete(@AppDataDir & '\' & $subdirs & '\' & $shortcut)
ElseIf FileExists(@AppDataCommonDir & '\' & $subdirs & '\' & $shortcut) Then
Return FileDelete(@AppDataCommonDir & '\' & $subdirs & '\' & $shortcut)
EndIf
Return 0
EndFunc

Func _WinClose($title, $text = '')
; Close a window with further attempts.
For $i = 1 To 10
WinClose($title, $text)
If Not WinExists($title) Then Return True
Sleep(500)
Next
Return ''
EndFunc

Func OnAutoItStart()
; A 2nd script instance will exit.
If StringInStr($CMDLINERAW, '/dummy') Then Exit
If WinExists(@ScriptName & '_Interpreter') Then Exit
AutoItWinSetTitle(@ScriptName & '_Interpreter')
EndFunc

Come potete notare lo script è composta da due parti una creata con Macro Generator e l'altro con Automated WinWait fuctions, come dicevo lo script funziona però all'ultima finesta quando ormai il programma è installato ti chiede di finire e chiudere la finestra o avviare il programma, io decido di chiudere ma poi in automatico non succede e mi tocca chiuderlo a mano poco pratico visto che dovrebbe essere tutto automatizzato. Grazie infinite per un aiuto.

P.S. leggendo tutte le pagine del post ho trovato il link di una guida in italiano di autoit, io sinceramente non riesco a scaricarla mi sapete dire come ?
Grazie ancora.

Offline Mr.X

  • Eng2ita Staff
  • ***
  • Post: 547
  • Karma: 77
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #85 il: 14/06/2012, 22:33 »
Ciao e bentornato,
ho tagliato un po' in qua e là il tuo script ed è venuto fuori qualcosa di funzionante, premetto che per testare ho scaricato il programma da questo link: http://update-progdvb.com/prerelease/ProgDVB6.85.3c.x64.exe ; una volta scaricato l'ho rinominato per comodità in "ProgDVB6_x64.exe".
Ecco lo script:

Codice: [Seleziona]
#RequireAdmin
BlockInput(1) ; blocco ON di tastiera e mouse, in caso di problemi usa la combinazione di tasti Alt X per uscire
Opt("WinTitleMatchMode", 4)
AutoItSetOption("MouseCoordMode", 0)
HotKeySet("!x", "HotExit") ; combinazione di tasti Alt X per uscire
Func HotExit()
Exit
EndFunc   ;==>HotExit
$progdvb6_installer = FileGetShortName(@ScriptDir & "\ProgDVB6_x64.exe") ; all'occorrenza edita questa riga oppure rinomina il file....
Run($progdvb6_installer)
If WinWait("[title:ProgDVB x64 Setup; class:#32770]", "", 10) Then
ControlClick("[title:ProgDVB x64 Setup; class:#32770]", "", "Button2")
WinWait("ProgDVB x64 Setup ", "I &Agree")
ControlClick("ProgDVB x64 Setup ", "I &Agree", "Button2")
WinWait("ProgDVB x64 Setup ", "< &Back") ;
ControlClick("ProgDVB x64 Setup ", "< &Back", "Button2") ;
WinWait("ProgDVB x64 Setup", "Multi-user settings") ;
ControlClick("ProgDVB x64 Setup", "Multi-user settings", "Button2") ;
ControlClick("ProgDVB x64 Setup", "Adjustment of a source of TV", "Button2")
Send("{DOWN 6}")
;~ Send("{TAB 3}") ; per settare HID or Microsoft RC
;~ Send("{DOWN}") ; per settare HID or Microsoft RC
ControlClick("ProgDVB x64 Setup", "Configuration", "Button2") ;
ControlClick("ProgDVB x64 Setup", "Configuration", "Button2") ;
WinWait("ProgDVB x64 Setup", "&Install")
ControlClick("ProgDVB x64 Setup", "&Install", "Button2") ;
WinWait("ProgDVB x64 Setup ", "&Finish")
ControlClick("ProgDVB x64 Setup ", "&Finish", "Button2") ;
FileDelete(@DesktopCommonDir & "\ProgDVB 6.lnk")
FileDelete(@DesktopDir & "\ProgDVB 6.lnk")
Else
Exit
EndIf
BlockInput(0) ; blocco OFF di tastiera e mouse
Exit

Se hai dubbi chiedi pure  :)

Offline Fantoman

  • Newbie
  • *
  • Post: 17
  • Karma: 0
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #86 il: 15/06/2012, 12:47 »
Ciao a tutti

velocissimo nella risposta  :D . Grazie infinite lo provo immediatamente ma nel frattempo ti vorrei chiedere, perchè a me non funzionava ? Normalmente quando si registra una macro con macro generator perche poi non riesco a complilare lo script che funzioni se per caso hai delle guide ( in Italiano) sulla modalità di registrazione delle macro dimmi dove posso scaricarle cosi da poter consultare qualcosa di concreto.
Intanto ancora grazie e ti faccio sapere come è andata.



Aggiornamento: funziona che è na bomba complimenti ..... riuscirò mai a creare qualcosa del genere ?
« Ultima modifica: 15/06/2012, 12:52 da Fantoman »

Offline Mr.X

  • Eng2ita Staff
  • ***
  • Post: 547
  • Karma: 77
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #87 il: 17/06/2012, 16:45 »
Citazione da: Fantoman
perchè a me non funzionava ?
non ti funzionava perchè lo script che hai fornito è davvero pasticciato: in diversi punti non ha senso logico, ci sono funzioni che non vengono chiamate e che non hanno senso nel contesto.
Per imparare ad automatizzare dobbiamo fare largo uso di "Autoit Windows Info"... i tutorial scarseggiano in rete, ho trovato solo questo: http://www.autoitscript.com/autoit3/docs/tutorials/winzip/winzip.htm
Ho provato anch'io a fare qualcosa del genere:
http://www.eng2ita.net/forum/index.php/topic,7855.0.html
Citazione da: Fantoman
Aggiornamento: funziona che è na bomba complimenti
bene, grazie  :)
Citazione da: Fantoman
riuscirò mai a creare qualcosa del genere ?
certamente! E' solo questione di tempo...  ;D

Offline Fantoman

  • Newbie
  • *
  • Post: 17
  • Karma: 0
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #88 il: 17/06/2012, 19:49 »
Ciao a tutti

grazie infinite delle informazioni che cercherò di mettere a frutto al più presto. Arrivederci.

Offline DMD

  • Eng2ita Friends
  • **
  • Post: 475
  • Karma: 45
Re: Sezione Autoit, Discussioni e scambio di idee...
« Risposta #89 il: 11/10/2014, 23:31 »
Come primo approccio ho utilizzato lo strumento "Au3Record" per ottenere il lancio del programma "Logitech Gaming Software" con relativa chiusura della finestra di Impostazione, che si apriva ogni volta che avviava il computer.
Magari lo script è un pò grezzo, ma funziona.

Codice: [Seleziona]
_AU3RecordSetup()
#endregion --- Internal functions Au3Recorder End ---


Run('C:\Program Files\Logitech Gaming Software\LCore.exe')
_WinWaitActivate("Program Manager","")
MouseClick("left",868,779,1)
_WinWaitActivate("Logitech Gaming Software","")
MouseClick("left",413,279,1)
MouseClick("left",411,614,1)
Send("{ALTDOWN}{F4}{ALTUP}")
« Ultima modifica: 11/10/2014, 23:38 da DMD »