CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Programmation] Fct WaitForSingleObject

[Draks]
[Draks]
Niveau 5
26 mai 2006 à 14:15:45

Bonjours a tous !
Voila je suis en 1ere Année de BTS Iris et actuelement je suis en Stage pour 6 Semaines dans une Entreprise !
Dans mon projet je dois faire reussir a envoyer un fichier sur le FTP de l´entreprise.
Ca c´est Ok !
Mais le probleme vient ensuite :
je dois dans ce programme appeler un autre .exe ( deja cre auparavant ) qui est un "compresseur".

Pour appeler cet autre fichier j´utilise ShellExecute come ceci ==>
void main (void)
{
ShellExecute(NULL,"open","Envoi FTP.exe",NULL,NULL,SW_NORMAL);
}

J´ai appelé Envoie FTP.exe ( pour un essai ) qui est mon programme qui envoie un fichier txt sur un FTP ( le programme d´envoi marche bien ) mais le probleme c´est que l´appel de ce programme m´as l´ai tellement rapide qu´il n´as pas le temps de l´envoyer que le pogramme se termine ( dsl si j´explique mal :p ) et donc ca appel "Envoie FTP.exe" mais trop rapidement aparement !
Apres avoir cherché sur le net j´ai trouvé une fct qui s´appel WaitForSingleObjet qui permet de demander de ne pas passer a la suite du programme tant que l´exécutable ne s´est ps entierement terminé ! Le probleme c´est que je ne comprend pas tres bien comment marche cette fonction
Si quelqu´un peut m´aider ca serai tres sympa de sa part !

Merci d´avance a tous ;)

dnob700
dnob700
Niveau 10
26 mai 2006 à 14:42:23

je ne comprend pas vraiment ce que tu veux faire.

Tu écrit un ou deux programme dans cette histoire. Lequel appel lequel. Qu´est ce que chaque programme est cencé faire. Le compresseur c´est "envoi FTP.exe", ou alors c´est lui qui appel l´autre ?

normallement shellexecute crée un nouveau programme, donc même si le programme appelant se ferme le programme qui a été crée doit continuer à tourner.

Seulement shellexecute ne te retourne aucune information sur le programme lancé (totu simplement, parce que ça ne lance pas forcément de programme). Or, pour waitforsingleobject, il te faut un handle sur le processus que tu veux attendre. Il vaut donc mieux utiliser CreateProcess pour lancer ton autre programme. Cette fonction est prévu pour ça, et te retournera donc les informations dont tu as besoin.

Générallement ShellExecute est à réserver pour "exécuter" des fichiers quelconques, c´est-à-dire les ouvrirs avec le logiciel associé avec leurs extensions.

[Draks]
[Draks]
Niveau 5
26 mai 2006 à 14:50:29

Oki d´accord j´ai compris !
En fait j´texplique :
(PS : Ne tiens pas compte de ce que j´ai ecris au dessus car c´etait un exemple different de ce que j´expliquais ensuite :p )
J´ai un programme qui permet d´envoyer un Fichier sur un FTP mais il se trouve que ce fichier devrai etre compréssé avant d´etre envoyé sur le FTP. La compression peut durer un certain temps.
Donc en fait dans mon programme qui envoie sur un FTP un fichier je fais 3 etapes dedans ==>
1° Je regarde si on a acces au Net
2° Je regarde si on a acces au FTP
3° J´envoie

La compression se fait apres l´etape 2°
Mais le probleme de ShellExecute c´est qu´il lance la compression mais n´attend pas qu´elle soit finie et passe directement a l´envoie du Fichier ( a moitié compréssé ) et ca ca pose probleme :(

Mais en fait tu viens de me certifier un truc => WaitForSingleObject ne marche pas avec SheelExecute :(

Je vais donc utiliser CreateProcess avec lequel je pourrai utiliser WaitForSingleObject !

Merci bien man ;- )

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment