C Datei öffnen - Doppelklick simulieren

Felix_krueger

Ensign
Registriert
Sep. 2007
Beiträge
186
Hallo Leute,

ich frage mich gerade ob ich in C eine Datei öffnen kann, sodass sie nicht nur "für C verfügbar" in den RAM geladen wird, sondern quasi einen "Doppelklick" simuliert.

LG
 
int main()
{
system("c:\\pfad\\zur\\datei.endung");
return 0;
}

öffnet die Datei mit dem Im Systemhinterlegtem Standardprogramm ;)
 
Dankesehr! :)
Ergänzung ()

Und wie muss ich Leerzeichen in dem Pfad angeben?
Mein Pfad heißt: "C:\\Users\\Felix\\Desktop\\Blatt 8 Aufg. 2\\aufgaben.txt" - die Leerzeichen weden beanstanded.


"C:\\Users\\Felix\\Desktop\\Blatt\ 8\ Aufg\.\ 2\\aufgaben.txt" geht auch nicht ^^ :D
 
Zuletzt bearbeitet:
int main()
{
system("\"C:\\Users\\Felix\\Desktop\\Blatt 8 Aufg. 2\\aufgaben.txt\"");
return 0;
}

sollte das ganze zum laufen bringen
 
Nutzt doch bitte ShellExecute, wie Nighthawk13 schon schrieb, da musst nichts gequotet werden und Spirenzien gibts da nicht, weil der Pfad als Ganzes genommen wird und nicht erst die Shell aufgerufen wird...
 
Hier ein Daumen hoch an Microsoft, das die Shell etwas völlig anderes als der Befehlsinterpreter ist. Diese Verwirrung muss ja unbedingt sein :(
 
@ WoFNuLL: Jo das klappt und ist simpel ! :-)

ShellExecute scheint mir sehr aufwendig zu sein, da ich mit meinen C-Skills noch ganz am Anfang stehe. Im Moment reicht mir die simple Variante.
 
Code:
HINSTANCE ShellExecute(
  _In_opt_  HWND hwnd,
  _In_opt_  LPCTSTR lpOperation,
  _In_      LPCTSTR lpFile,
  _In_opt_  LPCTSTR lpParameters,
  _In_opt_  LPCTSTR lpDirectory,
  _In_      INT nShowCmd
);

// Aufruf

ShellExecute( NULL, "open", "<hier kommt der dateiname rein>", NULL, NULL, SW_SHOWDEFAULT );

// oder mit einem bestimmten Programm

ShellExecute( NULL, "open", "notepad", "<hier kommt der dateiname rein>", NULL, SW_SHOWDEFAULT );
So schwer ist es nicht. ;) Wenn du dich wegen dem _In_opt_ wunderst: http://msdn.microsoft.com/en-us/library/ms182032.aspx
 
Zurück
Oben