Readme Geschrieben 21. September 2006 Geschrieben 21. September 2006 Hallo, ich hoffe Ihr könnt mir helfen. Gibt es die möglickeit ein Script zu programmieren, welches direkt eine PDF Datei ausdrucken soll ohne das der Druckdialog erscheint? Dieser Script wird auf einem Rechenr ausgeführt werden, der nur die Aufgabe hat eine PDF Datei auszudrucken. Ich wäre für Eure Hilfe sehr dankbar. Diese Aufgabe soll ich nähmlich bis morgen Freitag versuchen hinzubekommen (bin Azubi in FI/SI). Leider habe ich nur Allgemine Grundkenntnisse in programmieren. Wäre es daher möglich das jemand mir den Script programmieren könnte? Über jede Hilfe wäre ich sehr dankbar . Haben diese Anfragen schon in diesem Forum gestellt, leider unter der falschen Rubrik. Hoffe daher, das hier mir besser geholfen werden kann . Zitieren
DevHB Geschrieben 21. September 2006 Geschrieben 21. September 2006 Hi, wenn Du davon ausgehen kannst, dass ein PDF Reader installiert ist, dann geht das mit der ShellExecute Api: 'API declare ' public im Modul, private auf form !!! Public Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As _ String, ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long ' ausdrucken Private Sub cmdPrintPDF_Click() Call ShellExecute(0, "print", "C:\Test.pdf" , vbNullString, ".", 0) End Sub Zitieren
Readme Geschrieben 21. September 2006 Autor Geschrieben 21. September 2006 Vielen Dank für Deine schnelle Antwort! Haben den Script kopiert, in den Editor eingefügt und als test.vbs abgespeichert. Demenstprechend habe ich auch eine PDF Datei mit dem Namen Test.pdf und C: gespeichert. Beim Ausführen des Script kommt aber die Fehlermeldung: --------------------------- Windows Script Host --------------------------- Skript: C:\Dokumente und Einstellungen\xxxxx\Desktop\Skript01.vbs Zeile: 3 Zeichen: 16 Fehler: Anweisungsende erwartet Code: 800A0401 Quelle: Kompilierungsfehler in Microsoft VBScript --------------------------- OK --------------------------- Ich denke, das ich bestimmt den Script falsch ausgeführt habe. Wie soll ich ihn richtig zum laufen bringen? Zitieren
Amstelchen Geschrieben 21. September 2006 Geschrieben 21. September 2006 der obige ausschnitt funktioniert auch nur mit VB/VBA, nicht mit VBS. versuchs mal so: Option Explicit Dim objShellApp Dim argument Dim strFile If WScript.Arguments.Count < 1 Then WScript.Echo("Usage: printfile.vbs file.doc") WScript.Quit End If strFile = Wscript.Arguments(0) Set objShellApp = WScript.CreateObject("Shell.Application") objShellApp.ShellExecute strFile, "", "", "print", 0 Wscript.Sleep(5000) Set objShellApp = Nothing s'Amstel Zitieren
DevHB Geschrieben 21. September 2006 Geschrieben 21. September 2006 Oh, gar nicht gesehen, dass Du VBS meinst...:schlaf: Zitieren
Readme Geschrieben 21. September 2006 Autor Geschrieben 21. September 2006 Wie stelle ich jetzt den Script so ein, das er beim ausführen eine PDF Datei ausdruckt? Nehmen wir an die PDF Datei liegt auf C:. Zitieren
DevHB Geschrieben 21. September 2006 Geschrieben 21. September 2006 Hi, von VBS habe ich keine Ahnung. Zitieren
Amstelchen Geschrieben 21. September 2006 Geschrieben 21. September 2006 ruf mal die oben von mir gepostete printfile.vbs mit dem parameter C:\Test.pdf auf. es sollte dann die datei mit ShellExecute und dem befehl "print" aufgerufen werden. s'Amstel Zitieren
Readme Geschrieben 21. September 2006 Autor Geschrieben 21. September 2006 Wie genau rufe ich die printfile.vbs mit dem Pfad Parameter auf? Über CMD? So?: Test.pdf -printfile.vbs Zitieren
Maulwurf_der_Schlaue Geschrieben 21. September 2006 Geschrieben 21. September 2006 printfile.vbs c:\test.pdf Zitieren
Readme Geschrieben 21. September 2006 Autor Geschrieben 21. September 2006 Super! Es klappt, vielen Dank! :marine Jetzt hätte ich eine letzte Frage: Ist es möglich diesen Script über ein Html Link auszuführen, sodas auch der Befehl printfile.vbs c:\test.pdf automatisch in CMD ausführt? Das wäre die letzte Hürde, ich hoffe Ihr könnt mir bei dem letzten Schritt helfen. Zitieren
Readme Geschrieben 21. September 2006 Autor Geschrieben 21. September 2006 Ich habe hier was gefunden, wenn ich ein weitern Script mache, trägt er in CMD den Befehl ein. Was mir aber nocht fehlt , das er das "Enter" bestätigen soll. Das ist der weiter Script der beim bestätigen den weitern Script ausführt. set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "cmd" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "printfile c:\Test.pdf" WScript.Sleep 500 WshShell.SendKeys "" WScript.Sleep 500 Zitieren
Amstelchen Geschrieben 21. September 2006 Geschrieben 21. September 2006 ich verstehe den sinn deines letzten scripts nicht. wozu benötigst du ein script, das mittels SendKeys etwas auf die console schreibt, wenn du die printfile ohnehin von überall aus (sei es aus einer VB-anwendung, sei es aus dem taskplaner, sei es eine andere batchdatei) aufrufen kannst. s'Amstel Zitieren
Readme Geschrieben 21. September 2006 Autor Geschrieben 21. September 2006 Die Sache ist die, das ich das ganze in einer Website einbinden möchte und durch ein Klick die PDF Datei ausgedruckt werden soll. Wenn ich printfile.vbs aktiviere, erscheint folgende Meldung, bei der aber nichts geruckt wird: --------------------------- Windows Script Host --------------------------- Usage: printfile.vbs file.doc --------------------------- OK --------------------------- Dies funktioniert aber nur wenn ich über CMD (wenn ich es richtig verstanden habe) den direkten Befehl eingeben, nähmlich printfile.vbs c:\test.pdf. Da ich aber nicht jedes mal den Befehl in der Konsole eingeben möchte, habe ich ein Script gefunden welches den Script printfile.vbs richtig ausführt und so mit einem Klick das Dokument ausgedruckt wird. Das Problem ist nur das der Script den Befehl in der Konsole eingibt, aber nicht ausführt. Ich möchte aber das der Befehl ausgeführt wird und anschliessend die Konsole geschlossen wird.Das wäre das letzte Problem was ich hätte. Zum Schluss würde ich dann den Script in einer Website einbinden. Zitieren
Readme Geschrieben 22. September 2006 Autor Geschrieben 22. September 2006 der obige ausschnitt funktioniert auch nur mit VB/VBA, nicht mit VBS. versuchs mal so: Option Explicit Dim objShellApp Dim argument Dim strFile If WScript.Arguments.Count < 1 Then WScript.Echo("Usage: printfile.vbs file.doc") WScript.Quit End If strFile = Wscript.Arguments(0) Set objShellApp = WScript.CreateObject("Shell.Application") objShellApp.ShellExecute strFile, "", "", "print", 0 Wscript.Sleep(5000) Set objShellApp = Nothing s'Amstel Jetzt bin ich weiter gekommen. Kann mir jemand sagen wie das geht, das der Adobe Reade sich dann am Ende schliessen soll? Zitieren
Readme Geschrieben 22. September 2006 Autor Geschrieben 22. September 2006 So, ich habe es geschaft. Dieser Script: set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "cmd" WScript.Sleep 100 WshShell.SendKeys "printfile.vbs c:\Test.pdf " WScript.Sleep 100 WSHShell.SendKeys "{Enter}" WScript.Sleep 100 WSHShell.SendKeys "Exit" WScript.Sleep 100 WSHShell.SendKeys "{Enter}" führt dieses Script aus: Option Explicit Dim objShellApp Dim argument Dim strFile If WScript.Arguments.Count < 1 Then WScript.Echo("Usage: printfile.vbs file.doc") WScript.Quit End If strFile = Wscript.Arguments(0) Set objShellApp = WScript.CreateObject("Shell.Application") objShellApp.ShellExecute strFile, "", "", "print", 0 Wscript.Sleep(5000) Set objShellApp = Nothing So wird endlich die PDF Datei ausgedruckt und die CMD Konsole nach dem Voragang geschlossen. Das letzte Problem wäre jedoch, das sich die Anwendung (Adobe Reader) sich am Ende schliessen soll. Kann mir jemand sagen, welche änderung ich im Script vornehmen soll, damit sich Adobe Reader sich am Ende schliesst nachdem es gestartet wurde? Zitieren
Readme Geschrieben 25. September 2006 Autor Geschrieben 25. September 2006 Ich habe hier ein weiteren Script gefunden: Dim WSHShell : Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.run """C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe""" WScript.Sleep 1000*15 WSHShell.run """C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"" /t ""F:\EigeneDateien\#PDF\http --192.168.1.1-doc-online.sht.pdf"" ""LJ4 an LPT1""" , , True WScript.Sleep 1000*7 WSHShell.run """C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"" /t ""F:\EigeneDateien\#PDF\http --192.168.1.1-doc-online.sht.pdf"" ""LJ4 im Netz""" , , True WScript.Sleep 1000*7 WSHShell.SendKeys "%{F4}" WScript.Sleep 1000*1 MsgBox "Das wars . . . " Kann mir jemand sagen ob das funktionieren würde?Muss ich einfach da den Standard Druckernamen einsetzten?Oder den Freigabename des Druckers? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.