J'ai un script Perl qui appelle une autre application sur laquelle je n'ai aucun contrôle. J'utilise le system()
pour appeler cette application. À l'occasion, cette application génère une exception non gérée et affiche une boîte de dialogue d'exception qui doit être traitée. Comme il s'agit d'un script Perl sans surveillance, je voudrais détecter cette situation et la gérer dans le script Perl et continuer. Ma recherche de solutions n'a pas été fructueuse. Puisque system()
génère un processus fils, les mécanismes de gestion des exceptions standard dans Perl ne s'appliquent pas. Je cours sur Windows XP. Aucune suggestion?Comment gérer une boîte de dialogue déclenchée par un programme que je démarre depuis Perl?
3
A
Répondre
2
Peut-être le message Perlmonks Win32::OLE: how to call Excel VBA macros and catch all VBA errors without dialog boxes appearing? peut vous aider.
Presque chaque fois que vous devez interagir avec des choses du système Windows, vous allez finir par utiliser l'API Windows (y a-t-il un nom officiel pour cela?) Via Win32::OLE.
2
Recherchez la boîte de dialogue et supprimez-la. Par exemple, si vous voulez tuer automatiquement une fenêtre ayant le titre de Calculatrice, le script suivant devrait fonctionner.
use strict;
use warnings;
use Win32::GUI();
use constant WM_CLOSE => 16;
sub kill {
my $handle = Win32::GUI::FindWindow('', 'Calculator');
Win32::GUI::SendMessage($handle, WM_CLOSE, 0, 0);
}
while(1){
&kill;
sleep(5);
}
Questions connexes
- 1. Comment puis-je protéger un processus que je démarre depuis mon programme vb.net?
- 2. Comment simuler une boîte de dialogue modale depuis une applet?
- 3. Comment gérer une boîte de dialogue de confirmation de webview?
- 4. boîte de dialogue dans un programme MFC
- 5. Comment puis-je ajouter un élément par programme à cette boîte de dialogue?
- 6. Comment ouvrir la boîte de dialogue des paramètres dans un gadget de bureau Windows par programme?
- 7. Comment gérer la boîte de dialogue via sélenium avec python?
- 8. Comment gérer la boîte de dialogue des autorisations étendues
- 9. Comment exécuter un script Perl depuis un script Perl?
- 10. Comment puis-je redémarrer l'iPhone par programme depuis mon application?
- 11. Comment est-ce que je peux rendre seulement un `BLOCK` spécifique dans une boîte à outils de modèle de Perl?
- 12. Comment est-ce que je programme la docstring par programme?
- 13. Android: Comment programmer par programme la taille de la boîte de dialogue?
- 14. boîte de dialogue Enregistrer par javascript
- 15. Comment imprimer une boîte de dialogue ou une fenêtre Qt?
- 16. Comment puis-je gérer un hachage trié en Perl?
- 17. Winforms: Ouvrez une seconde boîte de dialogue modale dans un je dialogue
- 18. Comment puis-je mettre en pause par programme un NSTimer?
- 19. Comment ouvrir une boîte de dialogue dans l'iphone?
- 20. Comment afficher une boîte de dialogue sur un widget?
- 21. Comment présenter une boîte de dialogue de sélection de dossier ouvert dans Perl?
- 22. Méthode non déclenchée depuis la vue rasoir
- 23. Comment implémenter correctement une boîte de dialogue modale en haut d'une boîte de dialogue non modale?
- 24. Puis-je ellipsiser un titre de boîte de dialogue?
- 25. Boîte de dialogue de progression du positionnement Android ou Boîte de dialogue de progression personnalisée
- 26. Comment créer une boîte de dialogue non modale en Perl/Tk?
- 27. Test pour un programme que je programme
- 28. Comment puis-je limiter un téléchargement dans un programme Perl?
- 29. Actualiser UpdatePanel après une boîte de dialogue "File Download" Boîte
- 30. Comment vider les instructions machine utilisées par un programme Perl
De quel système d'exploitation êtes-vous? Que dit exactement la boîte de dialogue? – cjm
Désolé j'ai oublié de mentionner que je suis sur Windows XP en cours d'exécution perl sur un shell Cygwin et l'application qui provoque l'exception est «make». – bata
make est l'élévation d'une boîte de dialogue? Pouvez-vous nous montrer une capture d'écran, peut-être? Que dit la boîte de dialogue? –