öffnen von word



  • Hallo zusammen,

    ich brauche ganz dringend eure hilfe und bin für jeden post dankbar. aber erst einmal zu meiner situation:

    ich muss für die schule ein verwaltungsprogramm schreiben, nun soll dieses programm (so in der menüführung vorgegeben) wenn man die "3" (int i) drückt eine schon gespeicherte word datei (*.doc) in MS WORD öffnen. da ich nun fast keine ahnung von c++ habe (also besitze nur grund kenntnisse 😉 ) und auch meine lehrer keine ahnung haben wie ich das realisieren kann möchte ich mich nun gern an euch wenden in der hoffnung das ihr mir helfen könnt.

    vielen vielen dank schon mal an alle die eine antwort parat haben

    mfg
    dom-112





  • ahja......

    gut......davon versteh ich im moment nur bahnhof.....

    also ich nehme an das das eine ausgelagerte haederdatei ist, oder? ich kommentier den code jetzt einmal und du sagst mir ob ich as jetzt richtig verstanden habe....bitte 😉

    void CMainFrame::OnDateiTextverarbeitung()    //dateiname::funktionsname
    {
        CString strDatei(_T("leer.doc"));         //öffnet leere word datei
        CString strOrdner(_T("d:\\"));            //gibt pfad der zu öffnenden datei an?????
        TCHAR chExe[256];                         //  :confused: 
        memset(chExe, 0, sizeof(chExe));          //  :confused: 
    
        ::FindExecutable(strDatei, strOrdner, chExe);  //  :confused: 
    
        // Das Programm starten
        STARTUPINFO si = {sizeof(si)};            //  :confused: 
        PROCESS_INFORMATION pi;                   //  :confused: 
        CreateProcess(NULL,chExe,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS,NULL,"C:\\",&si,&pi);  //  :confused: 
    }
    

    wie gesagt ich bin blutiger anfänger 🙄

    ABER TROTZDEM SCHON MAL VIELEN VIELEN DANK!!!

    gruß
    dom-112



  • Also, du solltest dir angewöhnen, Threads bis zum Ende zu lesen. 😉
    Das was du dir rausgesucht hast, macht nur die Anwendung auf, die zu *.doc Dateien gehört. Kein Dokument.

    Schau dir den Beitrag von Panschev mal an. 🙂

    Trotzdem erklär ich dir die Codeteile die ich wirklich verstanden habe mal:

    void CMainFrame::OnDateiTextverarbeitung()    //Rückgabetyp Klassenname::funktionsname
    {
        CString strDatei(_T("leer.doc"));         //Legt String an, wo der Dateiname drin steht
        CString strOrdner(_T("d:\\"));            //Legt String an, wo der Pfad zu der Datei drin ist
        TCHAR chExe[256];                         //Speicherplatz, wo der vollständige Pfad zur gesuchten Exe reingeschrieben werden soll
        memset(chExe, 0, sizeof(chExe));          //Speicher mit Nullen initialisieren
    
        ::FindExecutable(strDatei, strOrdner, chExe);  //sucht raus, welche exe mit dem Dateityp verknüpft ist und speichert deren Pfad in chExe
    
        // Das Programm starten
        STARTUPINFO si = {sizeof(si)};            //Braucht man fürs starten
        PROCESS_INFORMATION pi;                   //Braucht man fürs starten   
        CreateProcess(NULL,chExe,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS,NULL,"C:\\",&si,&pi);  //Starte die gefundene Anwendung
    }
    

    Für die Parameter müsste ich in die MSDN gucken, hab aber hier keine offline und die online hat sich beim Suchen immer so zickig. 😞
    Ich hoffe es reicht trotzdem erstmal. 🙂



  • irgendwie funktioniert das nicht richtig.......

    was könnte da denn fehlen???

    --------------------Konfiguration: test - Win32 Debug--------------------
    Kompilierung läuft...
    001.cpp
    c:\dokumente und einstellungen\...\desktop\test\001.cpp(15) : fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei
    Fehler beim Ausführen von cl.exe.
    
    test.exe - 1 Fehler, 0 Warnung(en)
    

    gruß
    dom-112



  • Füge *gaaaanz* oben ein

    #include "stdafx.h"
    

    ein



  • okay jetzt macht er mehr....

    ABER....

    muss das so sein:

    --------------------Konfiguration: 001 - Win32 Debug--------------------
    Kompilierung läuft...
    001.cpp
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(6) : error C2653: 'CMainFrame' : Keine Klasse oder Namespace
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(8) : error C2065: 'CString' : nichtdeklarierter Bezeichner
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(8) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'strDatei'
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(8) : error C2065: 'strDatei' : nichtdeklarierter Bezeichner
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(8) : error C2065: '_T' : nichtdeklarierter Bezeichner
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(9) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'strOrdner'
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(9) : error C2065: 'strOrdner' : nichtdeklarierter Bezeichner
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(13) : error C2039: 'FindExecutable' : Ist kein Element von '`global namespace''
    c:\dokumente und einstellungen\dominic geisendorf\desktop\test\001.cpp(13) : error C2065: 'FindExecutable' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.
    
    001.obj - 9 Fehler, 0 Warnung(en)
    

    was für was iablen typen müssen den "CString CMainFrame _T strOrdner strDatei" sein???



  • Ersetze CMainFrame durch den Namen der Klasse, in die du den Codeschnipsel kopiert hast.

    Edit: Du hast ja immer noch den falschen Codeschnipsel am Wickel. Der macht gar nicht das, was du willst.
    Lies nochmal den verlinkten Thread und

    Schau dir den Beitrag von Panschev mal an.

    ⚠


  • Administrator

    Darf ich mal fragen wieso ihr das so kompliziert lösen wollt? Da in der Registry die *.doc Dateien automatisch der Word Exe zugeordnet sind, kann man doch ShellExecute auf die *.doc Datei anwenden?

    ShellExecute(NULL, _T("open"), _T("C:\\BeispielOrdner\\BeispielDatei.doc"), NULL, NULL, SW_SHOW);
    

    Mehr ist nicht nötig. Ich habe es zwar noch nicht mit Word-Dateien probiert, mit PDF's funktionierts aber einwandfrei. Und mit Word-Dateien sollte es eigentlich auch.

    *Edit: Wups ... auch als Helfer sollte man den verlinkten Thread ZUERST lesen 😃

    Naja jetzt wird er es zumindest gleich haben 😉

    Grüssli


Anmelden zum Antworten