ActiveX - Datei öffnen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/activex_datei_oeffnen_134175/page_1 - zur Vollversion wechseln!


hausi181 schrieb am 11.01.2005 um 10:25

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 schrieb am 11.01.2005 um 10:47

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 schrieb am 11.01.2005 um 11:00

: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!




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025