|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Inscription : avril 2004 Messages : 185 ![]() |
Bonjour à tous : )
Suivent deux codes. Apparemment identiques. Mais, à l'exécution du second, j'ai ce message systématique (d'autres si je cache l'application, etc): Le code fonctionnant : Code :
Code :
Merci :hello: |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2008 Messages : 2 886 ![]() |
Dans le premier cas, tu lèves systématiquement une exception avec RaiseLastOSError (même en cas de succès). Les lignes suivantes ne sont jamais exécutées !
|
|
|
00
|
|
|
#3 | ||
|
Inscription : avril 2004 Messages : 185 ![]() |
Je suis désolé, mais je ne comprends décidément pas CreateProcess().
Parfois ça marche, parfois pas, et je ne comprends pas pourquoi. C'est ici-même que j'ai eu ce code avec WAIT_OBJECT . J'ai tout essayé. Même avec TRayIcon de Jedi, tout. Rien à faire. J'ai supprimé Form1.Visible := False, bien sûr. J'ai beau faire Application.Minimize, elle n'attend pas la fin du processus appelé : elle continue comme si de rien n'était. Alors que dans l'exemple 1, elle reste en icône, sans problème... Je "sens" que je ne dois pas être loin de trouver, mais je tourne en rond sur cette procédure-là. Moi, oui Alors que dans mon lanceur de FireFox, j'appelle un processus fils, un EXE, et l'appelant est bel et bien caché. Voici ce code qui marche : Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Développeur informatique Inscription : mars 2005 Messages : 5 015 ![]() |
Normal qu'il n'attende pas tu ne fais pas de boucle d'attente avec le WaitforSingleObject
voir ![]() http://delphi.developpez.com/faq/?pa...oleapplication
__________________
Modérateur Delphi Combattez la brute Aucune réponse aux sollicitations techniques par MP Le guide du bon forumeur :
[Projet en cours] Des unités pour faciliter l'utilisation d'indy : EasyIndy 1.3 |
|
|
00
|
|
|
#5 | ||
![]() ![]() Inscription : septembre 2008 Messages : 2 886 ![]() |
WaitForSingleObject est bloquant et les messages nécessaires à masquer la fiche ne seront gérés effectivement qu'après la sortie de la fonction. Après HideMainForm, il faudrait au moins un Application.ProcessMessages pour forcer leur traitement immédiat.
Sinon, je n'utilise plus CreateProcess depuis longtemps à part si je cible un desktop particulier. Je lui préfère ShellExecuteEx. Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Inscription : avril 2008 Messages : 863 ![]() |
ou simplement exécute ton code sur un autre thread
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com