Code: Alles auswählen
net use LPT2: /Delete
net use LPT2: \\Rechnername\druckername
Jan
Moderator: Moderatoren
Code: Alles auswählen
net use LPT2: /Delete
net use LPT2: \\Rechnername\druckername
Ruf einfach die beiden Befehle mittels ShellExecute auf oder spricht etwas dagegen?Jan hat geschrieben:Ich habe gerade die herausforderung erhalten, ein altes Programm zu modernisieren. Problem: In der alten Version muß vorher immer eine kleine Batch gestartet werden, die einaufruft. Kann man das nicht mit Xbase++-Syntax nachbilden?Code: Alles auswählen
net use LPT2: /Delete net use LPT2: \\Rechnername\druckername
Nur so ein Gedanke, versuche den Drucker als UNC Namen als Device anzugeben, im Prinzip ist es ja nur eine offene Dateiverbindung ...SET PRINTER TO <cDevice>
...
<cDevice> ist der Name des Ausgabegeräts bzw. -kanals, an den die Druckausgaben gesandt werden sollen. Er kann entweder als Literal oder als Zeichenausdruck in ()-Klammern angegeben werden. Es kann ein lokales oder ein über ein Netzwerk erreichbares Gerät sein. Falls <cDevice> nicht existiert, wird eine ASCII-Datei mit diesem Namen erzeugt.
Ich wette, die beiden haben gewettet, dass Du Deine Druckerklasse anpreisen wirst .brandelh hat geschrieben: ich bekomme nix mehr mit, welche Wette
Code: Alles auswählen
#COMPILE EXE
#DIM ALL
#INCLUDE "Win32Api.inc"
FUNCTION PBMAIN () AS LONG
LOCAL lpRemoteName, lpPassword, lpLocalName AS ASCIIZ*256
? "Info"
? "D:", DIR$("D:", 8)
? "\\LEY\HD_D", DIR$("\\LEY\HD_D", 8)
? "M:", DIR$("M:", 8)
? "M", DIR$("M", 8)
lpRemoteName = "\\LEY\HD_D"
lpPassword = ""
lpLocalName = "M:"
? lpRemoteName, DIR$(lpRemoteName, 8)
? lpLocalName, DIR$(lpLocalName, 8)
? WNetAddConnectionA(lpRemoteName, lpPassword, lpLocalName )
? lpLocalName, DIR$(lpLocalName, 8)
WAITKEY$
END FUNCTION
Code: Alles auswählen
DECLARE FUNCTION WNetAddConnectionA LIB "Mpr.dll" ALIAS "WNetAddConnectionA" _
(lpRemoteName AS ASCIIZ, lpPassword AS ASCIIZ, lpLocalName AS ASCIIZ) _
AS DWORD
Code: Alles auswählen
SHELL "net use lpt2 \\fsa-dc\canon", EXIT TO nResult
? "nResult",nResult
SHELL "net use "
und genau da liegt der Gedankenfehler.brandelh hat geschrieben:bei der Umstellung des Beispieles auf einen Netzwerkdrucker bekomme ich immer den Fehler, dass das Kennwort nicht stimmt.
Ich übergebe keines, weil ich ja die aktuelle Anmeldung nutzen will, ähnlich wie mit net use ...
Code: Alles auswählen
lpPassword = "aktuelles Kennwort des angemeldeten Users" // ich nutze ein Peer2Peer Netzwerk !