Text mit Programm öffnen
-
Hallo,
Ich habe vor kurzem einen Editor programmiert.Jetzt weiß ich nur nicht wie ich eine Text Datei mit dem Programm öffne wenn ich sie mit rechtem Mausklick öffne (also öffnen mit und mein Programm wählen). Es ist dann nähmlich so, dass der Editor dann leer ist es geht nur wenn ich im Editor auf öffnen klicke und die Datei auswähle.
Ich hoffe ihr versteht mein Problem
mfg
Bambergt
-
Hi,
die einfachste Lösung:
Im Explorer in den Ordneroption die Dateierweiterungen einstellen.Alles darüber hinaus:
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_extending/extending.asp?frame=true
-
wenn du das mit der rechten maustaste und "öffnen mit" machst, dann wird die datei als kommandozeilen-parameter übergeben. d.h. dein editor muß kommandozeilenparamter einlesen und verarbeiten können:
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // lpCmdLine enthält die komandozeilen-parameter return 0; }wenn du die forumsuch benutzt wirst du sicher fündig werden

-
Danke ich werde es mal ausprobieren.
-
Ach sorum war´s gemeint.

Hab ich falsch verstanden.
-
Also irgenwie hab ich in der Forum suche nichts gefunden kanst du mir mal ein Beispiel geben oder zumindest ein Wort welches ich dann suchen soll?
-
Hmm, also viel mehr gibs da auch nicht zu erklären.
In dem Parameter lpCmdLine steht einfach die komplette Zeile, die man auch in der Kommandozeile eingeben würde.
Also ohne den Programmnamen aber alle evtl. Parameter.Probiers aus:
MessageBox(NULL, lpCmdLine, "Aufruf mit:", MB_OK);
-
also so da:

#include <string> #include <windows.h> int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // parameter in string speichern std::string cmdline=lpCmdLine; // parameter ausgeben MessageBox(NULL, cmdline.c_str(), "Kommandozeilen-Paramter:", MB_OK); return 0; }natürlich mußt du den string dann evtl. noch parsen.
-
Jetzt weiß ich nur noch nicht wie es genau geht. Bisher habe ich unter Winapi:
std::string szFileName=lpCmdLine; HWND hEdit = GetDlgItem(hwnd, IDC_MAIN_EDIT); LoadText(hEdit,szFileName.c_str());Beschreibung: LoadText geht auf jedem fall und läd alles in den hEdit(alles aus der szFileName Datei)
Aber der hEdit ist am Ende leer warum ist das so und wie könnte ich das Problem lösen?
-
Das Problem da Oben hat sich erlegt also allen danke die mir geholfen haben.
mfg
Bambergt