Lancement d'un fichier depuis un Stream

Sujets variés concernant le développement en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Lancement d'un fichier depuis un Stream

Message par Anonyme2 »

J'aimerais pouvoir lancer un fichier depuis un Stream, mais pas un exe, mais par exemple un fichier word, exel, pdf, chm ou autre. Peut-être que l'API RunProgram_() le peut mais je suis plus intéressé avec les interfaces du genre ISTREAM.

J'ai travaillé le sujet il y a environ 2 ans pour les exe mais du fait de la limitation de Windows, ce n'était pas concluant pour les exe.
Je ne retrouve pas mes essais dans les centaines de fichiers que j'ai et j'ai fait une recherche sur le forum anglais mais trop de réponses lire. Pourtant il me semble avoir vu du code sur le forum anglais.

Avez-vous déjà essayé ça ?
Si oui, on peut avoir un bout de code soit ici soit en MP .

Merci
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Lancement d'un fichier depuis un Stream

Message par Backup »

perso pour les streams, je passe par le webgadget ...

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 100, 100, "Bluegrass_Radio", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget )
    WebGadget(0, 0, 0, 1, 1, "http://www.bluegrass.com/radio/")

EndIf

Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
                
        EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow

pour le reste , j'y connais rien Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: Lancement d'un fichier depuis un Stream

Message par Anonyme2 »

Salut Dobro,

En fait les Stream dont je parle sont des flux de données en mémoire gérées par Windows, avec un certain nombre d'opérations possibles sur le stream, lecture, écriture, déplacement pointeur etc, avec une sécurité importante en particulier lorsque l'on déplace le pointeur du stream en dehors des limites de la mémoire allouée.

En PB, il faut chaque fois gérer le pointeur sinon ça plante.


A+
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Lancement d'un fichier depuis un Stream

Message par nico »

je veux bien essayé de t'aider si tu as un début de code :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: Lancement d'un fichier depuis un Stream

Message par Anonyme2 »

Salut Nico,

heu en fait j'ai rien, mais je l'ai déjà vu sur le forum anglais il y a quelques temps mais je ne retrouve pas le sujet et j'ai pas beaucoup de temps pour chercher.

Merci

Denis
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Lancement d'un fichier depuis un Stream

Message par nico »

tu pourrais être plus précis quand tu dis lancer un fichier depuis un stream.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: Lancement d'un fichier depuis un Stream

Message par Anonyme2 »

Je dis lancer, c'est l'exécuter depuis lun fichier en stream (en mémoire), pas depuis le disque dur.

Par exemple, un fichier word "essai.doc" que tu charges dans un stream (ou avec allocatememory) et tu l'exécutes, ce qui a comme effet de lancer word puis d'ouvrir le fichier essai.doc

J'ai pourtant fait des essais il y a quelques années (2 ans ?) mais j'avais un problème avec les droits sous Vista il me semble. Mais je ne retrouve pas mes codes d'essais, j'ai peut-être effacé :oops: et même je ne me souviens plus les API utilisées ...

Et puis j'ai pas envie de poster sur le forum anglais pour avoir de l'aide, c'est con non :mrgreen:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Lancement d'un fichier depuis un Stream

Message par nico »

ça à l'air bizarre ton truc, parce ce que c'est l'extension du fichier qui permet de lancer un programme, je vois pas comment on peut le faire à partir d'un stream qui peut contenir n'importe quoi et n'a pas d'extension.

d'ailleurs même en mettant un fichier en mémoire, je vois pas comment on pourrais faire?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Lancement d'un fichier depuis un Stream

Message par Chris »

Le seul truc en "stream" que j'ai en stock consiste en 4 procédures pour charger (ou enregistrer) des gros fichiers.

Code : Tout sélectionner

StreamFileIn_Callback(hFile, pbBuff, cb, pcb)
FileStreamIn(FileID.l, File.s, Gadget.l, Mode.l)

StreamFileOut_Callback(hFile, pbBuff, cb, pcb)
FileStreamOut(FileID.l, File.s, Gadget.l, Mode.l)
Je m'en servais avec la v3.93 pour charger des gros fichiers texte ou *.rtf dans l'EditorGadget et les enregistrer, mais ça ne permettait pas de lancer quoi que ce soit.
C'était juste beaucoup plus rapide que les méthodes traditionnelles de la biblio "Files" :?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: Lancement d'un fichier depuis un Stream

Message par Anonyme2 »

Merci pour les fonctions.

J'essayerais de chercher si je retrouve.

Avec Runprogram, si tu exécutes un fichier avec une extension, c'est le logiciel associé à cette extension qui s'exécute, par exemple si c'est htm, le navigateur par défaut va s'ouvrir pour afficher le fichier.

Je voudrais faire la même chose mais avec un fichier en mémoire et pas sur le disque.

A+
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Lancement d'un fichier depuis un Stream

Message par nico »

j'ai cherché longtemps et tout ce que j'ai trouvé, c'est éventuellemnt lancer excel en automation avec un stream sauf que ça me dépasse.

le problème Denis, c'est qu'un processus ne peut pas avoir accès à la mémoire d'un autre procesus directement!
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: Lancement d'un fichier depuis un Stream

Message par Anonyme2 »

Merci Nico,

je vais essayer de rechercher un de ces 4 matins.
A+
Répondre