PureBasic

Forums PureBasic
Nous sommes le Sam 15/Aoû/2020 8:32

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: ShellExecute et attente de la fin d’exécution du programme
MessagePosté: Jeu 10/Mai/2012 21:19 
Hors ligne

Inscription: Dim 14/Mai/2006 20:41
Messages: 140
Bonjour,

J'utilise l'API ShellExecute pour lancer un programme. Le choix de ShellExecute a été motivé par le fait que l'on peut, avec lui, lancer le programme avec les privilèges administrateur (impossible avec RunProgram(), et avec CreateProcess je n'ai rien trouver sur l'élévation non plus et ça complique pas mal le code aussi j'ai l'impression).

Seulement voilà avec ShellExecute, je ne trouve pas comment lancer mon programme et en attendre la fin d'exécution avant de poursuivre. Je n'ai rien trouvé la dessus ; Tous les ShellWait-Like que j'ai pu trouver sur le net, tous étaient basés sur RunProgram().

Quelqu'un pourrait-il m'aider, m'aiguiller (et aussi me corriger si je dis des âneries lol)

D'avance, merci :)

_________________
.:NY152:.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: ShellExecute et attente de la fin d’exécution du program
MessagePosté: Jeu 10/Mai/2012 22:22 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3702
Code:
lpExecInfo.SHELLEXECUTEINFO
lpExecInfo\cbSize  = SizeOf(SHELLEXECUTEINFO)
lpExecInfo\lpFile = @"Notepad.exe"
lpExecInfo\fMask=#SEE_MASK_DOENVSUBST | #SEE_MASK_NOCLOSEPROCESS | #SEE_MASK_FLAG_NO_UI
lpExecInfo\hwnd = #Null
lpExecInfo\lpVerb = @"runas"
lpExecInfo\lpParameters = #Null
lpExecInfo\lpDirectory = #Null   
lpExecInfo\nShow = #SW_SHOW

ShellExecuteEx_(@lpExecInfo)
   
If lpExecInfo\hProcess <> #Null
 
  Select WaitForSingleObject_(lpExecInfo\hProcess, #INFINITE)
    Case #WAIT_OBJECT_0
      Debug "Fin"
     
    Default
      Debug "Erreur Objet non signalé"
     
  EndSelect
 
  CloseHandle_(lpExecInfo\hProcess)
 
Else
  Debug "Erreur Process non lancé"
EndIf 


Edit: code mis à jour


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: ShellExecute et attente de la fin d’exécution du program
MessagePosté: Jeu 10/Mai/2012 23:14 
Hors ligne

Inscription: Dim 14/Mai/2006 20:41
Messages: 140
Merci, le code fonctionne très bien :)

Juste une chose qui m'étonne, le debug renvois 2 valeurs quand je lance le bloc-notes : Quand je ferme le bloc-notes il me renvois Fin, normal mais aussi Erreur Process non lancé tout de suite derrière. Mais bon comme ça fonctionne, j'y regarderais plus tard :)

Encore merci !

_________________
.:NY152:.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: ShellExecute et attente de la fin d’exécution du program
MessagePosté: Jeu 10/Mai/2012 23:23 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14534
NY152 a écrit:
Quand je ferme le bloc-notes il me renvois Fin, normal mais aussi Erreur Process non lancé tout de suite derrière.


pas sur mon seven 64 bits compilé en 32 ou 64 bits.. :wink:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: ShellExecute et attente de la fin d’exécution du program
MessagePosté: Jeu 10/Mai/2012 23:24 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3702
Cela fait lontemps que tu fait de la programmation?

Parce que ce que tu dis est tout simplement impossible, vu le code!


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: ShellExecute et attente de la fin d’exécution du program
MessagePosté: Jeu 10/Mai/2012 23:58 
Hors ligne

Inscription: Dim 14/Mai/2006 20:41
Messages: 140
En PB, je touche occasionnellement. Sinon l'erreur venait de PB lui-même, après un reboot, je n'ai plus eu l'erreur. Pourquoi ? Comment ? Ça j'en sais rien ^^

Donc tout est OK du coup !

Encore merci

_________________
.:NY152:.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye