Page 1 sur 1

fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 15:10
par pierrep
Bonjour,
J'aimerais savoir :
* s'il est possible de fermer une fenêtre ouverte avec un exe lancé au cours du programme avec RunProgram()
* Même genre de question : comment fermer une fenêtre contenant une application qui tourne (ex WebGadget ..) après un laps de temps déterminé sans tester #pb_event_closeWindow() (autrement dit sans que ce soit l'utilisateur qui intervient);
Merci

Re: fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 15:36
par Parole De JOJO
pour fermer l'exe tu fais killprogram
pour fermer la fenetre tu fais delay et closewindow

Re: fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 15:49
par boddhi
Parole De JOJO a écrit :pour fermer la fenetre tu fais delay et closewindow
Vaut mieux éviter le delay dans cette situation qui va 'freezer' le programme et empêcher l'utilisateur d'interagir éventuellement.

Utiliser plutôt un timer...

Re: fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 16:28
par pierrep
Pour killprogram(programme) je n'ai pas trouvé comment on peut connaitre la valeur de programme.

En ce qui concerne la solution delay suivi de closewindow ça ne peut pas marcher car l'application dans la fenêtre ne fonctionne plus à cause de Delay(), ( de même pour une procédure qui décompte le temps).

Re: fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 16:55
par boddhi
Comme toujours, il est utile de se référer à la doc :
pierrep a écrit :Pour killprogram(programme) je n'ai pas trouvé comment on peut connaitre la valeur de programme.

Code : Tout sélectionner

ProgrammeOuvert = RunProgram(...)
KillProgram(ProgrammeOuvert)
pierrep a écrit :...( de même pour une procédure qui décompte le temps).
??? 8O
Vas voir du côté de AddWindowTimer()

Re: fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 19:23
par pierrep
[quote][/quote]ProgrammeOuvert = RunProgram(...)
KillProgram(ProgrammeOuvert)

C'est bien ce que je faisais , mais j'obtiens le message d'erreur : l'argument "program" spécifié n'est pas valide

Par contre pour AddWindowTimer () c'est parfait MERCI

Re: fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 20:34
par boddhi
Poste un exemple de ton code...

Re: fermer une fenetre ouverte avec runprogram()

Publié : ven. 18/févr./2011 23:06
par pierrep
En fait pour tester cette partie j'ai utilisé que les 2 fonctions utiles:

Code : Tout sélectionner

programme = RunProgram("C:\Wink\capture1" ,"","")
KillProgram(programme)
End
Où capture1 est un .exe obtenu avec Wink (logiciel de capture d'écran - Toutefois le .exe ne ferme pas la fenêtre à la fin de son exécution .. et c'est bien là mon problème )
Le .exe s'affiche correctement , mais PureBasic perd le contrôle de la suite ( et c'est apparemment KillProgram() qui le perturbe)

J'ai aussi essayé avec l'option #PB_Program_Wait Sans résultat

Re: fermer une fenetre ouverte avec runprogram()

Publié : sam. 19/févr./2011 9:54
par Backup
bon la solution a ton probleme

faut pouvoir supprimer la tache en ram
il doit bien y avoir une api pour faire ça ;)

Re: fermer une fenetre ouverte avec runprogram()

Publié : sam. 19/févr./2011 15:47
par Ar-S
Idem avec la DroopyLib.

Code : Tout sélectionner

Pid=GetPidProcess("ProgAfermer.exe")
  If Pid <> 0
    KillProcess(Pid)
  EndIf

Re: fermer une fenetre ouverte avec runprogram()

Publié : sam. 19/févr./2011 18:31
par pierrep
Je viens d'essayer ta solution ... C'est super ça marche bien
T'es trop fort !
Merci