Etwas hinter die CMD schreiben



  • Hallo,

    ich habe ein Programm geschrieben das eine CMD öffnen soll, und hinter die Eingabeaufforderung soll etwas geschrieben werden.

    Allerdings will das nicht so recht, Die CMD öffnet sich und es geht eigentlich alles, manuel werden die eingetippten Befehle ausgeführt, nur das was das Programm schreiben soll, (hier "dir") das geht nicht, hier ein Bischen von meinem Source code:

    HANDLE hIn;
    hIn = GetStdHandle(STD_INPUT_HANDLE);        
    HANDLE hOut;
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    
            if (hIn != INVALID_HANDLE_VALUE)
            {
                bool y=TRUE;
                AllocConsole();
                STARTUPINFO si = { sizeof(si) };//Bei dieser Zeile bin ich mir nicht sicher -!-
                si.dwFlags = STARTF_USESTDHANDLES;
                si.hStdInput = hIn;
                si.hStdOutput = hOut;
    
                PROCESS_INFORMATION  pi;
                char                 szExe[] = "cmd.exe";
                while (y){
                    if(CreateProcess(0, szExe, 0, 0, TRUE, 0, 0, 0, &si, &pi))
                        {
                        for(;;)
                            {
                            //recv(W_IP, Buffer, sizeof(Buffer), 0); //zur Zeit ausgeklammert da ich ohne Sockets probieren will
    
                            const char *dir= "dir\r\n";
                                DWORD written = 0;
                            WriteFile (hIn,dir,strlen(dir),&written,NULL);      
                            }
                        }
                    }
                }
    

    Ich würde mich über etwas Hilfe freuen,

    mfg
    Sens0r



  • Also, je nachdem, was du eigentlich tun willst, würde ich dir eher zu batch raten?!



  • Du gibst den String "dir" aus statt das Programm "dir" zu starten. Versuchs zB mal so:

    system("dir");
    

    Wobei ich den Sinn bezweifle.

    MfG SideWinder



  • hmm hmm, das prob kenn ich...da biste also...


Anmelden zum Antworten