Executer fichier

Signaler
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010
-
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
-
Bonjour,
Ce que je demande est assez commplexe mais peut être réalisable.
Donc:
1: J'ouvre un flux (Stream) d'un fichier à partir du disque (cas 1) ou à partir d'un tableau de Byte (cas2)
2: Je fais executer le contenu du flux par windows (exemple un fichier mp3 ouvert par son programme par défaut)
La question est comment faire l'étape 2? Si cela n'est pas possible, est t'il possible de le faire à partir du tableau directement. Existe-il une Api?
Je vous remercie de votre aide.

10 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
32
Salut,

Si ton fichier est dans un tableau de bytes, il faut d'abord l'enregistrer sur le disque (répertoire temporaire de windows) puis l'exécuter (revient à l'étape 1) 

__________
  Kenji
Messages postés
38
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
9 décembre 2008

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
shellexecute me.hwnd,"open","c:\nom_fichier","",environ("WINDIR"),SW_SHOWNORMAL
'"open" peut être remplacé par "edit", "find","print","explore"
'Il y a d'autres constantes possibles pour nShowCmd
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

En fait je veux justement ne pas avoir acces à un fichier du disque tel quel mais seulement à un flux.
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

Donc aparemment le passage au fichier du disque serait inévitable?
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

Par exemple dans Vb.net on peut ouvrir une image à partir d'un stream avec image.fromstream, là je cherche la même chose mais pour n'importe quelle fichier (dont je connaitrai l'extension)
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Oui mais toi tu ne veux pas simplement charger les données dans ton soft comme l'exemple de image.fromstream, mais envoyer ces données à un autre programme comme un lecteur MP3 ou le bloc-notes.

Donc t'es obligé de créer "qq chose" que ce programme en question peut ouvrir: un fichier.
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

C'est vrai, dommage.
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Si c'est possible tu recupere t'es donnée dans un tableau de bute (si ça te chante) puis tu decompress ton mp3 avec une dll genre "lame" ou bien avec ton propre code (si tu peux) puis tu envoi le son "decodé" à la carte son avec les fonctions de l'PAI winodws "winmm" WaveOut

@+

E.B.
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

Je pourrais faire un code pour chaque format de fichier mais je vais me contenter de chercher une solution alternative. Merci de votre aide et de vos conseils.
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Yvesyves:
"2: Je fais executer le contenu du flux par windows (exemple un fichier mp3 ouvert par son programme par défaut)"

EBArtSoft:
"Si c'est possible tu recupere t'es donnée dans un tableau de bute (si
ça te chante) puis tu decompress ton mp3 avec une dll genre "lame" ou
bien avec ton propre code (si tu peux) puis tu envoi le son "decodé" à
la carte son avec les fonctions de l'PAI winodws "winmm" WaveOut"

C'est pas ce qu'il voulais... et le flux du fichier texte ou xls tu l'envois ou?