eingabeaufforderung



  • Hallo,

    kann mir jemand den befehl sagen mit der ich die eingabe aufforderung (DOS) öffnen kann???
    wäre echt nett danke

    es muss wohl irgendwas mit system sein , oder??



  • Mein Vorschlag wäre:

    ::WinExec(_T("command.com"), SW_SHOW);
    

    Ist nicht getestet. Vielleicht reicht auch statt command.com ein cmd. Wie bei Ausführen eben.



  • nur cmd nehmen, klappt besser...

    wenn ich jetzt schon einen pfad drin stehen haben möchte wie mach ich das, wo genau an, welche stelle schreib ich das oder geht das nicht???



  • Hmm, da weiss ich nix passendes, aber vielleicht hilft dir ja das hier weiter:

    http://www.heise.de/ct/faq/result.xhtml?url=/ct/faq/hotline/00/18/07.shtml&words=DOS Box

    In einer Bos-Box einfach
    cmd /?
    eingeben.

    Wenn du etwas in den "Senden An" Ordner packst, kriegt das den aktuellen Pfad oder Dateinamen als ersten Parameter.

    So, das war alles, was ich zu dem Thema kenne.



  • cmd statt command.com

    danke für den link, werd das bei gelegenheit mal testen..

    jemand anderes weiss nicht wie ich das lesen umgehen kann und mir ein beispiel geben....

    hab kopfweh und bin daher etwas überfordert mit dem lesen...

    aber ich mach das wenn ich keine mehr habe, versprochen....



  • STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    if( !CreateProcess(
    NULL, // No module name (use command line).
    "cmd", // Command line.
    NULL, // Process handle not inheritable.
    NULL, // Thread handle not inheritable.
    FALSE, // Set handle inheritance to FALSE.
    0, // No creation flags.
    NULL, // Use parent's environment block.
    NULL, // Use parent's starting directory.
    &si, // Pointer to STARTUPINFO structure.
    &pi ) // Pointer to PROCESS_INFORMATION structure.
    )
    WaitForSingleObject( pi.hProcess, INFINITE );

    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );

    Keine ahnung ob der auch bei MFC klappt.

    Mfg

    Hansi



  • gaga schrieb:

    cmd statt command.com

    Quark. Ich habe hier auch Rechner, auf denen es command heisst. Du hast aber normalerweise eine Environment-Variable namens COMSPEC gesetzt. Und genau die solltest Du abfragen. Dann funktioniert das auch auf anderen Rechnern als nur auf Deinem:

    BOOL EingabeAufforderung(VOID)
    {
        TCHAR szCmd[MAX_PATH * 2];
    
        if(!GetEnvironmentVariable(TEXT("COMSPEC"), szCmd, (sizeof(szCmd) / sizeof(szCmd[0]))))
            return(FALSE);
    
        return((INT_PTR)ShellExecute(NULL, NULL, szCmd, NULL, NULL, SW_SHOW) > 32);
    }
    


  • nix quark wenn ich sage wenn ich command schreibe steht nur mist da, kein anständiger pfad und das prog hängt sich auf.
    schreib ich aber cmd, hab ich keine probleme.
    so dann dieses COMSPEC hab ich nicht gesetzt, zumindest nicht das ich wüsste.



  • Hi nochmal,

    ich habe jetzt zwei verschiedene teile um die eingabeaufforderung auf zu machen
    einmal den hier:

    system( "type system.c" );
    

    den hab ich aus der msdn, der funktioniert aber nicht so ganz, eröffnet für einen bruchteil von einer sec das fenster und dann ist es auch schon wieder zu.

    und dann diesen hier:

    ::WinExec(("cmd"), SW_SHOW);
    

    der macht das fenster einwandfrei auf, aber ich müsste einen pfad eingeben, der beim öffnen des fensters schon drin steht.
    ich habe aber keine ahnung wie ich das machen soll.
    kann mir jemand sagen wie??


Log in to reply