ActiveX - Datei öffnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ActiveX - Datei öffnen

    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:

    PHP-Code:
    <script language="JavaScript" type="text/javascript">  
    function 
    open_prog(ppfad)     // p = progexe , 
                                  // pfad = dokumentenpfad  
    {      
    var 
    WshShellProg;            

    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 "\""+" "+"\""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

  • #2
    da ActiveX nur in IE vernünftig funz, ist es besser in VBS anstatt JS zu schreiben. Probiere mal:

    Code:
    <html>
    <head>
    <script language="vbscript" type="text/vbscript">  
    Dim xlApp, xlBook,xlSheet            
    
    sub open_prog     
    	Set xlApp = CreateObject("Excel.Application")
    	Set xlBook = xlApp.Workbooks.Add
    	Set xlSheet = xlBook.Worksheets.Add
    	xlSheet.Cells(1, 1).Value = "hello"
    	xlSheet.Cells(2, 1).Value = "there"
    	xlApp.visible = true
    end sub
    
    sub test_onclick
    	xlSheet.SaveAs "test.xls"
    	xlBook.Close
    	xlApp.Quit
    	set xlSheet = nothing
    	set xlBook = nothing
    	set xlApp = nothing
    end sub
    open_prog
    </script>
    <title>test</title>
    </head>
    <body>
    <a href="#" name="test">free</a>
    </body>
    </html>
    Zuletzt geändert von asp2php; 11.01.2005, 11:33.

    Kommentar


    • #3
      danke für deine antwort.

      das ist eine gute lösung, da ich aber von vb so gut wie gar keine ahnung habe werde ich es so wahrscheinlich nicht machen.
      das dms soll sowieso nur im ie laufen, von daher ist es auch nicht so tragisch.

      trotzdem danke.

      Kommentar


      • #4
        wenn du aber ActiveX verwenden willst, mußt du vb(s) lernen . Ist nicht so schwer, wenn man bereits Kenntnisse von anderen Programmiersprache hat. IMHO mit max. 1 Woche kannste schon recht gut solche Sachen in deine Seite implementieren.

        Kommentar

        Lädt...
        X