ActiveX - Datei öffnen
hausi181 11.01.2005 - 10:25 2399 2
hausi181
Bloody Newbie
|
hallo, ich brauche für ein dokumentenmanagement-system eine activeX-funktion die mir eine beliebige datei öffnet wenn ich auf einen link klicke. eigentlich habe ich die funktion auch schon, doch das problem ist: wenn ich eine word-datei öffne funktioniert das einwandfrei, bei einer excel-datei jedoch haperts schon. es wird nur der prozess excel.exe gestartet (laut task-manager), die datei wird jedoch nicht geöffnet. Der Funktion wird der Pfad des zu öffnenden Programms und der Dokumentenpfad übergeben. der code sieht folgendermaßen aus: <script language="JavaScript" type="text/javascript">
function open_prog(p, pfad) // p = progexe ,
// pfad = dokumentenpfad
{
var WshShell, Prog;
WshShell = new ActiveXObject("WScript.Shell");
var reg = "";
switch (p){
case "excel.exe":
reg = "HKLM\\SOFTWARE\\Microsoft\\Windows\\
CurrentVersion\\App Paths\\Excel.exe\\Path";
break;
// ... weitere cases
}
//Liest den Pfad zu den Programmen aus der Registry.
Prog = WshShell.RegRead(reg);
WshShell.Run("\"" + Prog + p + "\""+" "+"\""+ pfad +"\"",0,true);
}
Wenn ich mir den Befehl ausgebe den ich der Funktion Run übergebe, bekomm ich das richtige heraus. Gebe ich genau das in Windows unter Start-Ausführen ein, öffnet die Datei ganz gewöhnlich (so wie es sein soll)! Sieht in dieser Funktion irgendwer einen Fehler? Wenn ja, welchen? Bzw. kann man das Problem anders lösen? Danke
|
that
ModeratorHoffnungsloser Optimist
|
Wozu der Aufwand, das Programm mitzugeben? Die Shell weiß sowieso, dass *.xls Dateien mit Excel geöffnet werden. Also WshShell.Run("bla.xls") sollte Excel mit dem richtigen File starten.
|
hausi181
Bloody Newbie
|
warum einfach wenns kompliziert auch geht! danke für deine hilfe, so funktionierts jetzt, ich hab mir aber irgendwas dabei gedacht wie ich das programmiert habe. wenn ich nur noch wüsste wenns mir wieder einfällt warum ich das gebraucht hätte, poste ich es. danke auf jeden fall!
|