Windows 10 Drucken Fehler Base/4313

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
littlea1991
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 27
Registriert: Fr, 03. Aug 2018 7:17

Windows 10 Drucken Fehler Base/4313

Beitrag von littlea1991 »

Hallo Liebe Forenmitglieder,

ich bin auf Windows 10 mittlerweile umgestiegen und versuche darüber zu drucken. Leider kommt der Fehler: "
sie können keine verbindung mit der dateifreigabe herstellen weil sie unsicher ist. Diebe Freigabe Erfordert das alte SMB1 Protokoll
Ich habe anbei ein Screenshot der Fehlermeldung hinzugefügt. Wir verwenden ein Zebra ZT-420 der über einen Windows Server 2003 als Freigabe im Programm angesprochen wird. Gibt es eine Möglichkeit den Drucker mit einem neueren Protokoll (SMB2 oder 3) ansprechbar zu machen?
Vielen Dank im vorraus für eure Antworten!

Ali
Dateianhänge
2018-08-29 11_48_45-Window.png
2018-08-29 11_48_45-Window.png (9.97 KiB) 11746 mal betrachtet
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von brandelh »

Evtl. DOSBOX ...

UNC Name statt Umlenkung auf LPT Schnittstelle sollte (ich weiß es nicht genau) SMB2 Protokoll nutzen.

Aber ich empfehle den Druck umzustellen auf zeitgemäße Druckausgaben ;-)

Frage, kann Windows selbst eine Druck Test Seite auf den Drucker über den Druckertreiber drucken ?
Gruß
Hubert
littlea1991
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 27
Registriert: Fr, 03. Aug 2018 7:17

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von littlea1991 »

laut der Dell Website kann Windows 10 über die Druckeigenschaften eine Testseite drucken. Vielen Dank für den Hinweis mit der LPT Schnittstelle!

Gruß

Ali
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von brandelh »

Wenn der Druckertreiber drucken kann, dann kann man auch Xbase++ Grafischen Druck nutzen (XbpPrinter()).
Es gibt verschiedene Möglichkeiten das umzusetzen, eines ist unter Lineprinter zu finden hier in der Wissensbasis ...

Hier ein paar Links zu dem Thema:

viewtopic.php?f=20&t=10561&p=123558&hil ... er#p123558

viewtopic.php?f=25&t=9006&p=120603&hili ... er#p120603

Wenn der Drucker den lineprinter Modus unterstützt, wäre das eine einfache Lösung, einfach mal ausprobieren ...

viewtopic.php?f=16&t=511&p=4866&hilit=lineprinter#p4866

Umstellen nach XbpPrinter() über meine Druckerklasse

viewtopic.php?f=16&t=116

Wichtig ist, dass du auf die eingebaute Druck Warteschlange druckst, denn die hat genug Rechte ;-)

Ansonsten kann man darüber nachdenken, ob man mit L&L besser bedient ist.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von AUGE_OHR »

littlea1991 hat geschrieben: Mi, 29. Aug 2018 12:00 Wir verwenden ein Zebra ZT-420 der über einen Windows Server 2003 als Freigabe im Programm angesprochen wird.
ist der auch für UPS Label zuständig :?:

ein Windows 2003 Server hat KEIN SMB2 d.h. mit Windows 10 als Workstationen wird deine Xbase++ App nicht im Netzwerk laufen :!: es ist mindesten ein Server 2008 notwendig für SMB2 ...
oder man installiert wieder SMB1 unter Windows 10 [-X
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von brandelh »

Ich frage mich schon, wie ein Win 10 Rechner ohne SMB1 in einem SMB1 Netzwerk (laut Jimmys Aussage) in Betrieb gehen konnte,
angeblich wird das doch nur abgeschaltet, wenn es nicht gebraucht wird.

SMB1 nachinstallieren ist der einfachste Weg um die Probleme weg zu bekommen.
Gruß
Hubert
littlea1991
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 27
Registriert: Fr, 03. Aug 2018 7:17

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von littlea1991 »

Vielen Dank für eure Antworten @Jimmy und @brandelh,
Nur die Drucker sind über einen Windows Server 2003 als Freigabe angebunden, sollen aber jetzt über einen Windows Server 2012 (und dementsprechend SMB2) angebunden werden. Deine Druckerklasse ist wirklich sehr Hilfreich! Wie könnte man denn mit ihr Netzwerkfreigaben ansprechen? Ich habe gesehen das man mit oXbpPrinter:list() die installierten Drucker aufrufen kann, allerdings zeigt er keine Netzwerkfreigaben an.
Vielen Dank für eure Hilfe!

Ali
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von brandelh »

XbpPrinter() und damit meine Klasse spricht keinen Drucker direkt an, sondern geht immer über das in Windows hinterlegte Drucker-Objekt (Drucker-Wartenschlangen-Objekt ?) ...
In einem "richtigen" Active Direktory Netzwerk wird der zentrale Drucker vom Server verwaltet und freigegeben, bei der USER Anmeldung sollte dann auch der Netzwerkdrucker verfügbar sein.

Bei meinem kleinen lokalen peer to peer Netzwerk installiere ich auf Windows den Netzwerkdrucker (die Treiber sind von dem Server) wie jeden anderen auch, nur halt bei der Suche als Netzwerkdrucker ...

Xbase++ ist das egal, er zeigt alle verfügbaren Drucker-Objekte des Rechners an, auch die Netzwerkdrucker.
Das ist ja das Gute daran, darum muss sich Windows kümmern, solange die Testseite druckt, druckt Xbase++ auch
Gruß
Hubert
littlea1991
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 27
Registriert: Fr, 03. Aug 2018 7:17

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von littlea1991 »

Leider findet XbpPrinter:List() keine Netzwerk drucker, ich bin in einem Active Directory Netzwerk angemeldet und List zeigt mir nur die momentan installierten Drucker an. Unter Windows Explorer -> Netzwerk werden mir die momentan verfügbaren Drucker allerdings angezeigt. (Bei weit mehr als 100 PCs und Drucker lohnt es sich nicht an jedem einzelnen es lokal zu installieren). Gibt es keine Möglichkeit Die Freigabe über den UNC Pfad anzusprechen (also mit \\Server\Druckername)?

Gruß

Ali
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von brandelh »

Im Büro haben wir Druckserver und Citrix Server, auf dem lokalen Laptop, habe ich mal ein paar Hardcopies gemacht:

Druckerpool, das Programm läuft auf Terminalserver, die Anzeige ist von meinem Laptop.
Mein Programm erkennt sowohl die Drucker mit der TS Nummer, die könnte man wählen wenn man keinen Drucker vorgeben will sollte das auch der Standarddrucker sein !!!
Aber ich will Drucker vorgeben und dann kann man auch die UNC Namen aus der Liste wählen (die Liste erstelle ich mit xbpPrinter:List())
UNC-Drucker.png
UNC-Drucker.png (348.09 KiB) 11604 mal betrachtet
Druckeranschluß.png
Druckeranschluß.png (47.3 KiB) 11604 mal betrachtet
Druckerliste.png
Druckerliste.png (28.87 KiB) 11604 mal betrachtet
Die Anzeige, dass dieser Drucker vorgegeben ist bedeutet, dass der Druckername aus der INI Datei gelesen und übergeben wird:

Quellcode folgt
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von brandelh »

in MAIN (nur Anzeige):

Code: Alles auswählen


public cVorgabeDrucker := NIL        // Standarddrucker verwenden ***** SCHOCK die alten Programme nutzen PUBLICS ;-)

cVorgabeDrucker := GetStandardDrucker()
if ! empty(cVorgabeDrucker)
   meldung(12,"H",{ "Sie haben den Drucker vorgegeben:","",cVorgabeDrucker,"" })
endif
*------------------------------------------------------------------------
function GetStandardDrucker()
  local cPrinter      := ""
  local cFileName     := UserInI("INI")          // INI-Dateinamen DES Users ermitteln
  local cSection      := "Benutzervorgaben"
  local cVar          := "VorgabeDrucker"

  cPrinter := GetIni(cSection, cVar, cPrinter , cFileName)
  if empty(cPrinter)
     cPrinter := NIL
  endif
return cPrinter

in den Druckroutinen kann man bei uns die UNC Namen genauso übergeben wie die lokalen Namen

Code: Alles auswählen

*------------------------------------------------------------ Kopf_Brief -----------------------
CLASS Kopf_Brief from HBPrinter
...
ENDCLASS
*--------------------------------------------------------------
METHOD Kopf_Brief:Init()
   ::HBPrinter:Init()
....
return self
*--------------------------------------------------------------
METHOD Kopf_Brief:Create(cPrinterName)

    If cVorgabeDrucker # NIL
       cPrinterName := cVorgabeDrucker
    endif

    ::HBPrinter:Create(cPrinterName)

    if ! ::HBPrinter:IsPrinterError()           // Druckerfehler -> Aufrufe in Hauptprogramm stoppen

...
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von Jan »

Die Frage ist doch: Kann ich einen Drucker benutzen, der auf meinem Rechner gar nicht installiert ist. Und wenn ja - wie?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von AUGE_OHR »

littlea1991 hat geschrieben: Do, 30. Aug 2018 11:28 ... und List zeigt mir nur die momentan installierten Drucker an.
also die lokal "installierten"
littlea1991 hat geschrieben:Unter Windows Explorer -> Netzwerk werden mir die momentan verfügbaren Drucker allerdings angezeigt.
dann musst du den gewünschten Drucker "installieren" denn der Drucker benötigt Treiber :!:

sobald du einen Drucker auswählst sollte die Install Routine anspringen aber meistens nur mit Windows Treibern.
littlea1991 hat geschrieben: Gibt es keine Möglichkeit Die Freigabe über den UNC Pfad anzusprechen (also mit \\Server\Druckername)?
das ist der Weg den man gehen muss aber ohne Treiber wird der Drucker nicht mal zucken.

p.s. bei vielen (grossen) Netzwerk Drucker kann man über

Code: Alles auswählen

\\Server\Druckername\Setup
oder
\\Server\Druckername\Install
per Browser ran kommen
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von AUGE_OHR »

hi,
brandelh hat geschrieben: Do, 30. Aug 2018 6:39 angeblich wird das doch nur abgeschaltet, wenn es nicht gebraucht wird.
JA ... aber wie lange dauert es bis der "neue" PC den Kunden erreicht ... da ist die Zeitspanne längst abgelaufen.
meistens sind doch erst mal diverse Updates notwendig ... oder eine andere Release Version :lol:
brandelh hat geschrieben:SMB1 nachinstallieren ist der einfachste Weg um die Probleme weg zu bekommen.
wenn das Netzwerk keinen Kontakt zum Internet hat "könnte" man die UDP Port 135-139 wieder aufmachen.
Was allerdings der Administrator einer Firma zu deinem Vorschlag sagen wird kann ich mir schon ausmalen ... :roll:
gruss by OHR
Jimmy
littlea1991
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 27
Registriert: Fr, 03. Aug 2018 7:17

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von littlea1991 »

Guten Morgen Liebe Forenmitglieder,

@brandelh Deine Lösung sieht super aus, ich werde sie auch versuchen als eine Liste zu übergeben. Wie Jan richtig erkannt hat ist die Frage wie man einen Drucker benutzen kann der gar nicht auf dem Rechner installiert ist, sondern nur als Freigabe über Netzwerk praktisch da ist.
Aktuelle Situation: Mehrere Abteilungen besitzen Netzwerkdrucker und greifen über die alten Clipperbefehle zu:

Code: Alles auswählen

  SET PRINTER ON
      SET PRINTER TO "DBf Datei mit Druckerliste die den UNC Pfad enthält"
      ? "Test"
      SET PRINTER OFF
geregelt. Da man über 60 Drucker verwalten muss hatten wir bisher eine DBF Datei angelegt die für verschiedene Abteilungen die jeweiligen Druckerliste angezeigt bekommt. z.B. Abteilung Auftragsverwaltung -> Drucker der Auftragsverwaltung werden angezeigt, da man nicht möchte das die Abteilung anfängt an verschiedenen Standorten zu Drucken.
Wir möchten das gerne über den XbPPrintDialog jetzt regeln (Laden der Druckerlisten und ansprechen der jeweiligen Netzwerkdrucker).
@jimmy das Drucken klappt auch wunderbar wenn man vorher die Drucker installiert hat, allerdings ist es nicht sinnvoll das bei 60 verschiedenen Druckern zu machen. Und für mehrere hundert Rechner jeweils die richtigen Drucker zu installieren.
Deshalb verwalten wir im Moment sie über eine DBF Datei die die entsprechenden UNC Pfade enthält und jeweils der Abteilung die richtigen Drucker anzeigt. Genau dieser Vorgang klappt nicht mehr unter Windows 10 mit den Clipperbefehlen.
Vielen Dank für eure Hilfreichen Antworten!

Ali
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von brandelh »

Jan hat geschrieben: Do, 30. Aug 2018 15:46 Die Frage ist doch: Kann ich einen Drucker benutzen, der auf meinem Rechner gar nicht installiert ist. Und wenn ja - wie?

Jan
dann schau dir doch den Quellcode genauer an, da wird der gemerkte Vorgabedrucker in diesem Falle \\vps13-nghg102\d09nbg02 als String in einer INI gespeichert, wieder geladen nach cVorgabeDrucker (die ist Public) und dieser Wert wird an oXbpPrinter:Create(cPrinterName) übergeben (in meinem Beispiel meine Druckerklasse, aber die macht das intern genauso)

Code: Alles auswählen

    If cVorgabeDrucker # NIL
       cPrinterName := cVorgabeDrucker
    endif

    ::HBPrinter:Create(cPrinterName)
Keiner unserer Netzwerkdrucker im Büro ist LOKAL installiert, die Treiber hat der DruckServer \\vps13-nbg102
Allerdings weiß ich nicht was die wie und wo sonst noch eingestellt haben.
In einem echten Netzwerk kennen die Clients die Druckserver und deren freigegebene Drucker.
Gruß
Hubert
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von ramses »

In einem echten Netzwerk kennen die Clients die Druckserver und deren freigegebene Drucker.
Nicht nur dass, die Clients erhalten zum Drucken auch den Druckertreiber der auf dem Server dazu installiert ist.
Jedenfalls richten wir das unter AD immer so ein.

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Windows 10 Drucken Fehler Base/4313

Beitrag von AUGE_OHR »

littlea1991 hat geschrieben: Fr, 31. Aug 2018 7:43 installierten Drucker aufrufen kann, allerdings zeigt er keine Netzwerkfreigaben an.
...
Genau dieser Vorgang klappt nicht mehr unter Windows 10 mit den Clipperbefehlen.
der Unterschied zwischen installierten und Netzwerkfreigaben sind die Rechte des Users.
im Netzwerk kannst du auch andere Server sehen aber das bedeutet nicht das du Zugriff hast.

mit "control printers" öffnet sich das Fenster "Geräte und Drucker"
nur die Geräte die dort auftauchen kann man IMHO unter Windows 10 ansprechen.
gruss by OHR
Jimmy
Antworten