Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8840[/thread]

rz eines externen Programms verheimlichen: rz eines externen Programms verheimliche

Leser: 1


<< >> 3 Einträge, 1 Seite
JochenH
 2007-03-14 15:16
#75042 #75042
User since
2006-03-02
3 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich rufe eine externes Programm mit zB. dem Befehl 'system()' auf.
Wenn dieses externe Programm, warum auch immer, abstürzt, dann kommt immer das tolle Windows-Fenster mit "AccessViolation" oder ähnlichem. Das sollte aber der Benutzer gar nicht mitbekommen !

Das ganze läuft auf Windows.

Hat jemand eine Idee, wie man einen solchen Absturz vor dem Benutzer verheimlicht ?

Danke,
Jochen.
GwenDragon
 2007-03-14 15:38
#75043 #75043
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Solch ein Fenster kommt nur bei einem ganz üblen Programmierfehler im externen Programm, denke ich.
Das Windowsfenster mit AccessViolation kommt vom Betriebssystem. Das kannst du nicht abstellen.
sesth
 2007-03-14 18:04
#75044 #75044
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
Die Chancen stehen schlecht. Es macht häufig keinen Sinn, Windows-Programme (also keine Konsolenprogramme) per system() aufzurufen wg. der geschilderten Problematik. Wenn es tatsächlich ein Konsolprogramm ist, dann sollte es auch keine Fehler per MsgBox melden, sondern stderr verwenden oder ins EventLog schreiben. Das kann aber nur der Entwickler des externen Programms abstellen.

Einen Versuch kannst Du noch mit CPAN:Win32::Process starten. Dort gibt es die Möglichkeit per Win32::Process::Create die Option CREATE_NO_WINDOW zu verwenden. Vielleicht ist dann ja Ruhe.
Gruß
Thomas
<< >> 3 Einträge, 1 Seite



View all threads created 2007-03-14 15:16.