| lancer/executer un fichier texte relié à une application | |
|
|
Auteur | Message |
---|
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 19:14 | |
| langage:C++
Voila, après avec pas mal cherché.
je voudrais relié un type de fichier à une application. (ex: bmp -> mspaint) et récupéré le chemin dans mon programme. En gros l'ouvrir dans mon application.
/- sinon c'est pas dans le sujet mais j'en profite pour demander plusieurs choses
Je voulais pouvoir exécuter une application depuis le programme. J'ai utiliser system('call <programme>'), sa marche bien.
Mais j'aurais voulus trouver comment le faire sans utiliser un script batch comme j'ai fait la. Je crois que c'est avec les fonction: exec et ces dérivé mais je n'ai pas réussit a les faire fonctionner.
Dernière édition par arthuro le Jeu 25 Juin 2009 - 20:04, édité 1 fois |
|
| |
bibi675 Utilisateur confirmé: Rang *****
Messages : 2456 Localisation : Oise Projet Actuel : Jeu par navigateur original
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 19:44 | |
| Pour avoir le fichier qui est envoyé en paramètre à l'application tu peux utiliser : parameter_string(1). Pour ton deuxième problème, tu as la DLL ShellExecute qui te permet de passer par l'API Windows. |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 19:53 | |
| Je pense pas qu'il parle de GM. |
|
| |
bibi675 Utilisateur confirmé: Rang *****
Messages : 2456 Localisation : Oise Projet Actuel : Jeu par navigateur original
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 19:57 | |
| Bah alors il faut qu'il précise le langage de programmation. |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 20:04 | |
| ha mince j'ai oublié de dire que c'était en C++. Désolé. |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 20:05 | |
| Étant donné le "system('call <programme>')" ça doit être du C ou du C++ Pour associer une extension à un programme, faut bidouiller avec les clés de registre, mais bon je connais pas par coeur les clés à créer EDIT : bon ben devancé lol |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 21:16 | |
| j'ai trouvé une fonction pour associé l'extention avec le programme, sa marche trés bien. - Code:
-
void associate(const char *ext, const char *path) { HKEY key; DWORD kSize; char mem[MAX_PATH] = "";
if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ext, 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS) { RegQueryValueEx(key, NULL, NULL, NULL, (BYTE*)mem, &kSize);
strcat(mem, "\\Shell\\open\\command");
if(RegOpenKeyEx(HKEY_CLASSES_ROOT, mem, 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS) { sprintf(mem,"\"%s\" \"%1\"", path); RegSetValueEx(key, NULL, 0, REG_SZ, (BYTE*)mem, strlen(mem)+1); } } RegCloseKey(key);
return; }
trouvé sur le site du zéro, tuto par Mg++. il s'utilise avec windows.h Il me reste plus qu'a savoir ou récupéré le chemin du fichier qui appel le programme |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 21:32 | |
| C'est le premier argument avec lequel est lancé le programme : par exemple : mspaint.exe "C:\image.bmp" ouvre l'image spécifiée avec paint Il faut donc que t'arrive à récupérer cet argument (je sais faire sous GM mais pas en C++ désolé) |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 21:41 | |
| je pense que je pourrais le trouver dans : int argc ou dans sa char *argv[] |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 22:39 | |
| Peut-être comme cela:
#include "windows.h"
///...........
char* path = "\"C:\\Program Files\\..."";
ShellExecute(0, "open", path, path, 0, SW_SHOW); |
|
| |
bibi675 Utilisateur confirmé: Rang *****
Messages : 2456 Localisation : Oise Projet Actuel : Jeu par navigateur original
| Sujet: Re: lancer/executer un fichier texte relié à une application Jeu 25 Juin 2009 - 23:25 | |
| - arthuro a écrit:
-
- Code:
-
void associate(const char *ext, const char *path) { HKEY key; DWORD kSize; char mem[MAX_PATH] = "";
if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ext, 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS) { RegQueryValueEx(key, NULL, NULL, NULL, (BYTE*)mem, &kSize);
strcat(mem, "\\Shell\\open\\command");
if(RegOpenKeyEx(HKEY_CLASSES_ROOT, mem, 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS) { sprintf(mem,"\"%s\" \"%1\"", path); RegSetValueEx(key, NULL, 0, REG_SZ, (BYTE*)mem, strlen(mem)+1); } } RegCloseKey(key);
return; }
Oh le C++, quel bordel... |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: lancer/executer un fichier texte relié à une application Ven 26 Juin 2009 - 6:36 | |
| - bibi675 a écrit:
- arthuro a écrit:
-
- Code:
-
void associate(const char *ext, const char *path) { HKEY key; DWORD kSize; char mem[MAX_PATH] = "";
if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ext, 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS) { RegQueryValueEx(key, NULL, NULL, NULL, (BYTE*)mem, &kSize);
strcat(mem, "\\Shell\\open\\command");
if(RegOpenKeyEx(HKEY_CLASSES_ROOT, mem, 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS) { sprintf(mem,"\"%s\" \"%1\"", path); RegSetValueEx(key, NULL, 0, REG_SZ, (BYTE*)mem, strlen(mem)+1); } } RegCloseKey(key);
return; }
Oh le C++, quel bordel... Pas plus que d'autre langage faut juste bien aligner son code et respecter ces conventions personnelles. Comme moi, j'utilise la notation hongroise. |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: lancer/executer un fichier texte relié à une application Dim 28 Juin 2009 - 14:09 | |
| Merci CoDeAVE, sa marche bien. moi je tombait totalement sur autre chose quand je cherchais
bibi675, oui la c'est vrai que c'est bien moche. mais bon, en même temps, c'est le code pour utiliser le registre windows qui est comme sa. Sinon je trouve que c'est pas plus dure de s'y retrouver que dans les autres langage, surtout avec un colorieur de code. |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: lancer/executer un fichier texte relié à une application Dim 28 Juin 2009 - 19:18 | |
| J'ai déjà eut le même problème que toi et j'avais cherché assez longtemps avant de trouver lol. C'est dure quand on ne connais pas l'API win32 ou bien MFC. |
|
| |
Contenu sponsorisé
| Sujet: Re: lancer/executer un fichier texte relié à une application | |
| |
|
| |
| lancer/executer un fichier texte relié à une application | |
|