Robustamente uccidendo i programmi di Windows 'problemi' di reporting bloccato
-
22-10-2019 - |
Domanda
Sto cercando un mezzo per uccidere un programma exe di Windows che, quando in fase di test da uno script python, si blocca e presenta una finestra di dialogo per l'utente; in quanto questo programma viene richiamato molte volte, e può bloccare più volte, questo non è adatto.
La finestra di problema è la segnalazione standard di un errore di Windows:
"foo.exe ha riscontrato un problema e deve chiudere. Ci scusiamo per l'inconveniente"
e offre un debug, Invia segnalazione errori, e non inviare pulsanti.
Sono in grado di uccidere le altre forme di dialogo derivanti da urti (ad esempio una finestra di dialogo fallimento affermare di debug build è OK.)
Ho provato Taskkill.exe, pskill, e la funzione terminate () sull'oggetto Popen dal modulo sottoprocesso utilizzato per richiamare l'exe
Qualcuno ha riscontrato questo problema specifico, e ha trovato una soluzione?
Mi aspetto automatizzando l'input dell'utente per selezionare la finestra, e premere il tasto "Non Send" pulsante è una soluzione possibile, ma vorrei qualcosa di molto più semplice se possibile
Soluzione
Non sarebbe più semplice per disattivare la funzione di segnalazione degli errori?
Altri suggerimenti
Se si sceglie di usare CreateProcessEx o una funzione WinAPI specifica, si potrebbe essere in grado di chiamare TerminateProcess o TerminateThread per terminare forzatamente il processo.