Provoquer une interruption

Provoquer une interruption - Delphi/Pascal - Programmation

Marsh Posté le 29-12-2015 à 13:49:14    

Bonjour,
 
J'ai écrit un programme en VBA qui appelle une routine Delphi en mode console.
Je voudrais que cette routine Delphi interrompe complètement le processus en cours si elle détecte une anomalie. C'est à dire ne pas rendre la main au VBA afin que ce programme ne continue pas son déroulement.
J'espère m'être correctement expliqué.
Merci de me faire part de vos idées et suggestions.

Reply

Marsh Posté le 29-12-2015 à 13:49:14   

Reply

Marsh Posté le 29-12-2015 à 14:06:04    

Ca, c'est pas un comportement/architecture normal. :/ Ton programme VBA en appelle un autre : celui-ci va faire son traitement et retourner un code. Charge au programme appelant (donc celui en VBA) d'interpréter ce code de retour et faire le traitement approprié (ici, s'interrompre lui-même) :o
 
Edit : et pas la peine de faire 2 topics pour le même sujet : http://forum.hardware.fr/hfr/Progr [...] 4571_1.htm
Merci d'en fermer un.


Message édité par rufo le 29-12-2015 à 14:06:41

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-12-2015 à 14:34:37    

Merci beaucoup Rufo pour votre aide.
Toutefois, je ne sais pas comment récupérer le code en VBA. Dans ma routine Delphi, j'ai bien fait un ExitCode = xx, mais VBA ne le récupère pas !
Je veux bien fermer un topic, toutefois je ne sais pas non plus comment faire.

Reply

Marsh Posté le 29-12-2015 à 15:11:57    

Shell() doit bien te retourner un code, non ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-12-2015 à 16:14:37    

J'ai un peu tout essayé mais aucun résultat.
 

Code :
  1. ret = 0
  2. Shell ("C:\Monprog\Verifpar.exe ret" ), vbNormalFocus


me renvoie systématiquement 0 dans ret
 

Code :
  1. code = Shell("C:\Monprog\Verifpar.exe" )

 
la variable "code" est différente à chaque essai...
Je m'arrache les cheveux avec cela !
En fait je voulais canceler toute la procédure dans le programme appelé afin que l'utilisateur ne vois pas ce qui se passe dans le code VBA (facilement déplombable même si protégé par un mot de passe)
Merci pour ton aide bien sympathique

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed