Hallo,
bei mehreren Programmen habe ich folgenden Effekt.
Wenn ich eines der Programm starte erhalte ich ab und zu folgende Fehlermeldung:
Exception EPrinter in Modul Programm.exe bei 00040533
Zur Zeit ist kein Standarddrucker gewählt.
Nun soll das Programms nicht gestartet werden wenn "kein Standarddrucker" vorhanden ist.
Also wenn Standarddrucker vorhanden Programm starten, sonst nicht.
Dies versuche beim Programmstart mit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| ... Application.Initialize; if PruefeStandardDrucker then begin ... Application.Run; end; |
Die Pruefung des Standardrucker wird nach Recherchen im Netz mit diesen beiden Methoden probiert.
Function PruefeStandardDrucker : Boolean;
einmal mit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| ... Result := true; GetProfileString('Windows', 'device', '', ResStr, 255); if (Trim(StrPas(ResStr)) = '') then result := false; ... |
und mit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| ... Result := true; if not EnumPrinters(PRINTER_ENUM_DEFAULT, nil, 5, nil, 0, ByteCnt, StructCnt) and (GetLastError <> ERROR_INSUFFICIENT_BUFFER) then begin bRueck := false; end; ... |
Beides führt nicht zum Erfolg, es erscheint trotzdem dann die Fehlermeldung.
Wie kann ich einen Programmstart verhindern, wenn kein Standarddrucker vorhanden ist?