Forum: PC-Programmierung "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten


von jens (Gast)


Lesenswert?

hallo ich habe bei einen programm was ich in inet gefunden habe ein 
problem ich kann keine pdf öffnen der fehler

1
"System.ComponentModel.Win32Exception" ist in System.dll aufgetreten

ein ausschnitt von code
1
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
2
        {
3
            Process p = new Process();
4
            // Redirect the output stream of the child process.
5
            p.StartInfo.UseShellExecute = false;
6
            p.StartInfo.RedirectStandardOutput = true;
7
            p.StartInfo.FileName = "pdftoppm";
8
            p.StartInfo.Arguments = "-mono -f 1 -l 1 -r 600 " + openPdfDialog.FileName + " C:/Windows/Temp/";
9
            p.Start();
10
            // Do not wait for the child process to exit before
11
            // reading to the end of its redirected stream.
12
            // p.WaitForExit();
13
            // Read the output stream first and then wait.
14
            string output = p.StandardOutput.ReadToEnd();
15
            p.WaitForExit();

wer kann mir weiter helfen
mfg jens

von bluppdidupp (Gast)


Lesenswert?

Die erste Maßnahme wäre wohl im Debugger nachzuschauen, welche Message 
denn in der Win32Exception steht.
Es könnte beispielsweise irgendwas mit "file not found" sein, weil vllt. 
die "pdftoppm" nicht im Suchpfad der Anwendung vorhanden ist.

von jens (Gast)


Lesenswert?

das wäre die ausgabe
1
"ExposerControl.vshost.exe" (CLR v4.0.30319: ExposerControl.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
2
Eine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten.
3
Der Thread 0x1cd8 hat mit Code 259 (0x103) geendet.
4
Eine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten.
5
Eine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten.
6
Eine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten.
7
Eine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten.
8
Eine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten.
9
Der Thread 0x1b8c hat mit Code 259 (0x103) geendet.
10
Der Thread 0x2644 hat mit Code 259 (0x103) geendet.

von Peter II (Gast)


Lesenswert?

jens schrieb:
> das wäre die ausgabe

du must Exceptions abfangen.

Try - catch ist das Stichwort.

https://msdn.microsoft.com/de-de/library/0yd65esw.aspx

von Florian S. (sevenacids)


Lesenswert?

Wenn die Ausnahme beim Debugging in Visual Studio auftritt solltest du 
wie bereits erwähnt dir mal die Details dazu anzeigen lassen. 
Normalerweise erscheint beim Auftreten einer Ausnahme ein Dialogfeld bei 
dem es unten einen entsprechenden Link gibt. Dort sind die Eigenschaften 
"ErrorCode" und "Message" ausschlaggebend. Die reine Debug-Ausgabe ist 
dabei wenig hilfreich, denn die protokolliert nur, dass eine Ausnahme 
aufgetreten ist, aber ohne jegliche weitere Information.

Ich würde auch ins Blaue vermuten, dass die "pdftoppm" nicht gefunden 
werden kann. Einfach mal die "pdftoppm" ins Ausgabeverzeichnis kopieren 
(inkl. etwaiger Abhängigkeiten) und probieren ob es dann funktioniert.

PS: Ein try-catch-Block wäre zwar sinnvoll, richtig elegant ist es 
jedoch, wenn die Anwendung bereits zu Beginn überprüft, ob die 
"pdftoppm" gefunden werden kann (z.B. per File.Exists()-Methode) und 
falls nicht direkt eine Fehlermeldung ausgibt (d.h. etwaige Ausnahmen 
schon vorher ausschließen).

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.