Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Datei im "UI" öffnen
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