Programmation d'un automate dev37

Description

C'est un langage de programmation que j'ai créée et nommé Dev37.
Il sert a crééer un automate qui execute des fonctions basics.
Sa fonction la plus importante est le fait qu'il peut implémenter
autant de fichiers (.exe, .txt, .dll ect..) qu'il faut ds l'automate compilé et de les extraires ensuite.

Pour plus d'explications sur la compilation, l'exe contient l'editeur ( la ou vous tapez votre programme ) avec la gestion des erreures, a mise en couleurs des mots clés ect... et il contient aussi la version compilé (que vous ne voyez pas ).
Lors de la compilation je procede comme suite:
1 : J'extrait l'exe compilé
2 : J'insere la liste des noms de fichier insérés et leur taille
3 : Je copie en binaire tout les fichiers insérés ds l'executable
4 : je copie le programme que vous avez ecris dans ce mm executable
Voila l'automate est prêt.

Fonctions :
Dev37's HandBook
By Greg, DDevilNeverCry@aol.com
(c)Neo Umbrella Corp. 2004

Fonctions Obligatoires :
------------------------
=> debut.instant
Execute le programme lors du lancement de l'application.
/!\ Attention : Si debut.instant est utilisé, il est impossible d'utilise les 2 autres
fonctions de debut. Inversement, si debut.heure ou debut.date est utilisé,
il est impossible d'utiliser debut.instant.

=> debut.heure=X:Y:Z
Execute le programme a l'heure définie.
exemple : debut.heure=11:45:00
/!\ Cette fonction peut être utilisée en parallèle avec la fonction debut.date.

=> debut.date=X:Y:Z
Execute le programme le jour prévu.
exemple : debut.heure=22/10/2004
/!\ Cette fonction peut être utilisée en parallèle avec la fonction debut.heure.

=> mode.(visible ou invisible)
Définie si l'application est visible ou non.

=> autostart=(vrai ou faux)
Determine si une clé doit être créée dans la base de registre pour relancer
l'exécutable à chaque reboot du pc.


Fonctions Basic :
-----------------
=> pause X
Faire une pause dans le programme de X milli-secondes.
exemple : pause 3000 (Pour une pause de 3 secondes)

=> file.execute (Path\Fichier Cible)
Lancer un executable ou un fichier.
exemples : file.execute "c:\Projet.exe"
file.execute "c:\Photo1.jpg"

=> file.copie (Path\Fichier Source) vers (Path Destination)
Copier un fichier dans un dossier.
exemple : file.copie "c:\Projet.exe" vers "c:\Mes Documents\"

=> file.deplace (Path\Fichier Source) vers (Path Destination)
Deplacer un fichier vers un dossier.
exemple : file.deplace "c:\Projet.exe" vers "c:\Mes Documents\"

=> file.renome (Path\Fichier Source) En (Nouveau Nom De Fichier)
Renomer un fichier
exemple : file.renome "c:\Projet.exe" en "Monprojet.exe"

=> file.supprime (Path\Fichier Cible)
Supprimer un fichier.
exemple : file.supprime "c:\Projet.exe"
/!\ Attention : Pour supprimer un executable en cours d'utilisation,
il faut en premier killer son processus.

=> file.cache (Path\Fichier Cible)
Change l'attribut du fichier désigné sur fichier caché.
exemple : file.cache "c:\Doc1.txt"

=> file.normal (Path\Fichier Cible)
Change l'attribut du fichier désigné sur fichier normal.
exemple : file.normal "c:\Doc1.txt"

=> file.lecture-seule (Path\Fichier Cible)
Change l'attribut du fichier désigné sur fichier en lecture seule.
exemple : file.lecture-seule "c:\Doc1.txt"

=> winmessage (titre, message, type)
Faire apparaître un messsage windows.
exemple : winmessage "Bienvenue","Nous sommes le vendredi 23 octobre 2004",information
/!\ Type de messages : information,
question,
exclamation,
critique,
standard.

=> reg.ecris (Path Registre\Clé), (Path\Fichier Cible)
Ecris une clée dans la base de registre
exemple : reg.ecris "HKEY_CURRENT_USER\software\Projet","c:\Projet.exe"

=> reg.supprime (Path Registre\Clé)
Supprime une clée dans la base de registre
exemple : reg.ecris "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\Projet"

Fonctions Internes :
--------------------
=> =>ligne X
Saute à la ligne X du programme et continue la lecture depuis celle ci.
exemple : =>ligne 15
(Saute a la ligne 15 du programme et continue en
lisant la ligne 16,17,...)

=> #fin
Termine l'application mème si il reste du code après.

Fonctions Binaires :
--------------------
=> extrait (Nom Objet) vers (Path Destination)
Extrait un fichier, inséré auparavant, dans le dossier spécifié.

Fonctions Facultatives :
------------------------
=> active.debogage
Signale les erreures lors de l'execution du programme compilé.

=> active.rapport
Crée un fichier txt et inscrit toutes les opérations effectuées et les erreures eventuelles.

Gestion Des Erreures :
----------------------
=> erreure=>>fin
Termine l'application si il y'a une erreure lors de la lecture du programme compilé.

=> erreure=>>continue
Continue l'application si il y'a une erreure lors de la lecture du programme compilé.

=> erreure=>>ligne X
Saute a la ligne X et continue la lecture depuis celle-ci si il y'a une erreure lors
de la lecture du programme compilé.

/!\ Si aucune gestion d'erreure n'est en mémoire lors d'une erreure, le programme choisira
'erreure=>continue' comme valeure par défault.

Constantes :
------------
=> exe-path
Contient le path ou est executé l'application
/!\Attention : exe-path ne se termine pas par \ donc penser a le rajouter
si vous vous servez de cette expression pour un path de destination ou autre.
exemple : copie "c:\test.txt" vers exe-path & "\"
(Copie le fichier test.txt dans le repertoire ou est executé l'application)

Source / Exemple :


Dans le zip.

N'essayez surtout pas de recompiler le code avec vb6 et d'ensuite de  compiler un projet Dev37 car vous n'avez pas l'exe compilé.

L'exe mis dans ce zip marche très bien tel qu'il est.
Si vous voulez le modifier prévenez moi.

Conclusion :


Je pense pas qu'il n y'ai de bugs ou si il y'en a pévenez moi et je corrigerais ca le plus vite possible.
2 fonctions n'ont pas étés faites ( celles pour ecrire ds la base de registre )

Merci a NoMitsu pour son ocx (coloration syntaxique) très bien fait.

Voila voila, j'espere que ca servira.

Greg

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.