Pipes: Input umleiten mit WriteFile()
-
Hallo,
Ich probiere gerade die Pipes aus. Funktioniert fast alles klasse. Bei
WriteFile(sWrite, "explorer\n", 9, &haveread, 0);müsste der Explorer durch "cmd" ausgeführt werden. (Ich leite ja ein Befehl zu "cmd" hin.) Der Explorer wird auch geöffnet. Allerdings erst wenn das Konsolenfenster von cmd.exe von mir geschlossen wird. Wie kann ich machen, das in dem Falle der Explorer gleich geöffnet wird?
Hier mal ein Code-Schnippsel:... HANDLE pRead, pWrite, sRead, sWrite; SECURITY_ATTRIBUTES sec; bool res; STARTUPINFO si; PROCESS_INFORMATION pi; char sz[256]; DWORD haveread; sec.bInheritHandle = true; sec.nLength = sizeof(SECURITY_ATTRIBUTES); sec.lpSecurityDescriptor = 0; res = CreatePipe(&pRead, &pWrite, &sec, 0); res = CreatePipe(&sRead, &sWrite, &sec, 0); ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESTDHANDLES; si.hStdInput = sRead; si.hStdOutput = pWrite; si.hStdError = pWrite; ZeroMemory(&pi, sizeof(pi)); res = CreateProcess(0, "cmd.exe", 0, 0, true, 0, 0, 0, &si, &pi); CloseHandle(sRead); CloseHandle(pWrite); ReadFile(pRead, &sz[0], 256, &haveread, 0); WriteFile(sWrite, "explorer\n", 9, &haveread, 0); ...Danke
Euer Danny R.