Menù Principale

Cerca
Login
Registrati
Link
<< Discussione precedente | Discussione successiva >>   
Mancato funzionamento opzioni Launcher su dir e registro ( colpa mia! )

Vai a pagina       >>  
Autore Messaggio
ed_711
ven 19 ago 2011 - 10:27
online
Utente registrato #39789
Registrato il: ven 01 apr 2011 - 17:30
Messaggi: 50

Ecco, qui la cosa per me si fa molto oscura:
non riesco a far funzionare alcuna opzione:

[Setup]
AppName=ProcessLasso

[FileToRun]
PathToExe=$Bin$\$AppName$\_Start-ProcessLasso.bat

[Environment]
Registry=$Home$\$AppName$\Registry
Settings=$Home$\$AppName$\Settings

[Functions]
DirCreate=%Settings%|%Registry%
DirMove=%Settings%|@AppDataDir@\ProcessLasso

[RunBefore]
DirMove=%Settings%|@AppDataDir@\ProcessLasso
RegEdit=%Registry%\CU.reg;LM.reg

[WriteToReg=%Registry%\CU.reg]
MainKey=HKEY_CURRENT_USER\Software\ProcessLasso

[WriteToReg=%Registry%\LM.reg]
MainKey=HKEY_LOCAL_MACHINE\SOFTWARE\ProcessLasso

[RunAfter]
DirMove=@AppDataDir@\ProcessLasso|%Settings%( |o non serve a nulla! )
;aggiunto in itinere
DirRemove=@AppDataDir@\ProcessLasso

[Options]
DeleteTemp=true
RunWait=true
ShowSplash=true
WriteLog=false
MultipleIstances=false

10:49

Edit:
Perdonate la mia dabbenaggine ( dal tempo che ci provo! ): era il file di .bat che mi fregava:
basta edittare in

[FileToRun]
PathToExe=$Bin$\$AppName$\ProcessLasso.exe
PathToExe=$Bin$\$AppName$\ProcessGovernor.exe

e l' app è anche invisibile oltre che portatile!

[ Modificato ven 19 ago 2011 - 14:09 ]
Torna ad inizio pagina
zandet2
ven 19 ago 2011 - 10:57

online

Utente registrato #3184
Registrato il: mar 06 mar 2007 - 11:52
Provenienza: Busto Arsizio
Messaggi: 3301
ed_711 ha scritto ...

Ecco, qui la cosa per me si fa molto oscura:
non riesco a far funzionare alcuna opzione:


Ciao ed_711,
innanzitutto analizziamo logicamente le cose:

non è molto corretto che venga spostata la cartella dei settaggi da Home a Appdata, in quanto se per qualunque motivo il launcher si interrompe hai perso i dati della versione portabile; va quindi prevista una copia dei settaggi.
Va poi tenuto presente che sul pc possa essere presente una versione installata, e quindi con la tua operazione cancelleresti i settaggi presenti: va quindi predisposto un backup preventivo, con successivo ripristino alla chiusura del programma.

Ecco quindi che

[Functions]
DirCreate=%Settings%|%Registry%
DirMove=%Settings%|@AppDataDir@\ProcessLasso


dovrebbe diventare


[Functions]
DirCreate=%settings%|%registry%
DirCopy=@AppDataDir@\ProcessLasso|@AppDataDir@\ProcessLasso_backup|o
DirRemove=@AppDataDir@\ProcessLasso
DirCopy=%Settings%|@AppDataDir@\ProcessLasso|o


Attenzione al parametro "|o", assente nella tua versione: è quello che fa la differenza, vuol dire "overwrite", sovrascrivi se i dati sono già presenti; in assenza, i dati vengono spostati (o copiati) solo se non sono già presenti nella cartella di destinazione.

Stessa cosa alla chiusura:

[RunAfter]
DirMove=@AppDataDir@\ProcessLasso|%Settings%|o


dovrebbe diventare

[RunAfter]
DirCopy=@AppDataDir@\ProcessLasso|%settings%|o
DirRemove=@AppDataDir@\ProcessLasso
DirCopy=@AppDataDir@\ProcessLasso_backup|@AppDataDir@\ProcessLasso|o
DirRemove=@AppDataDir@\ProcessLasso_backup



Infine, da

[RunBefore]
DirMove=%Settings%|@AppDataDir@\ProcessLasso
RegEdit=%Registry%\CU.reg;LM.reg


va tolta DirMove, in quanto già sviluppata in [Functions], e quindi rimane:


[RunBefore]
RegEdit=%Registry%\CU.reg;LM.reg


Se poi sono presenti percorsi da normalizzare, nei file di configurazione o nei dati di registro, vanno implementate le istruzioni di StringReplace / StringRegExpReplace per ricondurli alla struttura portabile; stessa cosa con eventuali parametri che intaccherebbero la portabilità.

Per il momento, ecco il tuo ini rimaneggiato :


Ciao!


Torna ad inizio pagina
ed_711
ven 19 ago 2011 - 13:54
online
Utente registrato #39789
Registrato il: ven 01 apr 2011 - 17:30
Messaggi: 50
Non ho mai capito cosa e dove backuppa dato che non c'è alcuna cartella di backup e dato che in Environment non è specificato nulla. Poi giustamente come affermi tu il parametro |o a me non serve dato che l' obiettivo era quello di rendere l' app portatile, cioè di spostare le cartelle. Ancora oscuro il discorso del soft installato, ma ci arriverò ( forse ). Poi una cosa non ho capito, e che adesso che ho risolto mi sembra assurda: come fai a far girare l' app col file di .bat ? Il launcher fa girare il .bat dal prompt che fa partire i due .exe e in chiusura ? Va beh, che i miracoli non li fa più nessuno, per cui ...
Sono molto orgoglione degli errori atroci che commetto ( per uno che sa ), perchè riesco a correggerli e a raggiungere l' obiettivo.

[ Modificato ven 19 ago 2011 - 14:12 ]
Torna ad inizio pagina
zandet2
ven 19 ago 2011 - 14:49

online

Utente registrato #3184
Registrato il: mar 06 mar 2007 - 11:52
Provenienza: Busto Arsizio
Messaggi: 3301
ed_711 ha scritto ...

Non ho mai capito cosa e dove backuppa dato che non c'è alcuna cartella di backup e dato che in Environment non è specificato nulla. Poi giustamente come affermi tu il parametro |o a me non serve dato che l' obiettivo era quello di rendere l' app portatile, cioè di spostare le cartelle. Ancora oscuro il discorso del soft installato, ma ci arriverò ( forse ). Poi una cosa non ho capito, e che adesso che ho risolto mi sembra assurda: come fai a far girare l' app col file di .bat ? Il launcher fa girare il .bat dal prompt che fa partire i due .exe e in chiusura ? Va beh, che i miracoli non li fa più nessuno, per cui ...
Sono molto orgoglione degli errori atroci che commetto ( per uno che sa ), perchè riesco a correggerli e a raggiungere l' obiettivo.


Il mio post è stato scritto prima del tuo edit, avendo come riferimento la versione con .bat.
Attenzione che la tua modifica non funziona, il launcher non esegue due programmi ma uno solo: quindi in PathToExe devi prevedere ProcessLasso.exe o ProcessGovernor.exe.
La domanda è: qual è il processo principale e quale il secondario? quale deve essere già presente in memoria prima di lanciare l'altro? Non è cosa da poco....

Il backup di una eventuale cartella già presente è effettuato nella stessa directory AppData, rinominandola come xxxxxx_backup; sul fatto che non ti serva il parametro "|o" avrei da dubitare, come ti ho scritto senza questo i dati non vengono copiati se già presenti.
Rendere portabile un'applicazione non vuol dire "spostare cartelle", vuol dire eseguire un applicazione senza lasciare tracce sul pc ospite, e lasciando l'ambiente così come era prima del nostro arrivo: altrimenti si fa come Attila l'unno, si brasa tutto e non cresce più l'erba...
Torna ad inizio pagina
ed_711
ven 19 ago 2011 - 16:08
online
Utente registrato #39789
Registrato il: ven 01 apr 2011 - 17:30
Messaggi: 50
Sono completamente d' accordo con te sul fatto delle tracce; io mi riferisco in particolare a Temp dove qualcosina generalmente rimane, ma non in questo caso; tornando al tuo discorso ti posto il bat di default che evidentemente non va usato:

START ProcessGovernor.exe "/logfolder=." "/configfolder=."
START ProcessLasso.exe "/logfolder=." "/configfolder=."

A mio avviso i parametri non servono a nulla, ma io punto allo stetto inevitabile ai fini dell' invisibilità; il Governor è "il motore" di ProcessLasso per cui non sono due eseguibili separati; già da quando armeggiavo con le prime beta portatili scompattavo quella specie di launcher ( uno zip che andava a scompattarsi in Temp, facendo più danni in termini di CPU che non migliorie; ma di questi ce ne sono tanti ) che avevano e facevo partire ProcessLasso; subito mi diceva che il "Core Engine" non era in funzione e di attivarlo, per cui, adesso se vuoi provarlo, magari sandboxato, noterai che funziona perfettamente ed in uscita è completamente invisibile, com' è giusto che sia del resto.
Inoltre, incredibile ma vero, adesso c' è solo un brevissimo picco di CPU al lancio del Launcher e poi va tutto liscio anche oltre la chiusura ( quando il Launcher sposta e cancella ).

E poi guarda, oggi sono talmente orgoglione, che ti posto la foto della creatura:
-Link-

Edit: hai ragione, mi è andata doppiamente bene: il principale è ProcessLasso, che fortunatamente dopo 31 aggiornamenti fa partire anche il motore: Doppiamente Orgoglione!
Edit:
;PathToExe=$Bin$\$AppName$\ProcessGovernor.exe
;come vedi è sempre work in progress, intuizioni e botte di chiappa:
;il bello della Ricerca!

Piuttosto vorrei maggiori istruzioni su come esportare la configurazione, dato che in uscita mi dice che stoppando il motore ( secondo processo ) perdo le personalizzazioni.

[ Modificato ven 19 ago 2011 - 17:06 ]
Torna ad inizio pagina
zandet2
ven 19 ago 2011 - 17:23

online

Utente registrato #3184
Registrato il: mar 06 mar 2007 - 11:52
Provenienza: Busto Arsizio
Messaggi: 3301
Confesso che non conosco assolutamente il software, per cui avrei difficoltà a darti supporto strettamente tecnico solo in via "teorica".
A naso direi che i due parametri "/logfolder=." "/configfolder=.", inseriti con quel formato, servono per far scrivere il log e i dati di configurazione nella cartella stessa dell'eseguibile.
Torna ad inizio pagina
ed_711
ven 19 ago 2011 - 17:52
online
Utente registrato #39789
Registrato il: ven 01 apr 2011 - 17:30
Messaggi: 50
Bene, il soft è qui, ma magari tu usi Linux o hai un Centrino da 4; comunque:
-Link- ( portable )
L' eliminazione dei parametri del bat e del bat non fa che spostare il file di log da Bin/PL in U/PL/Settings, per cui ...
Riguardo il backup le cose non mi tornano: se volessi impostare una priorità maggiore o nimore a uno dei tanti portatili che ho ( cosa che fa già in automatico grazie al "ProBalance" e che non sarebbe fattibile dal task manager di default, in quanto privo di memoria storica, specialmente per i portatili ) e uscire dall' applicazione, escludendo crash del Launcher e identici software installati, come dovrei impostare le opzioni di backup ( fatto salvo il fatto che l'unico ini che conta sia quello che c'è in AppData? ) ?
Io non ho capito:
[Functions]
DirCopy=@AppDataDir@\ProcessLasso|@AppDataDir@\ProcessLasso_backup|o
che ( credo ) è sia il centro della questione.

In breve, a quanto ho capito finora, risolvo la questione semplicemente spostando le dir; ad un nuovo avvio del programma dovrei avere ancora tutte le mie personalizzazioni, in quanto uscendo ha spostato la dir in User\PL\Settings e riavviandosi il Launcher le rimette in AppData\PL


[ Modificato ven 19 ago 2011 - 18:05 ]
Torna ad inizio pagina
zandet2
ven 19 ago 2011 - 19:04

online

Utente registrato #3184
Registrato il: mar 06 mar 2007 - 11:52
Provenienza: Busto Arsizio
Messaggi: 3301
ed_711 ha scritto ...

Io non ho capito:
[Functions]
DirCopy=@AppDataDir@\ProcessLasso|@AppDataDir@\ProcessLasso_backup|o
che ( credo ) è sia il centro della questione.

In breve, a quanto ho capito finora, risolvo la questione semplicemente spostando le dir; ad un nuovo avvio del programma dovrei avere ancora tutte le mie personalizzazioni, in quanto uscendo ha spostato la dir in User\PL\Settings e riavviandosi il Launcher le rimette in AppData\PL



Esatto.
Parti dal presupposto di avere il software su usb, e di usarlo su un computer che non è il tuo, dove potrebbe essere già presente lo stesso software in versione installata: lo scopo della portabilizzazione è proprio quello di permetterti di utilizzare il tuo software da usb con le tue configurazioni, preservando allo stesso tempo quanto già presente sul computer.
Si rende necessario quindi effettuare il backup e il ripristino dei settaggi all'avvio e alla chiusura del programma (vedi Functions e RunAfter), esportazione e ripristino delle chiavi di registro (RegEdit in RunBefore, il ripristino è automatico).

Perciò ecco la sequenza:
- Operazioni preliminari - [Functions]
1) backup - rinomino la cartella già esistente
DirCopy=@AppDataDir@\ProcessLasso|@AppDataDir@\ProcessLasso_backup|o
DirRemove=@AppDataDir@\ProcessLasso
nota: è meglio effettuare prima la copia e poi la rimozione, è più sicuro in caso di possibili malfunzionamenti

2) predispongo le configurazioni da usb
DirCopy=%Settings%|@AppDataDir@\ProcessLasso|o

Operazioni finali - [RunAfter]
1) salvo i miei settaggi su usb
DirCopy=@AppDataDir@\ProcessLasso|%settings%|o
DirRemove=@AppDataDir@\ProcessLasso

2) ripristino i settaggi originali
DirCopy=@AppDataDir@\ProcessLasso_backup|@AppDataDir@\ProcessLasso|o
DirRemove=@AppDataDir@\ProcessLasso_backup

L'operazione di RegEdit in [RunBefore] esegue la stessa cosa con le voci di registro:
inserisce nel registro quanto presente nei file .reg presenti su usb, effettuando in automatico il backup delle voci già esistenti; alla chiusura esporta le voci nei file su usb e ripristina le voci precedenti. La direttiva WriteToReg serve per indicare su quali voci di registro lavorare.

Spero di averti chiarito la logica di quelle operazioni.


Torna ad inizio pagina
ed_711
ven 19 ago 2011 - 19:50
online
Utente registrato #39789
Registrato il: ven 01 apr 2011 - 17:30
Messaggi: 50
Temo di aver capito: @AppDataDir@\ProcessLasso_backup è una cartella "Dummy" che è in essere solo finchè: non si copiano le impostazioni degli installati, rinominandole; non si eliminano, sovrascrivendole; non si impostano le impo dei portatili; non si eliminano in uscita; non si ripristinano le impostazioni degli installati; neanche fossi Pico dellla Mirandola! Alla faccia della sandbox! Forse tra un ventennio ci arrivavo! Forse! Non credevo fosse così complesso partire da usb: bruscolini per te immagino. Il fatto è che io uso C:\ come un disco portatile, quindi, mi limito ad una più "semplice" pulizia del registro e delle cartelle; ma evidentemente sono anni luce indietro!
Comunque:
stavo provando i vari settaggi della "creatura" e ho scoperto che mi ha fatto regalini inattesi in @AppDataCommonDir@ e in @AppDataDir@ non appena ho variato i parametri di default.
Eh ... , lui fa i suoi bisogni, sono io che non sono preparato: ( Vabbeh che se un figura la faccio io, conta nulla ( il bello della Ricerca! ), ma se la fa uno che conta ... ( come da illustri precedenti ) ( oltremare s' intende! di là dalla Manica ! ) ( Eh, insomma a me
TJ sta qua, non ci posso fare niente! ) ).
( ( Per la cronaca il software in questione è un task manager avanzatissimo che grazie al suo motore intercetta i processi che eccedono nell' utilizzo della CPU ( generalmente in avvio ) e li ridimensiona automaticamente. Ovviamente con un Centrino da 4 non serve ) .
A questo proposito vorrei chiederti consiglio per rendere la "creatura" portatile oltre che da usb anche da C:\ con tutti le varie opzioni, se possibile, e capire perchè, mutato lo scenario, ( i parametri ), mi lascia i regalini in giro ( prima che mi brucino al rogo come eretico ! ). Questo forse è un po' troppo. ).
Una cosa ancora non mi torna del tuo ultimo post: se non ho il software installato non sarebbe superfluo il parametro |o dato che uso solo DirMove?

[ Modificato sab 20 ago 2011 - 10:31 ]
Torna ad inizio pagina
ed_711
sab 20 ago 2011 - 13:08
online
Utente registrato #39789
Registrato il: ven 01 apr 2011 - 17:30
Messaggi: 50
Ah, peccato, il Launcher sposta Settings solo a volte!
Credo che il problema sia nei file di registro dove c' è il percorso dell' ini del software che punta a Dati Applicazioni.
Comunque grazie per il supporto e gli illuminanti esempi.

[ Modificato sab 20 ago 2011 - 13:16 ]
Torna ad inizio pagina

Vai a pagina       >>  
Moderatori: Danix, Taf, Rcs, Energy, zandet2, ZioZione, Admin, LordJim60

Salta:     Torna ad inizio pagina

RSS discussione: rss 0.92 RSS discussione: rss 2.0 RSS discussione: RDF
Powered by e107 Forum System