![]() |
Java funktion speicherort als argument
Hiho,
mir ist kein besserer Titel eingefallen :tongue:. Folgender Java Code liegt zugrunde:
Code:
Keine Ahnung wie gut der Code ist oder so, ich arbeite nicht mit Java und habs vor sehr langer zeit nur mal kurz ausgetestet, aber er tut seinen Dienst.
public class screenshot {
public static void main(String[] args) throws Exception { Thread.sleep(150); BufferedImage bi = new Robot().createScreenCapture( new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) ); Date dateNow = new Date (); SimpleDateFormat dateformatddMMyyyyHHmmss = new SimpleDateFormat("ddMMyyyyHHmmss"); StringBuilder nowddMMyyyyHHmmss = new StringBuilder( dateformatddMMyyyyHHmmss.format( dateNow ) ); ImageIO.write( bi, "jpg", new File(System.getProperty("user.home")+"/screenshot"+nowddMMyyyyHHmmss+".jpg") ); System.exit( 0 ); } } Wie man sieht speichert er das jpg file immer im Home-Verzeichnes des users, ich würde nun aber gerne in Delphi folgendes machen:
Delphi-Quellcode:
Also quasi den Speicherort als Parameter der jar übergeben, also Inhalt eines edit Feldes oder sowas. Könnte vielleicht ein Java-könner mir mal die Funktion so hinbiegen, dass das klappt? Kenn mich da nich aus.
ShellExecute(Application.Handle, 'open', PChar('screenshot.jar'), speicherort, nil, SW_SHOWNORMAL);
Größten Dank im Voraus Achso, es gibt natürlich einen Grund, warum ich das über Java mache und nicht über BitBlt und co. Aber der Spielt ja eigentlich keine Rolle :) |
AW: Java funktion speicherort als argument
Hallo,
Also ich hab hier kein Java aber grob sollte es so gehen: (Hab die Variablen Namen mal übersichtlicher gemacht :?)
Code:
Kann auch sein, dass der Parameter in args[1] steht (so wäre es bei Delphi!).
public class screenshot {
public static void main(String[] args) throws Exception { Thread.sleep(150); BufferedImage bi = new Robot().createScreenCapture( new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) ); Date dateNow = new Date (); SimpleDateFormat dateformat = new SimpleDateFormat("ddMMyyyyHHmmss"); StringBuilder datestr = new StringBuilder(dateformat.format(dateNow)); if (args.Length > 0) { ImageIO.write(bi, "jpg", new File(args[0]+"/screenshot"+datestr+".jpg") ); } System.exit( 0 ); } } Ggf. musst du dann überprüfen ob args.Length > 1 und dann args[1] übergeben. Gruß Neutral General |
AW: Java funktion speicherort als argument
mit 0 klappts ;)
Großen Dank Herr General!!! :) :cheers: Ich glaube ich muss Java vielleicht doch nochmal ne Chance geben ... |
AW: Java funktion speicherort als argument
Nur zur Info:
JPEG ist ein denkbar ungünstiges Datenformat für einen Screenshot, denn es benützt verlustbehaftete Komprimierung. Dadurch werden feine Strukturen (Schriften, dünne Linien) unscharf und verwaschen. Empfehlenswert ist PNG oder falls 256 Farben ausreichend sind GIF. |
AW: Java funktion speicherort als argument
das ist bekannt, ich hab aber noch nie probleme bei jpgs gehabt (100er qualli), reicht für ottonormal screens vollkommen aus.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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