Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GÉNÉRATEUR D'AUTORUN


Information sur la source

Description

Vous entrez le nom et le type de fichier à ouvrir ainsi que l'icône du CD et le logiciel génere le fichier inf et éventuellement le bat pour un autorun.
 

Source

  • #include <stdio.h>
  • #define LNG 50
  • int main(int argc, char *argv[])
  • {
  • //variables
  • char nom[LNG], icon[LNG] ;
  • int n ;
  • FILE * run ;
  • //dialogue homme/machine
  • printf("*** Programme de création d'un autorun ***\n") ;
  • printf("Nom du fichier à executer (avec son extention : .exe, .html ...) : ") ;
  • scanf("%s", &nom) ;
  • printf("fichier .exe/.bat tapez 1, sinon tapez 2 : ") ;
  • scanf("%d", &n) ;
  • printf("Nom de l'icone du CD (nom.ico) : ") ;
  • scanf("%s", &icon) ;
  • //création et écriture fichier inf
  • run = fopen("autorun.inf", "a+") ;
  • fputs("[autorun]\n", run) ;
  • fputs("open=", run) ;
  • if (n==1) fputs(nom, run) ;
  • if (n==2) fputs("ouverture.bat", run) ;
  • fputs("\n", run) ;
  • fputs("icon=", run) ;
  • fputs(icon, run) ;
  • fclose(run) ;
  • //création et écriture éventuelle fichier bat
  • if (n==2)
  • {
  • run = fopen("ouverture.bat", "a+") ;
  • fputs("@echo off\n", run) ;
  • fputs("start ", run) ;
  • fputs(nom, run) ;
  • fclose(run) ;
  • }
  • return 0;
  • }
#include <stdio.h>
#define LNG 50

int main(int argc, char *argv[])
{
  //variables
  char nom[LNG], icon[LNG] ;
  int n ;
  FILE * run ;

  //dialogue homme/machine
  printf("*** Programme de création d'un autorun ***\n") ;
  printf("Nom du fichier à executer (avec son extention : .exe, .html ...) : ") ;
  scanf("%s", &nom) ;
  printf("fichier .exe/.bat tapez 1, sinon tapez 2 : ") ;
  scanf("%d", &n) ;
  printf("Nom de l'icone du CD  (nom.ico) : ") ;
  scanf("%s", &icon) ;

  //création et écriture fichier inf
  run = fopen("autorun.inf", "a+") ;
  fputs("[autorun]\n", run) ;
  fputs("open=", run) ;
  if (n==1) fputs(nom, run) ;
  if (n==2) fputs("ouverture.bat", run) ;
  fputs("\n", run) ;
  fputs("icon=", run) ;
  fputs(icon, run) ;
  fclose(run) ;

  //création et écriture éventuelle fichier bat
  if (n==2)
  {
   run = fopen("ouverture.bat", "a+") ;
   fputs("@echo off\n", run) ;
   fputs("start ", run) ;
   fputs(nom, run) ;
   fclose(run) ;
  }


  return 0;
}

Conclusion

Ce n'est qu'une ébauche bien sur, il faudrait peut-être améliorer la présentation, mais ça peut toujours servir.
 

Commentaires et avis

signaler à un administrateur
Commentaire de Light Angel le 01/01/2005 22:30:51

Tu t'enmerde la, fait comme sa :

#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    char *pFile = new char;
    char *pIcon = new char;
    cout << "***Générateur d'Autorun***\n\n";
    cout << "Fichier à executer : ";
    cin << pFile;
    cout << "Icone du CD : ";
    cin << pIcon;
    cout << "\nGeneration du fichier en cour ...\n";
    WritePrivateProfileString("Autorun", "open", pFile, "Autorun.inf");
    WritePrivateProfileString("Autorun", "icon", pIcon, "Autorun.inf");
    delete pFile;
    delete pIcon;
    return 0;
}

Vala, utilise les API Windows, c'est fait pour sa, surtout que la, il ne peut pas y avoir de problème de portabilité, paske des autorun ss Linux avec un .inf, j'en est pas vu des masse.

signaler à un administrateur
Commentaire de Xs le 01/01/2005 22:36:58

Light Angel >
"char *pFile = new char;
char *pIcon = new char;"

Je suis pas convaincu que ton code fonctionne :D

cordialement

signaler à un administrateur
Commentaire de Light Angel le 01/01/2005 22:44:04

perso, je voi pas ou est le problème dans ce bout de code. Sa s'appel allouer de l'espace mémoire ...

signaler à un administrateur
Commentaire de Gendal67 le 01/01/2005 22:44:11

Oui, clair, il pourrait être judicieux de donner à la chaine pFile et pIcon, une +grande capacité je crois... ;-)

signaler à un administrateur
Commentaire de Light Angel le 01/01/2005 22:48:32

Bon, pour vous faire plaisir :

#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    char pFile[255];
    char pIcon[255];
    cout << "***Générateur d'Autorun***\n\n";
    cout << "Fichier à executer : ";
    cin >> pFile;
    cout << "Icone du CD : ";
    cin >> pIcon;
    cout << "\nGeneration du fichier en cour ...\n";
    WritePrivateProfileString("Autorun", "open", pFile, "Autorun.inf");
    WritePrivateProfileString("Autorun", "icon", pIcon, "Autorun.inf");
    return 0;
}

signaler à un administrateur
Commentaire de BruNews le 01/01/2005 23:17:26 administrateur CS

devrait aller mieux ainsi.

signaler à un administrateur
Commentaire de zoute06 le 01/01/2005 23:24:06

A part que mon code cé du C pas du C++...

signaler à un administrateur
Commentaire de vecchio56 le 01/01/2005 23:44:32 administrateur CS

Celui de Light Angel c'est du C et du C++ mélangé, comme ca on est tranquille...

signaler à un administrateur
Commentaire de Dante41 le 02/01/2005 12:53:35

Plutot que de générer un autorun ne lancant que des exe, il aurait été interessant que ce programme génère des autoruns lancant de tout (des html, bmp, wav par exemple). Pour cela, ton générateur aurait pu créer un fichier executable appelé par autorun.inf, ce fichier executable aurait lancer ce fichier.
Il est clair que c'est compliqué de créer un executable mais bon...

Sinon ce programme est quand meme assez utile et bien réalisé.

Bon code

signaler à un administrateur
Commentaire de Nerolph le 05/01/2005 13:44:09

Pour faire un Autorun qui lance de tout c'est facile :

[AutoRun]
Open=explorer mon.fichier
Icon=mon_icone.ico

À condition, bien sûr, que le fichier `mon.fichier' soit associé à un programme.
Et le programme C que nous a fait zoute06 se compile et se lance très bien sous Linux.

signaler à un administrateur
Commentaire de Ombitious_Developper le 08/01/2005 14:24:38

Salut:

Une Remarque  je veux évoquer .Votre programme ne peut que lancer  des programmes (*exe, *.com, *.bat , *.pif). Comment faire pour lancer un fichier *.TXT ou un fichier *.HTML.

Bonne Chance.

signaler à un administrateur
Commentaire de BruNews le 08/01/2005 14:37:48 administrateur CS

Fais un dossier dans lequel tu as ShelExec.exe, sera juste un exe faisant un appel ShellExecute() sur ce qu'il aura en ligne de commande.

Dans le Autorun.inf tu mets par exemple:
[autorun]
OPEN=Autorun\ShelExec default.htm

voila comment c'est fait sur disk VS 2003.

signaler à un administrateur
Commentaire de jfrancois le 26/08/2005 03:16:01

Pour lancer n'importe quel type de fichier, il suffit tout simplement de remplacer "open" (uniquement pour *.exe *.com *.bat *.pif) par "shellexecute" et Windows lancera le type de programme associé à l'extension du fichier !

Exemple :

[autorun]
icon=mon_icon.ico
shellexecute=page_web.htm
label=CD de démonstration

et Windows lancera l'application associée aux fichiers *.htm

ou
shellexecute=lisez-moi.txt

et Windows lancera l'application associée aux fichiers *.txt

ou
shellexecute=lisez-moi.doc

et Windows lancera l'application associée aux fichiers *.doc

...

"label=" permet de changer le texte qui apparaît dans l'explorateur au niveau du lecteur de CD.

signaler à un administrateur
Commentaire de ifebo le 26/02/2006 04:30:56

Bonjour, j'ai juste un problème que je n'imaginais même pas rencontrer. La page index.html de mon cd s'ouvre sans problème. Mais j'ai voulu créer un lien sur cette page qui permette l'exploration du CD ROM et je n'ai pas réussi à trouver la bonne syntaxe. Il faut tenir compte du fait que la lettre attribuée au lecteur peut varier d'un pc à un autre. quel est donc le code par défaut de ce lien qui ouvrirait le CD sans l'exécuter ? Merci de votre aide. Je suis certain que c'est tout simple, mais là je dois faire une sorte d'autisme sur le sujet ! A moins que ma machine ne fasse des siennes ? J'arrive parfaitement à lui faire ouvrir n'importe quel dossier du CD, mais pas le CD lui-même, comme lorsque l'on fait clic droit sur le CD et ouvrir.
PS : ma page index.html est à la racine du CD.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.