Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Datei im "UI" öffnen

<< < (4/5) > >>

MadMetzger:
Per
--- Code: ---Runtime.[i]getRuntime()[/i].exec("file://D://skript.pdf");
--- Ende Code ---
geht es leider nicht, habe nebenher hier auch noch probiert...

So wie ich die Exception, die geworfen wird, deute, muss man bei "exec" explizit auf eine ausführbare Datei verweisen.


--- Code: ---java.io.IOException: Cannot run program "file://D://skript.pdf": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
--- Ende Code ---

diali:
wenn es ein Win BS ist kannst Du es über die cmd.exe und dann die entsprechenden Parameter mitgeben. Dabei brauchst Du dann auch das "files://" nicht.

hwenck:
Ein Beispiel für Ajax und Ping; sollte analog auch für PDF gehen

   public void Ping(String IP, ObjGlob GL) {
      try {
         Vector pv = pingWin(IP, 4, 2000);
         String CDA = "<![CDATA[";
         String CDE = "]]>";
         StringBuffer xml = new StringBuffer();
         xml.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>");
         xml.append("<response>");
         xml.append("<document>");
         xml.append("<docount>" + CDA + pv.size() + CDE + "</docount>");

         for (int i = 0; i < pv.size(); i++) {
            xml.append("<ping" + i + ">" + CDA + (String) pv.get(i) + CDE + "</ping" + i + ">");
         }
         xml.append("</document>");
         xml.append("</response>");
         GL.pw.println("Content-Type: text/xml; charset=\"ISO-8859-1\"");
         GL.pw.println(xml);
      } catch (IOException e) {
         e.printStackTrace();
      } catch (InterruptedException e) {
         e.printStackTrace();
      }

   }

   private static Vector ping(String[] cmd) throws IOException, InterruptedException {
      Process ping = Runtime.getRuntime().exec(cmd);
      BufferedReader input = new BufferedReader(new InputStreamReader(ping.getInputStream(), "Cp850"));
      String line = "";
      Vector v = new Vector();
      while ((line = input.readLine()) != null) {
         if (line.indexOf("Pakete:") >= 0) {
            v.addElement(line + "<br>");
         }
         if (line.indexOf("Minimum") >= 0) {
            v.addElement(line + "<br>");
         }
         if (line.indexOf("Antwort") >= 0) {
            v.addElement(line + "<br>");
         }
         if (line.indexOf("Zeit\u00fcberschreitung") >= 0) {
            v.addElement(line + "<br>");
            System.out.println(line.trim());
         }

      }
      input.close();
      // return ping.waitFor() == 0;
      return (v);
   }

   private static Vector pingWin(String target, int count, long timeout) throws IOException, InterruptedException {
      String[] cmd = {};
      if (timeout == 0) {
         cmd = new String[4];
      } else {
         cmd = new String[6];
         cmd[3] = "-w";
         cmd[4] = Long.toString(timeout);
      }
      cmd[0] = "ping";
      cmd[1] = "-n";
      cmd[2] = Integer.toString(count);
      cmd[cmd.length - 1] = target;
      Vector v = ping(cmd);
      return (v);
   }

flaite:

--- Zitat von: diali am 22.02.08 - 10:25:27 ---wenn es ein Win BS ist kannst Du es über die cmd.exe und dann die entsprechenden Parameter mitgeben. Dabei brauchst Du dann auch das "files://" nicht.

--- Ende Zitat ---
guter Punkt.

@hwenck: Wo kriegt man dieses ObjGlob her? Ich finds nicht über Google.

hwenck:
         Session session = getSession();
         AgentContext agentContext = session.getAgentContext();
         Database db = agentContext.getCurrentDatabase();
         Document doc = agentContext.getDocumentContext();
         String Aktion = doc.getItemValueString("Aktion");
         PrintWriter pw = getAgentOutput();

         DateTime dt = session.createDateTime("Today");
         dt.setNow();
         Vector u = session.evaluate("@Name([CN];@UserName)", doc);
         Name nam = session.createName((String) u.firstElement());
         Document pdoc = db.getProfileDocument("Setup", "");

         String rcd = doc.getItemValueString("Query_String_Decoded");
         Hashtable ht = parseQueryString(rcd);
         String adocID = (String) ht.get("ParentUNID");
         ObjGlob GL = new ObjGlob();
         GL.db = db;
         GL.session = session;
         GL.pw = pw;
         GL.dt = dt;
         GL.doc = doc;
         GL.pdoc = pdoc;
         GL.nam = nam;

.....

package agent.web_tools;
import java.io.PrintWriter;

import lotus.domino.Database;
import lotus.domino.DateTime;
import lotus.domino.Document;
import lotus.domino.Name;
import lotus.domino.Session;

public class ObjGlob {
   public Document doc;
   public Document pdoc;
   public Document adoc;
   public Document SucheDoc;
   public Session session;
   public Database db;
   public PrintWriter pw;
   public DateTime dt;
   public Name nam;
   public String Temp;

   
   
   ObjGlob() {
      doc = null;
      pdoc = null;
      adoc = null;
      SucheDoc = null;
      session = null;
      db = null;
      pw = null;
      dt = null;
      nam = null;
      Temp = "";
   }
}

Sicher nicht toll, aber so mach ich es.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln