System - Notepad aus Programm mit gegebener Datei öffnen



  • Hallo,

    ich weiß dass ich eine Antwort für folgendes Problem hier schon mal gesehen habe, aber die Suchfunktion bringt mich nicht weiter:

    Ich möchte von meinem Programm aus eine Konfigurationsdatei in Notepad öffnen, und nach Schließen des Notepads die Datei wieder einlesen.

    In der FAQ habe ich etwas gefunden, wie das mit dem Aufrufen und dem Warten auf das Beenden funktionieren sollte, aber es klappt nicht:

    CString CommandLine;
    	CommandLine = "c:\\winnt\\notepad.exe " + m_KopfDateiName + ".kty";
    	::CreateProcess(CommandLine.GetBuffer(255), "", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); 
    	::WaitForSingleObject( pi.hProcess, INFINITE); 
    
    	CloseHandle(pi.hProcess); 
    	CloseHandle(pi.hThread); 
    	KopfDatenEintragen(m_KopfDateiName+".bru");
    

    ruft mir das Notepad erst gar nicht auf,
    und:

    CString CommandLine;
    	CommandLine = m_KopfDateiName + ".kty";
    	::CreateProcess("C:\\WinNT\\notepad.exe", CommandLine.GetBuffer(255), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); 
    	::WaitForSingleObject( pi.hProcess, INFINITE); 
    
    	CloseHandle(pi.hProcess); 
    	CloseHandle(pi.hThread); 
    	KopfDatenEintragen(m_KopfDateiName+".bru");
    

    ruft zwar das Notepad auf, öffnet aber die Datei nicht (die aber definitiv unter der angegegeben Adresse liegt).

    Wo liegt hier der Fehler?



  • Der Trick ist, dass Du den ersten Parameter von "CreateProcess" auf "NULL" setzen musst und der zweite enthält sowohl den Pfad zu Notepad (möglicherweise in Hochkommas" und die Parameter! Also:

    CommandLine = "c:\\winnt\\notepad.exe " + m_KopfDateiName + ".kty";
    CreateProcess(NULL, CommandLine, ...)
    


  • Super, danke!!

    Das funktioniert.

    Aber wie soll man da nur drauf kommen 😮

    Wäre das nicht etwas für die FAQ, eventuell als Zusatz zu:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39084.html ??



  • AndRo67 schrieb:

    Wäre das nicht etwas für die FAQ, eventuell als Zusatz zu:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39084.html ??

    Da ich diesen Thread da nicht einfach anhängen kann, habe ich ihn mal verlinkt. 🙂


Anmelden zum Antworten