Provoquer l'ouverture d'un fichier ac un .exe
Pierro
-
tupierro -
tupierro -
Bonjour,
Je cherche à créer un exe qui lorsque je le lance m'ouvre un autre fichier qui lui n'est pas un exe.
Tout le monde va me dire pourquoi tu fais pas un .bat, et ba parceque j'ai besoin d'un .exe pour pouvoir l'utiliser dans un autre logiciel (instalVise)
J'ai comemncé par créé un .bat
le fichier texte contient :
Le fichier fonctionne très bien.
Le problème arrive quand je le compile avec powerbatch en .com là le fichier ne fonctionne plus. pas la peine de vous dire que le .com convertit en .exe ne fonctionne pas non plus...
Vous auriez pas un ptit conseil ?
Je cherche à créer un exe qui lorsque je le lance m'ouvre un autre fichier qui lui n'est pas un exe.
Tout le monde va me dire pourquoi tu fais pas un .bat, et ba parceque j'ai besoin d'un .exe pour pouvoir l'utiliser dans un autre logiciel (instalVise)
J'ai comemncé par créé un .bat
le fichier texte contient :
@ECHO OFF ActivePerl.msi
Le fichier fonctionne très bien.
Le problème arrive quand je le compile avec powerbatch en .com là le fichier ne fonctionne plus. pas la peine de vous dire que le .com convertit en .exe ne fonctionne pas non plus...
Vous auriez pas un ptit conseil ?
A voir également:
- Provoquer l'ouverture d'un fichier ac un .exe
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Creer un fichier .bat - Guide
10 réponses
Euh juste pour éviter une erreur de noob
J'ai ajouté un test à l'ouverture du fichier :
Ca permet au moins de créer le fichier texte, si celui-ci est perdu...
J'ai ajouté un test à l'ouverture du fichier :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE_BUFFER 4096
int main()
{
char buffer[SIZE_BUFFER];
char temp[SIZE_BUFFER];
char next_car;
FILE *fp;
fp = fopen("liste_msi.txt", "r");
if ( !fp )
{
fp = fopen("liste_msi.txt", "w");
fclose(fp);
return 0;
}
while( !feof(fp) )
{
memset(buffer, 0, SIZE_BUFFER);
fscanf(fp, "%s", buffer);
fscanf(fp, "%c", &next_car);
while( !feof(fp) && next_car != '\n' )
{
memset(temp, 0, SIZE_BUFFER);
fscanf(fp, "%s", temp);
strcat(buffer, " ");
strcat(buffer, temp);
fscanf(fp, "%c", &next_car);
}
if ( strcmp(buffer, "") != 0 )
{
system(buffer);
system("PAUSE");
}
}
fclose(fp);
return 0;
}
Ca permet au moins de créer le fichier texte, si celui-ci est perdu...
Salut Pierro
Pourquoi ne pas faire un simple programme C ?
du style :
fichier test.c :
Tu compiles et tu l'appelles ainsi :
test.exe path_du_fichier_à_lancer
Je me suis pas amuser à le tester mais en même temps je dois pas être loin de la vérité...
Pourquoi ne pas faire un simple programme C ?
du style :
fichier test.c :
int main(int argc, char **argv)
{
if ( argc != 1 )
return 1;
SYSTEM(argv[0])
return 0;
}
Tu compiles et tu l'appelles ainsi :
test.exe path_du_fichier_à_lancer
Je me suis pas amuser à le tester mais en même temps je dois pas être loin de la vérité...
euhh en fait je n'ai absolument aucune conaissance en programmation autre que le html...donc bon
Le bat que j'ai programmé c'était du copitage sur un autre trouvé sur le net.
Donc en fait je comprend pas trop ce que tu m'as dit de faire ni avec quel outils le faire :)
Le bat que j'ai programmé c'était du copitage sur un autre trouvé sur le net.
Donc en fait je comprend pas trop ce que tu m'as dit de faire ni avec quel outils le faire :)
Bon alors ok j'ai fait une petite erreur sans m'en apercevoir...
Revoici un code que j'ai ecris et qui fonctionne...
Pour l'appel :
prog nom_application nom_fichier
avec nom_application : l'application qui est capable d'ouvrir le fichier
et nom_fichier : le fichier à ouvrir
Maintenant tout cela est strictement inutile. Ben oui. Parce que si tu connais le fichier tu connais le programme capable de l'ouvrir. Par exemple si c'est un fichier ".xls", tu vas chercher excel et lui demander d'ouvrir ce fichier...
Donc ce que tu demandes c'est pas vraiment un programme executable à créer. Puisqu'ils existent déjà!
A toi d'aller les chercher là ou ils se trouvent...
Exemple : tu veux ouvrir un ".txt", alors tu tapes dans une fenêtre dos : c:\windows\system32\notepad.exe ton_fichier.txt
Revoici un code que j'ai ecris et qui fonctionne...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv)
{
int len_com;
char *buffer;
if ( argc != 3 )
return 1;
len_com = strlen(argv[1])+strlen(argv[2])+2;
buffer = (char*)malloc(sizeof(char)*len_com);
memset(buffer, 0, len_com);
sprintf(buffer, "%s %s", argv[1], argv[2]);
system(buffer);
return 0;
}
Pour l'appel :
prog nom_application nom_fichier
avec nom_application : l'application qui est capable d'ouvrir le fichier
et nom_fichier : le fichier à ouvrir
Maintenant tout cela est strictement inutile. Ben oui. Parce que si tu connais le fichier tu connais le programme capable de l'ouvrir. Par exemple si c'est un fichier ".xls", tu vas chercher excel et lui demander d'ouvrir ce fichier...
Donc ce que tu demandes c'est pas vraiment un programme executable à créer. Puisqu'ils existent déjà!
A toi d'aller les chercher là ou ils se trouvent...
Exemple : tu veux ouvrir un ".txt", alors tu tapes dans une fenêtre dos : c:\windows\system32\notepad.exe ton_fichier.txt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup du temps que tu passe à me répondre. En fait je veux faire ça car je suis en train de faire un fichier d'installation contenant plusieurs logiciel de bureautique (c'est pour le boulot pour avoir UN fichier contenant tous les logiciels dont j'ai besoin après chaque install windows) je fais ça avec InstallVise sauf que installVise ne peut que lancer des fichiers .exe une fois les avoirs extrait dans le repertoire
Or dans ma liste de logicile y a un .msi d'où l'utilité du exe qui, une fois extrait avec le msi ouvrira le .msi.
Pour le code que tu m'as donné, je sais pas trop quoi en faire... surtout que tu parle de nom_application alors que en fait y a pas d'aplication qui va ouvrir le fichier que je veux...tu vois ce que je veux dire ?
Or dans ma liste de logicile y a un .msi d'où l'utilité du exe qui, une fois extrait avec le msi ouvrira le .msi.
Pour le code que tu m'as donné, je sais pas trop quoi en faire... surtout que tu parle de nom_application alors que en fait y a pas d'aplication qui va ouvrir le fichier que je veux...tu vois ce que je veux dire ?
Ok je crois avoir compris ton problème...
Bien dans ce cas, tu peux utiliser mon programme. Je peux le modifier pour qu'il ne lance qu'un seul et unique programme ".msi"
Pour cela je peux le compiler et te passer l'executable.
Maintenant le mieux si tu as plusieurs ".msi", c'est que je peux modifier le programme pour qu'il lise une liste de programme ".msi" et le sexecute les uns a la suite des autres...
Enfin je connais pas "instalVise" mais d'après ce que tu dis, il semble que ce soit cela qu'il fasse?
Bien dans ce cas, tu peux utiliser mon programme. Je peux le modifier pour qu'il ne lance qu'un seul et unique programme ".msi"
Pour cela je peux le compiler et te passer l'executable.
Maintenant le mieux si tu as plusieurs ".msi", c'est que je peux modifier le programme pour qu'il lise une liste de programme ".msi" et le sexecute les uns a la suite des autres...
Enfin je connais pas "instalVise" mais d'après ce que tu dis, il semble que ce soit cela qu'il fasse?
Merci beaucoup,
Je n'ai qu'un seul programme donc ne t'embete pas.
Si tu as le temps je veux que tu me compile ton petit programme qui va bien m'aider :)
mon adresse e-mail : tupierro@gmail.com
Si tu pouvais juste faire un zip du exo ce serai cool parceque parfois les exe se font zapper...
Merci beaucoup
Je n'ai qu'un seul programme donc ne t'embete pas.
Si tu as le temps je veux que tu me compile ton petit programme qui va bien m'aider :)
mon adresse e-mail : tupierro@gmail.com
Si tu pouvais juste faire un zip du exo ce serai cool parceque parfois les exe se font zapper...
Merci beaucoup
ah et sinon je pense que ça peut être utile le nom du fichier msi c'est
ActivePerl.msi
et il se trouvera dans le même répertoire que le fichier exe qui l'éxécutera
ActivePerl.msi
et il se trouvera dans le même répertoire que le fichier exe qui l'éxécutera
Voila c'est envoyé...
Pour ceux qui veulent les sources :
Vous l'aurrez compris cela dépend d'un fichier texte nommé "liste_msi.txt" dont chaque ligne est une commande à effectuer
Pour ceux qui veulent les sources :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE_BUFFER 4096
int main()
{
char buffer[SIZE_BUFFER];
char temp[SIZE_BUFFER];
char next_car;
FILE *fp;
fp = fopen("liste_msi.txt", "r");
while( !feof(fp) )
{
memset(buffer, 0, SIZE_BUFFER);
fscanf(fp, "%s", buffer);
fscanf(fp, "%c", &next_car);
while( !feof(fp) && next_car != '\n' )
{
memset(temp, 0, SIZE_BUFFER);
fscanf(fp, "%s", temp);
strcat(buffer, " ");
strcat(buffer, temp);
fscanf(fp, "%c", &next_car);
}
if ( strcmp(buffer, "") != 0 )
system(buffer);
}
fclose(fp);
return 0;
}
Vous l'aurrez compris cela dépend d'un fichier texte nommé "liste_msi.txt" dont chaque ligne est une commande à effectuer