Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Drucker über WMI unter Win2000 fehlerhaft (https://www.delphipraxis.net/94052-drucker-ueber-wmi-unter-win2000-fehlerhaft.html)

Mazel 15. Jun 2007 10:11


Drucker über WMI unter Win2000 fehlerhaft
 
Hallo DP'ler,

ich nutze WMI für mein Programm MyPC um verschiedene Informationen zu erhalten. Darunter auch Informationen zum Drucker. Nun kommt es aber nur bei Win200 zu einem Problem, eine Fehlermeldung "Nicht gefunden". Ich vermute, dass damit gemeint ist, dass die Klasse nicht gefunden wurde die für die Informationen zum Drucker nötig ist, diese Klasse ist die Win32_Printer.

Gibt es da eine andere Klasse unter Win2000?

Ich werde heute hoffentlich noch mit der WMIDemo von himitsu an den mir möglichen Win2000 Rechner testen, Problem ist, dass das der Arbeitsrechner meines Vaters ist und ich da nur schwer heran komme.

Gruß
Mazel

RWarnecke 15. Jun 2007 18:32

Re: Drucker über WMI unter Win2000 fehlerhaft
 
Nutze einfach diesen Code-Library Beitrag. Dieser funktioniert zuverlässig unter Windows 2000.

Edit : Die Win32_Printer gibt es. Nur gibt es dort weniger Informationen. Deshalb steht zum Beispiel die Caption an Position 6 unter Windows XP und unter Windows 2000 an Position 5.

Mazel 15. Jun 2007 21:13

Re: Drucker über WMI unter Win2000 fehlerhaft
 
Ich danke dir, das funktioniert. Ob ein Drucker der Standartdrucker ist, scheint man nur unter Win95/98/ME ermitteln zu können, denn in der MSDN steht dass PRINTER_ATTRIBUTE_DEFAULT nur unter 95/98/Me den Standartdrucker liefert.

Kennt jemand eine Lösung die in dieser Funktion bei liegt? Sonst müsste ich über den Weg aus der Library Standarddrucker ermitteln ein Vergleich anlegen um den Drucker zu ermitteln. Über WMI konnte man das reicht einfach auslesen.

RWarnecke 15. Jun 2007 21:23

Re: Drucker über WMI unter Win2000 fehlerhaft
 
Zitat:

Zitat von Mazel
Kennt jemand eine Lösung die in dieser Funktion bei liegt? Sonst müsste ich über den Weg aus der Library Standarddrucker ermitteln ein Vergleich anlegen um den Drucker zu ermitteln. Über WMI konnte man das reicht einfach auslesen.

Warum benutzt Du nicht folgende Funktion :
Delphi-Quellcode:
function GetDefaultPrinter: string;
var
  ResStr: array[0..255] of Char;
begin
  GetProfileString('Windows', 'device', '', ResStr, 255);
  Result := StrPas(ResStr);
end;
Die liefert Dir auch unter Windows XP und 2000 den Standard-Drucker.

Mazel 15. Jun 2007 21:37

Re: Drucker über WMI unter Win2000 fehlerhaft
 
Hey Super funktioniert. Wo sammelst du diese Funktionen? :wink:

Gruß
Mazel

RWarnecke 15. Jun 2007 21:39

Re: Drucker über WMI unter Win2000 fehlerhaft
 
Überall, wo ich Sie finde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz