![]() |
alle Drucker netzweit
ich möchte alle freigegebene drucker eines netzwerkes in einer liste darstellen hat dazu jemand eine lösung ?
danke für eure Hilfe fredi |
Re: alle Drucker netzweit
|
Re: alle Drucker netzweit
danke für den Hinweis,
mit derfolgenden procedure bekomme zwar den Computername, auf dem der jeweilige Drucker darnhängt und freigegeben wurde, jedoch keinen Printernamen. Ich würde gerne mit dem ermittelten Printernamen die Printerconfiguration auslesen und in einem grid darstellen, geht das ? fredi
Delphi-Quellcode:
[edit=Luckie]Delphi-Tags eingefügt. Bitte selber dran denken. Danke. Mfg, Luckie[/edit]
procedure TMainForm.GetNetPrinters;
var dwResult : DWord; hEnum : DWord; anrStruct : array [1..512] of NETRESOURCE; dwCount : DWord; dwBufferSize : DWord; lIndex : LongInt; begin try FillChar(anrStruct,SizeOf(anrStruct),0); anrStruct[1].lpRemoteName := PChar('CDNET'); dwResult := WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_PRINT, 0, @anrStruct[1], hEnum); if dwResult = NO_ERROR then begin Memo1.Lines.Clear; dwBufferSize := SizeOf(anrStruct); dwCount := DWord(-1); dwResult := WNetEnumResource(hEnum, dwCount, @anrStruct[1], dwBufferSize); for lIndex := 1 to dwCount do begin Memo1.Lines.Add(anrStruct[lIndex].lpRemoteName); end; end; finally WNetCloseEnum(hEnum); end; end; |
Re: alle Drucker netzweit
Moin Fredi,
grundsätzlich sollte man WNetEnumResource (usw.) rekursiv benutzen, da man nicht sicher sein kann, wie viele Ebenen die Struktur umfasst. Eine Resource selber sollte dadurch gekennzeichnet sein, dass Usage <> RESOURCEUSAGE_CONTAINER ist. Dann bliebe nur noch die Prüfung, ob es sich nun um RESOURCETYPE_DISK oder PRINT handelt. Wenn Du also eine Liste mit Rechnern erhältst, müsste die nächste Ebene die Resourcen enthalten (Shares oder Printer). Ich bin übrigens gerade zufällig über eine API gestolpert, die das ganze wahrscheinlich einfacher macht: EnumPrinters. Schau Dir die doch mal im PSDK oder im MSDN einfach mal an. |
Re: alle Drucker netzweit
Hallo Christian,
schau ich mir an, aber leider erst in zwei wochen, gehe jetzt auf urlaub. danke für deine hilfe fredi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 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