begin process at 2012 02 07 10:42:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > GÉNÉRATEUR D'AUTORUN

GÉNÉRATEUR D'AUTORUN


 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.


 Sources de la même categorie

Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel
Source avec Zip COPIE DE FICHIERS PAR RESEAU LOCAL par cczerty

Commentaires et avis

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.

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

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 ...

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... ;-)

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;
}

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

devrait aller mieux ainsi.

Commentaire de zoute06 le 01/01/2005 23:24:06

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

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...

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

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.

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.

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.

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.

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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales