"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

ActiveX - Datei öffnen

hausi181 11.01.2005 - 10:25 2399 2
Posts

hausi181

Bloody Newbie
Registered: Nov 2004
Location: OÖ
Posts: 48
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:

Code: PHP
<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

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
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
Registered: Nov 2004
Location: OÖ
Posts: 48
:D 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 :confused:

wenns mir wieder einfällt warum ich das gebraucht hätte, poste ich es.

danke auf jeden fall!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz