AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

alle Drucker netzweit

Ein Thema von fredi · begonnen am 10. Sep 2003 · letzter Beitrag vom 11. Sep 2003
Antwort Antwort
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#1

alle Drucker netzweit

  Alt 10. Sep 2003, 15:47
ich möchte alle freigegebene drucker eines netzwerkes in einer liste darstellen hat dazu jemand eine lösung ?

danke für eure Hilfe
fredi
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: alle Drucker netzweit

  Alt 10. Sep 2003, 15:57
Moin fredi,

such' hier mal nach Hier im Forum suchenWNetEnumResource
Damit sollte das gehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#3

Re: alle Drucker netzweit

  Alt 11. Sep 2003, 10:08
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:
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;
[edit=Luckie]Delphi-Tags eingefügt. Bitte selber dran denken. Danke. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: alle Drucker netzweit

  Alt 11. Sep 2003, 13:19
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#5

Re: alle Drucker netzweit

  Alt 11. Sep 2003, 15:00
Hallo Christian,
schau ich mir an, aber leider erst in zwei wochen, gehe jetzt auf urlaub.

danke für deine hilfe
fredi
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz