![]() |
Externes Programm
Hallo,
in meinem Programm wird ein externes Programm gestartet. Ich starte es nicht mit shellexecute, es startet sich durch den vorhandenen Code selbt. Wie kann ich dem Programm trotzdem einen Pfad für ein Verzeichnis übergeben, das beim Start geöffnet wird. mfg Oldmann |
AW: Externes Programm
Und wie startet es sich denn nun?
Vielleicht vorher das Arbeitsverzerichnis (WorkingDir) setzen. |
AW: Externes Programm
Hallo,
ich rufe diese Programmzeilen auf. Dabei startet das externe Programm und stellt ein PDF her. Gruss Oldmann
Delphi-Quellcode:
GetDefaultPrinter;
printer.printerindex := printer.printers.indexof ('StepOver PDF Converter'); NicePreview1.PrintAll; printer.printerindex := printer.printers.indexof (GetDefaultPrinter); procedure TNicePreview.PrintAll; var Wmf: TMetafile; x: Integer; begin if (Pages.Count > 0) then begin with Printer do begin Title := filename; BeginDoc; for x := 0 to Pages.Count-1 do begin Wmf := TMetafile(Pages[x]); Canvas.StretchDraw(Rect(0, 0, PageWidth, PageHeight), Wmf); if (x <> Pages.Count-1) then NewPage; end; EndDoc; end; end; end; |
AW: Externes Programm
Du startest da gar nichts, sondern schickst lediglich einen Inhalt an einen PDF-Drucker. Was der dann macht, kannst du nur in dem Druckertreiber selbst konfigurieren, sofern dieser nicht eine eigene Schnittstelle anbietet.
Was möchstest du denn erreichen? Für eine PDF-Generierung gibt es auch Möglichkeiten, die direkt im Programm verwendet werden können. Dann muss auch kein Druckertreiber mit dem passenden Namen vorhanden sein. |
AW: Externes Programm
Hallo,
danke für die Antworten. Das erstellen des PDF klappt einwandfrei. Nach dem Erstellen startet das Externe Programm. Ich möchte erreichen, wenn ich dort 'Speichern unter...' drücke, vorher der richtige Pfad zum speichern des PDF eingestellt ist. Wie kann ich das Problem lösen ??? Gruss Oldmann |
AW: Externes Programm
Hast du den Beitrag über deinem jetzigen gelesen?
Zitat:
Zitat:
![]() |
AW: Externes Programm
Hallo,
ich habe mich mit StepOver in Verbindung gesetzt. Der StepOver PDF Converter erstellt ein normales Windows Direktory Fenster. Ich habe bis jetzt noch keine Möglichkeit gefunden, dass Arbeitsverzeichnis zu ändern. Auch nicht mit WorkingDir. Leider. Trotzdem danke an alle die sich beteiligt haben. Gruss Oldmann |
AW: Externes Programm
Für ein veröffentlichtes Programm, das andere nutzen, macht der Weg über einen solchen Druckertreiber ja keinen Sinn. Deshalb vermute ich mal, dass es um ein nur von dir verwendetes Programm geht?
Dann könnte man vielleicht den dreckigen Weg gehen und das aufgehende Fenster schlicht fernsteuern. Das ist nicht schön, wäre aber für ein kleines internes Tool ein möglicher Weg. |
AW: Externes Programm
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich will ja auch nicht in den Druckertreiber eingreifen, sondern nur den angezeigten Pfad ändern. Ich habe mal das Bild angehängt. Gruss Oldmann |
AW: Externes Programm
Zitat:
ACHTUNG! Der Kode ist uralt und für eine nicht Unicode-fähige Delphi Version. Braucht also eventuell Anpassungen.
Delphi-Quellcode:
Der Kode wiederholt praktisch einen Teil von BeginDoc, um in der Lage zu
Print to file:
uses printers; Procedure StartPrintToFile( filename: String ); var CTitle: array[0..31] of Char; DocInfo: TDocInfo; begin With Printer Do Begin BeginDoc; { Abort job just started on API level. } EndPage( Canvas.handle ); Windows.AbortDoc( Canvas.handle ); { Restart it with a print file as destination. } StrPLCopy(CTitle, Title, SizeOf(CTitle) - 1); FillChar(DocInfo, SizeOf(DocInfo), 0); with DocInfo do begin cbSize := SizeOf(DocInfo); lpszDocName := CTitle; lpszOutput := PChar(filename); end; StartDoc(Canvas.handle, DocInfo); StartPage(Canvas.handle); End; end; procedure TForm1.Button1Click(Sender: TObject); begin StartPrintToFile('C:\temp\temp.prn'); try Printer.Canvas.TextOut( 100, 100, 'Hello World.' ); finally Printer.endDoc; end; end; sein, lpszOutput auf den Dateinamen der zu erzeugenden Datei zu setzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz