ö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 undSchau dir den Beitrag von Panschev mal an.
-
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