Page 1 of 1

Actionaz 2080 - SFX : bug lecture fichiers

Posted: 31 Jan 2010, 18:15
by Guy2g
Bonjour,

Lors de la conversion d'un script fonctionnel en EXE (SFX), le programme ne peut lire des fichiers (alors qu'en ACT, ça fonctionne bien).

Voici l'exemple :

Code: Select all

Actions

000->Fichier : Lire le fichier "{#wdir()}/data/Log.txt" et mettre dans $wFic (Effectue des opérations sur un fichier.)
001->Boîte de dialogue : Afficher "{$wFic}", titre : "Voila !", type : Ok, icône : Exclamation, fermeture dans -1 ms (Affiche un message, peut demander oui ou non.)
... et voici ce qui se passe avec l'EXE :
Image

A toutes fins utiles, notamment pour l'examen éventuel de l'EXE, j'ai tout mis !

Y a t'il une solution ? merci d'avance :)

Re: Actionaz 2080 - SFX : bug lecture fichiers

Posted: 01 Feb 2010, 00:01
by Jmgr
Oui ça ressemble à un problème de dossier de travail, qui n'est peut être pas paramétré si Actionaz est en mode SFX...

Une solution temporaire serait d'écrire le chemin du dossier en dur dans le code, mais bon...

Re: Actionaz 2080 - SFX : bug lecture fichiers

Posted: 01 Feb 2010, 19:15
by Guy2g
Salut,

J'ai un peu regardé les divers paramétrages possibles du SFX de RAR ; il semble qu'il y ait une option d'ouverture de dossier temporaire TEMP invisible pour y exécuter l'EXE, puis effacement de ce répertoire (et de son contenu) une fois l'exécution terminée.

Si cette option a été choisie pour le SFX automatique d'Actionaz (ce qui me parait probable), il devient évident que nulle relation avec des fichiers existants du disque d'accueil n'est alors possible ... d'où échange de données impossible.

L'écriture du chemin en dur n'est pas possible, du fait que l'on ne sait pas où va être utilisé le programme (certaines personnes -dont moi, n'aiment pas mettre des programmes étrangers sur C: ...!).

Je vais chercher des solutions, que je communiquerai si je trouve.
Mais une question : quels sont les éléments (dossiers, DLL, etc) qu'il faut mettre d'office dans le SFX, en plus d'actionaz2.exe ? Et quelle est la commande setup incluse pour faire exécuter le script ?

Merci d'avance.

Re: Actionaz 2080 - SFX : bug lecture fichiers

Posted: 02 Feb 2010, 00:22
by Jmgr
J'ai un peu regardé les divers paramétrages possibles du SFX de RAR ; il semble qu'il y ait une option d'ouverture de dossier temporaire TEMP invisible pour y exécuter l'EXE, puis effacement de ce répertoire (et de son contenu) une fois l'exécution terminée.

Si cette option a été choisie pour le SFX automatique d'Actionaz (ce qui me parait probable), il devient évident que nulle relation avec des fichiers existants du disque d'accueil n'est alors possible ... d'où échange de données impossible.
Hm, bien vu !

J'ai regardé le code qui lance la création d'un script SFX et malheureusement je n'ai pas de moyen direct pour récupérer le dossier où se situe de script SFX car en effet Actionaz est extrait dans un dossier temporaire. Les scripts SFX sont vraiment une partie très buggée d'Actionaz 2...
Mais une question : quels sont les éléments (dossiers, DLL, etc) qu'il faut mettre d'office dans le SFX, en plus d'actionaz2.exe ? Et quelle est la commande setup incluse pour faire exécuter le script ?
Sont inclus :
de
fr
icons
actionaz.ico
images
wxmsw28u_gcc_custom.dll
mingwm10.dll
actionaz2.exe
actionaz2.exe.manifest
mySFXscript.act (le script actuel renommé)

Et voici la commande du setup :
;!@Install@!UTF-8!
RunProgram="actionaz2.exe mySFXscript.act execute,notrayicon,noprogress,noexecutionwindow,exitatend"
Progress="no"
;!@InstallEnd@!

Tu peux trouver le "stub" à cette adresse : http://downloads.sourceforge.net/sevenz ... 5_extra.7z

Re: Actionaz 2080 - SFX : bug lecture fichiers

Posted: 19 Feb 2010, 01:04
by Guy2g
Bonsoir,

Tout d'abord merci pour cette réponse explicite.

J'ai effectué divers essais concluants avec 7z et RAR, il ne faut pas utiliser le dossier TMP par défaut ("C:\Documents and Settings\Administrateur\...etc...\tmp"), mais choisir un dossier (syntaxe .\.) dans lequel l'exec va s'exécuter, et où il lui sera facile de reconnaitre son environnement (sous-dossiers connus).
L'inconvénient est qu'il n'y a pas d'effacement automatique des fichiers et dossiers inutiles en fin de programme, mais ça se pallie aisément en rajoutant quelques lignes adaptées en fin de script. Le script d'actionaz peut même s'auto-effacer dès son lancement !

Si je trouve le temps, je tâcherai de donner des explications complètes sur ces méthodes.