Eine Datei über das "Öffnen mit"-Windows-Menü öffnen/ausführen



  • Hey,

    ist es möglich ein C++ Programm so zu programmieren, dass das Programm beim Start erfährt, ob es in Windows über eine Datei geöffnet wurde und dessen Pfad auf einen String übertragen wird?

    Danke schonmal,
    Johannes



  • Ja, über die Programmparameter wird der volle Pfad übermittelt, so daß du diesen entsprechend auslesen und verarbeiten kannst.
    In einem C++ Konsolenprogramm mittels

    int main(int argc, const char**argv)
    {
        if (argc >= 2)
           string path = argv[1];
    }
    

    oder in einem WinAPI-Projekt s. WinMain (3. Parameter lpCmdLine).





  • Um dann noch CommandLineToArgvW aufrufen zu müssen, um an den ersten (einzigen) Parameter zu gelangen? lpCommandLine enthält nur den Parameter (ohne Programmpfad vorweg).



  • @Th69

    The main and WinMain functions cannot return Unicode strings.

    Unicode console process written in C can use the wmain or _tmain function to access the command-line arguments. Unicode GUI applications must use the GetCommandLineW function to access Unicode strings.



  • Daher auch der Link zu WinMain, denn dort steht:

    Remarks
    ...
    ANSI applications can use the lpCmdLine parameter of the WinMain function to access the command-line string, excluding the program name. Note that lpCmdLine uses the LPSTR data type instead of the LPTSTR data type. This means that WinMain cannot be used by Unicode programs. The GetCommandLineW function can be used to obtain the command line as a Unicode string. Some programming frameworks might provide an alternative entry point that provides a Unicode command line. For example, the Microsoft Visual Studio C++ complier uses the name wWinMain for the Unicode entry point.

    Beachte also die Alternative wWinMain...


Log in to reply