18. Juni 2019 11:55
CLEAR(process);
process := process.Process;
process.StartInfo.UseShellExecute := FALSE;
process.StartInfo.FileName := '"C:\test.bat"';
process.StartInfo.CreateNoWindow := TRUE;
process.Start;
CLEAR(process);
ExcecuteBat := ExcecuteBat.ProcessStartInfo('cmd','/c "' + "Bat Path" + "Bat Name" + '"');
ExcecuteBat.RedirectStandardError := TRUE;
ExcecuteBat.RedirectStandardInput := TRUE;
ExcecuteBat.UseShellExecute := FALSE;
ExcecuteBat.CreateNoWindow := TRUE;
Process := Process.Process;
Process.StartInfo(ExcecuteBat);
Process.Start;
18. Juni 2019 12:07
18. Juni 2019 12:14
18. Juni 2019 12:32
18. Juni 2019 13:42
@echo off
set folder="D:\Freigaben\test"
for /r %folder% %%a in (*.pdf) do (
start /b "Print" "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /n /t "%%a"
)
18. Juni 2019 15:41
19. Juni 2019 08:10
19. Juni 2019 08:13
24. Juni 2019 08:27
24. Juni 2019 09:38
sweikelt hat geschrieben:Auch zu beachten ist, dass der Task sicherlich auch ausgeführt werden soll, wenn der User nicht angemeldet ist.
24. Juni 2019 10:50
28. Juni 2019 09:12
6. Januar 2021 15:48
ITNoob hat geschrieben:Hallo,
neuer Tag neue Herausforderungen :)
Ich möchte gerne eine .bat Datei über die Aufgabenwarteschlange starten.
Dabei habe ich folgenden Code gefunden und für mich geändert
- Code:
CLEAR(process);
process := process.Process;
process.StartInfo.UseShellExecute := FALSE;
process.StartInfo.FileName := '"C:\test.bat"';
process.StartInfo.CreateNoWindow := TRUE;
process.Start;
CLEAR(process);
Die bat Datei erstellt erstmal nur ein leeres Textdokument.
Process ist eine .NET Variable (System.Diagnostics.Process.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
Zum Problem:
Wenn ich das einfach über die Entwicklungsumgebung starte und RunOnClient = Yes habe funktioniert alles.
Für die Aufgabenwarteschlange muss ich RunOnClient = No haben. Allerdings passiert hier absolut gar nichts. Es wird sogar immer "Erfolg" protokolliert aber ohne einer Verarbeitungsdauer.
Ich habe eine .Bat Datei schonmal über eine andere Funktion über die Aufgabenwarteschlange zum laufen gebracht. Wenn ich den Code aber verwende schmiert mir NAV ab. Also habe ich nach einer anderen Lösung gesucht.
Damals habe ich folgenden Code erfolgreich verwendet
- Code:
ExcecuteBat := ExcecuteBat.ProcessStartInfo('cmd','/c "' + "Bat Path" + "Bat Name" + '"');
ExcecuteBat.RedirectStandardError := TRUE;
ExcecuteBat.RedirectStandardInput := TRUE;
ExcecuteBat.UseShellExecute := FALSE;
ExcecuteBat.CreateNoWindow := TRUE;
Process := Process.Process;
Process.StartInfo(ExcecuteBat);
Process.Start;
Ultimatives Ziel ist es PDF Dateien (keine Reports) über die Aufgabenwarteschlange zu drucken. Bin gerne auch für eine andere Lösung offen.
PS. Die Aufgabenwarteschlange läuft über einen NAVServiceUser
Grüße
21. Januar 2021 17:22
ITNoob hat geschrieben:Ultimatives Ziel ist es PDF Dateien (keine Reports) über die Aufgabenwarteschlange zu drucken. Bin gerne auch für eine andere Lösung offen.
PrintPdfDocumentOnServer(FullPathToPdfFile : Text;Printername : Text) : Boolean
printerSettings := printerSettings.PrinterSettings();
IF Printername <> '' THEN
printerSettings.PrinterName := Printername;
IF NOT printerSettings.IsValid THEN
ERROR('Druckeinstellungen sind ungültig.');
pdfium_Document := pdfium_Document.Load(FullPathToPdfFile );
printDocument := pdfium_Document.CreatePrintDocument();
WITH printDocument DO BEGIN
PrinterSettings := printerSettings;
DocumentName(FileManagement.GetFileName(FullPathToPdfFile ));
Print();
END;
EXIT(TRUE);
Name DataType Subtype Length
FileManagement Codeunit File Management
printerSettings DotNet System.Drawing.Printing.PrinterSettings.'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
printDocument DotNet System.Drawing.Printing.PrintDocument.'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
pdfium_Document DotNet PdfiumViewer.PdfDocument.'PdfiumViewer, Version=2.13.0.0, Culture=neutral, PublicKeyToken=91e4789cfb0609e0'